20 Jun, 2014

9 commits


09 Jun, 2014

5 commits

  • The symbol "_start" is defined twice in arch/arm/lib/vectors.S:
    around line 48 and line 54.

    If CONFIG_SYS_DV_NOR_BOOT_CFG is defined (as on calimain board),
    build fails:

    arch/arm/lib/vectors.S: Assembler messages:
    arch/arm/lib/vectors.S:54: Error: symbol `_start' is already defined
    make[1]: *** [arch/arm/lib/vectors.o] Error 1
    make: *** [arch/arm/lib] Error 2

    Signed-off-by: Masahiro Yamada
    Cc: Albert ARIBAUD

    Masahiro Yamada
     
  • Currently cntvoff_el2 is initialised with an arbitrary bag of bits
    derived from the initial value of cnthctl_el2 on the current CPU. This is
    somewhat odd and problematic as some of these bits are UNKNOWN at reset
    and may differ across CPUs (which may cause an OS at EL1 to observe time
    going backwards across CPUs).

    This patch instead initialises cntvoff_el2 with xzr, giving the register
    a consistent value of zero on all CPUs.

    Signed-off-by: Mark Rutland
    Acked-by: Marc Zyngier
    Acked-by: Catalin Marinas
    Cc: Scott Wood
    Cc: David Feng
    Cc: Tom Rini
    Acked-by: David.Feng

    Mark Rutland
     
  • Add QSPI support for VF610TWR, such as clock and iomux.

    Signed-off-by: Alison Wang
    Signed-off-by: Chao Fu

    Chao Fu
     
  • Add PAD_CTL_DSE_150ohm and PAD_CTL_PUS_22K_UP for VF610 in
    IOMUX_PAD structure.

    Signed-off-by: Alison Wang

    Alison Wang
     
  • Add Freescale QSPI driver support for VF610.

    Signed-off-by: Alison Wang
    Signed-off-by: Chao Fu

    Alison Wang
     

08 Jun, 2014

1 commit


07 Jun, 2014

25 commits

  • This family is supported by the TPS65218 PMIC. Implement a scale_vcores
    to set the MPU and CORE voltage correctly to the max frequency that is
    supported (and what we will be scaling them to in setup_dplls()).

    Signed-off-by: Tom Rini

    Tom Rini
     
  • Add a driver for the TPS65218 PMIC which is used by TI AM43xx SoCs and
    may be used by TI AM335x SoCs.

    Signed-off-by: Tom Rini

    Tom Rini
     
  • Similar to OMAP4/5 we need to scale the voltage up prior to changing the
    clock frequencies up higher. Add a similar hook to start with.

    Signed-off-by: Tom Rini

    Tom Rini
     
  • Signed-off-by: Tom Rini

    Tom Rini
     
  • Cc: trini@ti.com
    Signed-off-by: Hannes Petermaier

    Hannes Petermaier
     
  • in almost all cases we need the i2c commands within the u-boot shell.
    So we enable them within the common section.

    Cc: trini@ti.com
    Signed-off-by: Hannes Petermaier

    Hannes Petermaier
     
  • if we have no NAND-Chip, we don't need the gpmc-controller and therefore
    is no need to init it.

    Cc: trini@ti.com
    Signed-off-by: Hannes Petermaier

    Hannes Petermaier
     
  • Cc: trini@ti.com
    Signed-off-by: Hannes Petermaier

    Hannes Petermaier
     
  • Signed-off-by: Hannes Petermaier

    Hannes Petermaier
     
  • For usage of timer6 within B&R we need this defines to enable clock
    modules and clk-source.

    Also the 'Timer register bits' are expanded.

    By the way we add defines for all timers within AM335x SoC.

    Cc: trini@ti.com
    Signed-off-by: Hannes Petermaier

    Hannes Petermaier
     
  • After enabling a module, SW has to wait on IDLEST bit
    until it is Fully functional. This wait is missing for UART module
    and there is a immediate access of UART registers after this. So there
    is a chance of hang on this module( This can happen when we are running
    from MPU SRAM). So waiting for IDLEST bit.

    Signed-off-by: Lokesh Vutla

    Lokesh Vutla
     
  • loadbootenv expects devtype variable to be set. This is missing in
    mmcboot command. With this the following error comes:
    U-Boot# run mmcboot
    mmc0 is current device
    SD/MMC found on device 0
    ** Bad device usb 0 **
    ** Bad device usb 0 **
    Fixing this by setting devtype as mmc.

    Reported-by: Tony Lindgren
    Signed-off-by: Lokesh Vutla

    Lokesh Vutla
     
  • commit a0a37183bd7 "ARM: omap: merge GPMC initialization code for
    all platform" needs CONFIG_NOR, CONFIG_NAND or CONFIG_CMD_ONENAND
    to be set to access flash. Add CONFIG_NAND for tam3517 derived
    boards to prevent the following error: "nand: error: Unable to
    find NAND settings in GPMC Configuration - quitting"

    cc: Stefano Babic
    Signed-off-by: Jeroen Hofstee

    Jeroen Hofstee
     
  • Enable support of nand ecclayout command.

    Acked-By: Murali Karicheri
    Acked-by: Vitaly Andrianov
    Signed-off-by: WingMan Kwok
    Signed-off-by: Ivan Khoronzhuk

    WingMan Kwok
     
  • Currently PWREMU_MGMT is not configured in the Linux generic UART
    driver as this register seems to be specific TI UART IP. So this
    needs to be enabled in u-boot to use UART1 from kernel space.

    Acked-By: Vitaly Andrianov
    Signed-off-by: Murali Karicheri
    Signed-off-by: Ivan Khoronzhuk

    Murali Karicheri
     
  • With the changes to the i2c framework (and adopting the omap24xx_i2c
    driver to them) we can no longer call i2c functions prior to gd having
    been set and cleared. When SPL booting, this is handled by setting gd
    to point to SRAM in s_init. However in the cases where we are loaded
    directly by ROM (memory mapped NOR or QSPI) we need to make use of the
    normal hooks to slightly delay these calls.

    Signed-off-by: Tom Rini

    Tom Rini
     
  • We have two contexts for booting these platforms. One is SPL which is
    roughly: reset, cpu_init_crit, lowlevel_init, s_init, sdram_init, _main,
    board_init_f from SPL, ... then U-Boot loads. The other is a
    memory-mapped XIP case (NOR or QSPI) where we do not run an SPL. In
    this case we go, roughly: reset, cpu_init_crit, lowlevel_init, s_init,
    _main, regular board_init_f.

    In the first case s_init will set a valid gd and then be able to call
    sdram_init which in many cases will need i2c (which needs a valid gd for
    gd->cur_i2c_bus). In this second case we must (and are able to and
    should) defer sdram_init() into dram_init() called by board_init_f as gd
    will have been set in _main and cleared in board_init_f.

    Signed-off-by: Tom Rini

    Tom Rini
     
  • The patch populates the slave data which will be used by flash driver to
    set the flash quad enable bit.

    Signed-off-by: Sourav Poddar

    Sourav Poddar
     
  • The ePOS EVM and EVM SK have QSPI as an option to boot. Add a qspiboot
    target that utilizes QSPI for env and so forth as an example of best
    practices. As QSPI is booted from directly we need to chang
    CONFIG_SYS_TEXT_BASE.

    Note that on ePOS EVM the QSPI and NAND are mutually exclusive choices
    we need to handle that elsewhere, once NAND support is also added.

    Signed-off-by: Sourav Poddar
    Signed-off-by: Tom Rini

    Sourav Poddar
     
  • updates documentation with explanation on how to select ECC schemes.

    Signed-off-by: Pekon Gupta

    pekon gupta
     
  • This patch add support for BCH16_ECC to omap_gpmc driver.

    *need to BCH16 ECC scheme*
    With newer SLC Flash technologies and MLC NAND, and large densities, pagesizes
    Flash devices have become more suspectible to bit-flips. Thus stronger
    ECC schemes are required for protecting the data.
    But stronger ECC schemes have come with larger-sized ECC syndromes which require
    more space in OOB/Spare. This puts constrains like;
    (a) BCH16_ECC can correct 16 bit-flips per 512Bytes of data.
    (b) BCH16_ECC generates 26-bytes of ECC syndrome / 512B.
    Due to (b) this scheme can only be used with NAND devices which have enough
    OOB to satisfy following equation:
    OOBsize per page >= 26 * (page-size / 512)

    Signed-off-by: Pekon Gupta

    pekon gupta
     
  • GPMC can support simultaneous processing of 8 512Byte data chunks, in parallel

    Signed-off-by: Pekon Gupta

    pekon gupta
     
  • OMAP3 used GPMC_NAND_ECC_LP_x8_LAYOUT and GPMC_NAND_ECC_LP_x16_LAYOUT macros
    to configure GPMC controller for x7 or x8 bit device connected to its interface.
    Now this information is encoded in CONFIG_SYS_NAND_DEVICE_WIDTH macro, so above
    macros can be completely removed.

    Signed-off-by: Pekon Gupta

    pekon gupta
     
  • GPMC controller needs to be configured based on bus-width of the NAND device
    connected to it. Also, dynamic detection of NAND bus-width from on-chip ONFI
    parameters is not possible in following situations:
    SPL: SPL NAND drivers does not support ONFI parameter reading.
    U-boot: GPMC controller iniitalization is done in omap_gpmc.c:board_nand_init()
    which is called before probing for devices, hence any ONFI parameter
    information is not available during GPMC initialization.

    Thus, OMAP NAND driver expected board developers to explicitely write GPMC
    configurations specific to NAND device attached on board in board files itself.
    But this was troublesome for board manufacturers as they need to dive into
    lengthy platform & SoC documents to find details of GPMC registers and
    appropriate configurations to get NAND device working.

    This patch instead adds existing CONFIG_SYS_NAND_BUSWIDTH_16BIT to board config
    hich indicates that connected NAND device has x16 bus-width. And then based on
    this config GPMC driver itself initializes itself based on NAND bus-width. This
    keeps board developers free from knowing GPMC controller specific internals.

    Signed-off-by: Pekon Gupta

    pekon gupta
     
  • As per following Sections in ONFI Spec, GET_FEATURES and SET_FEATURES also need
    byte-addressing on 16-bit devices.

    *Section: Target Initialization"
    "The Read ID and Read Parameter Page commands only use the lower 8-bits of the
    data bus. The host shall not issue commands that use a word data width on x16
    devices until the host determines the device supports a 16-bit data bus width
    in the parameter page."

    *Section: Bus Width Requirements*
    "When the host supports a 16-bit bus width, only data is transferred at the
    16-bit width. All address and command line transfers shall use only the lower
    8-bits of the data bus. During command transfers, the host may place any value
    on the upper 8-bits of the data bus. During address transfers, the host shall
    set the upper 8-bits of the data bus to 00h."

    So porting following commit from linux kernel
    commit e34fcb07a6d57411de6e15a47724fbe92c5caa42
    Author: David Mosberger (preserving authorship)
    mtd: nand: fix GET/SET_FEATURES address on 16-bit devices

    Signed-off-by: Pekon Gupta

    David Mosberger