04 Mar, 2016

40 commits

  • The BOOTCFG value used by bmode for SABRESD eMMC boot are actually for SD card.
    Fixed the value to correct one.

    The issue was fixed in 2014.04 u-boot, but that patch seems missed during porting
    to 2015.04.

    Signed-off-by: Ye Li

    Ye Li
     
  • We have some vendor specific codes in board/freescale/common
    which the picoimx configs also need them when Android or
    Brillo configs is enabled.
    So added the folder in Makefile to pass the compile.

    Signed-off-by: Haoran Wang

    Haoran Wang
     
  • Modify the picosom to be suit for Brillo configurations.

    Signed-off-by: Haoran Wang

    Haoran Wang
     
  • Imported the picosom boot codes and board
    configs from technexion.

    Signed-off-by: Tapani Utriainen
    Signed-off-by: Haoran Wang

    Haoran Wang
     
  • Define CONFIG_SYS_VSNPRINTF to use snprintf, but not sprintf.
    Coverity ID: 17926.

    Signed-off-by: Peng Fan

    Peng Fan
     
  • We support max 16 endpoints, but endpoint starts from 0.
    So we need to use >= 16 but not > 16 to check whether we
    already reach max endpoints or not.

    Coverity ID 17955:
    Out-of-bounds read (OVERRUN)
    37. overrun-local: Overrunning array dev->config.if_desc[ifno].ep_desc of 16
    9-byte elements at element index 16 (byte offset 144) using index epno
    (which evaluates to 16).

    Signed-off-by: Peng Fan

    Peng Fan
     
  • We should use ARRAY_SIZE, but not directly sizeof, otherwise
    we may access memory that is not belong the array env_flags_varaccess_mask.

    Coverity ID: 17949

    Signed-off-by: Peng Fan

    Peng Fan
     
  • Report Coverity log:
    Destination buffer too small (STRING_OVERFLOW)
    string_overflow: You might overrun the 1024 byte destination string
    lastcommand by writing 1025 bytes from console_buffer

    Signed-off-by: Peng Fan

    Peng Fan
     
  • Reported by coverity ID: 17900 17902
    Using uninitialized value e. Field e.flags is uninitialized when calling hsearch_r

    Signed-off-by: Peng Fan

    Peng Fan
     
  • The list_first_entry always assumes the list is not empty, it won't return NULL pointer when
    the list is empty. So the "if (pdesc == NULL)" becomes a dead code. Fix the issue by calling
    the list_empty before the list_first_entry.

    (Coverity CID 29934)

    Signed-off-by: Ye.Li

    Ye.Li
     
  • Fix a read from pointer after free issue in nand error handling path,
    which was found by coverity.

    Signed-off-by: Han Xu

    Han Xu
     
  • unsigned long long data might have strange data if first bit of u8 data
    was 1. this patch cast it to (unsigned long long)

    ex)
    u8 data8;
    u64 data64;

    data8 = 0x80;
    data64 = (data8 << 24); // 0xffffffff80000000
    data64 = (((unsigned long long)data8) << 24); // 0x80000000;

    (reported by Coverity)

    Signed-off-by: Haibo Chen

    Haibo Chen
     
  • Before calling hsearch_r, initialize callback entry to NULL.

    Coverity log:
    "
    Uninitialized scalar variable (UNINIT)
    uninit_use_in_call: Using uninitialized value e.
    Field e.callback is uninitialized when calling hsearch_r.
    "

    Reported-by: Coverity
    Signed-off-by: Peng Fan
    Cc: Tom Rini
    Cc: Simon Glass
    (cherry picked from commit 5a6894397a657edec5d0cf4e20968cc66a368c51)

    Peng Fan
     
  • Use snprintf to replace sprintf.

    Coverity log:
    "
    Unbounded source buffer (STRING_SIZE)
    string_size: Passing string init_val of unknown size to sprintf.
    "

    Reported-by: Coverity
    Signed-off-by: Peng Fan
    Cc: Tom Rini
    Cc: Simon Glass
    Reviewed-by: Joe Hershberger
    (cherry picked from commit 5d49b4cdf9417b88476567c8ec78ff185d84b10f)

    Peng Fan
     
  • Whether CONFIG_SYS_HUSH_PARSER is defined or not, should always
    check to free 'buff' to avoid memory leak.

    Signed-off-by: Peng Fan
    Cc: Tom Rini
    Cc: Masahiro Yamada
    Cc: Simon Glass
    (cherry picked from commit 09a788624dbe32aeeb0d74c97c0965303eb96d8c)

    Peng Fan
     
  • The latest iomux head file generated by tool has added some new pinmux settings. Update the
    mx6ul_pins.h to this version.

    Signed-off-by: Ye.Li

    Ye.Li
     
  • Need to free memory avoid memory leak, when error.

    Signed-off-by: Peng Fan
    Reviewed-by: Simon Glass
    Cc: Simon Glass
    Cc: Tom Rini
    (cherry picked from commit c6bb23c819b5dcbc5c3491673f5e408c0b9c38b3)

    Peng Fan
     
  • The following code will alloc memory for new_dev and ldev:
    "
    new_dev = mdio_alloc();
    ldev = malloc(sizeof(*ldev));
    "
    Either new_dev or ldev is NULL, directly return, but this may leak memory.
    So before return, using free(ldev) and mdio_free(new_dev) to avoid
    leaking memory, also free can handle NULL pointer.

    Signed-off-by: Peng Fan
    Cc: Joe Hershberger
    Cc: Simon Glass
    Cc: Bin Meng
    Reviewed-by: Bin Meng
    Acked-by: Joe Hershberger
    (cherry picked from commit 746da1bd42aa5ecc47898399514c9c76d0329706)

    Peng Fan
     
  • "enable" is unsigned char type and its value will not be
    negative, so discard "enable < 0".

    Signed-off-by: Peng Fan
    Cc: Diego Santa Cruz
    Cc: Pantelis Antoniou
    Cc: Andrew Gabbasov
    Cc: Simon Glass
    Cc: Stefano Babic
    Cc: Tom Rini
    Reviewed-by: Simon Glass
    (cherry picked from commit 678e9316d48f78d162f705846b6f6eeab4aa5dd0)

    Peng Fan
     
  • The entry name of mii_dev is an array not pointer, so
    no need to check.

    Signed-off-by: Peng Fan
    Cc: Joe Hershberger
    Cc: Simon Glass
    Cc: Bin Meng
    Reviewed-by: Simon Glass
    Acked-by: Joe Hershberger
    Reviewed-by: Bin Meng
    (cherry picked from commit d39449b110c8da47bf5b8dc372bd5cd1c33a1a67)

    Peng Fan
     
  • If condition of "(load == image_start || load == image_data)" is true,
    should use "fdt_addr = load;", but not "fdt_blob = (char *)image_data;",
    or fdt_blob will be overridden by "fdt_blob = map_sysmem(fdt_addr, 0);"
    at the end of the switch case.

    Signed-off-by: Peng Fan
    Cc: Simon Glass
    Cc: Joe Hershberger
    Cc: Max Krummenacher
    Cc: Marek Vasut
    Cc: Suriyan Ramasami
    Cc: Paul Kocialkowski
    Cc: Tom Rini
    Reviewed-by: Simon Glass
    (cherry picked from commit 2ea47be02f356ff275fa5c50392ea510ddb4a96c)

    Peng Fan
     
  • Condition "(value == NULL && ++value == NULL)" actully will
    always return false.

    Instead, use condition "(value == NULL || *(value + 1) == 0)" to detect
    such expression "c=". To "c=", *(value + 1) is 0, so directly return -1,
    but not continue.

    Signed-off-by: Peng Fan
    Cc: Rabin Vincent
    Cc: Simon Glass
    Cc: Tom Rini
    Reviewed-by: Simon Glass
    (cherry picked from commit aa722529635c16c52d9d609122fecc96ec8d03e4)

    Peng Fan
     
  • Before continue, check return value of strict_strtoul.

    Signed-off-by: Peng Fan
    Cc: Albert Aribaud
    Cc: Simon Glass
    Cc: Jan Kiszka
    Cc: Joe Hershberger
    Cc: Hans de Goede
    Cc: York Sun
    Cc: Tom Rini
    Reviewed-by: Simon Glass
    (cherry picked from commit bc3c89b1308281edceb67051a44026545dc7b505)

    Peng Fan
     
  • Currently there is no API to uninitialize mdio. Add two APIs for this.

    Signed-off-by: Bin Meng
    Acked-by: Joe Hershberger
    (cherry picked from commit cb6baca77bca0ef999203a7ed73bd123e7da062e)

    Bin Meng
     
  • Introudce wp_enable. If want to check WPSPL, then in board code,
    need to set wp_enable to 1.

    Take i.MX6UL for example, to some boards, they do not use WP singal,
    so they does not configure USDHC1_WP_SELECT_INPUT, and its default
    value is 0(GPIO1_IO02). However GPIO1_IO02 is muxed for i2c usage and
    SION bit set. So USDHC controller can always get wp signal and WPSPL
    shows write protect and blocks driver continuing. This is not what
    we want to see, so add wp_enable, and if set to 0, just omit the
    WPSPL checking and this does not effect normal working of usdhc
    controller.

    Suggested-by: Ye.Li
    Signed-off-by: Peng Fan

    Peng Fan
     
  • There is a bad dhcp server which always gives board ipaddr 0.0.0.0,
    and board can not get ipaddr from correct dhcp server, since the bad
    dhcp server always reply the board's dhcp packet with bad address.
    We can ignore the bad dhcp server by checking the assigned ipaddr,
    checking whether it is 0 or not.

    Signed-off-by: Peng Fan

    Peng Fan
     
  • Fix mmdc_ch0 clk calculation. Also add PLL_AUDIO/VIDEO support
    for decode_pll.

    Reported-by: Bai Ping
    Signed-off-by: Peng Fan

    Peng Fan
     
  • The management data input/output (MDIO) requires open-drain,
    i.MX7D TO1.0 ENET MDIO pin has no open drain, but TO1.1 supports
    this feature. So to TO1.1, need to enable open drain by setting
    bits GPR0[8:7] for TO1.1.

    Signed-off-by: Peng Fan

    Peng Fan
     
  • Add mx6qarm2 new board revision support using mx6q pop SoC
    Enable DRAM support for imx6q PoP SoC with populated LPDDR2
    MT42L128M64D2

    DDR calibration script
    http://sw-stash.freescale.net/projects/IMX/repos/ddr-scripts-rel/commits/e5c6184940486bcbc28978d60ad3cd996c205a08
    Test result: Stress test passed.

    Signed-off-by: Adrian Alonso

    Adrian Alonso
     
  • Since i.MX7D SDB revB board has some HW changes, we have modify the BSP file to support new pinmux.
    1. OTG2 PWR pin is changed to GPIO1_IO07.
    2. A enet2_en pin is added for isolating enet2 signals with EPDC, we also add support for enet2.
    3. pin6 of 74LV output is changed for CSI PWDN. Set output to high to power down it.

    This patch also tries to get the board id and apply changes according with it. Since current
    RevB board does not burn GP1 fuse for board id, we have to check the TO rev instead even it is not very
    exact. Will update this if any new way implemented.

    Signed-off-by: Ye.Li

    Ye.Li
     
  • Current Micron DDR MT41K256M16HA-125 on i.MX6UL will be EOL. Plan is i.MX6UL
    will use the new 20nm litho 4Gb DDR3L MT41K256M16TW-107.

    Update DDR script of mx6ul evk board for this new DDR, and use it as default.
    http://compass.freescale.net/livelink/livelink?func=ll&objId=234910940&objAction=browse&viewType=1

    Test result:
    Stress test passed.

    Meanwhile add build targets below for old DDR support:
    mx6ul_14x14_evk_ddr_eol_android_defconfig
    mx6ul_14x14_evk_ddr_eol_brillo_defconfig
    mx6ul_14x14_evk_ddr_eol_defconfig
    mx6ul_14x14_evk_ddr_eol_qspi1_defconfig

    Signed-off-by: Ye.Li

    Ye.Li
     
  • We can rely on finish bit for temperature reading for TO1.1.
    Also introduce CHIP_REV_xx macros for 7D.

    Signed-off-by: Peng Fan

    Peng Fan
     
  • i.MX7D TO1.1 changes DDR retension mode control to IOMUXC_GPR,
    add support to this change for LPSR which needs to exit from
    DDR retension mode.

    Signed-off-by: Anson Huang

    Anson Huang
     
  • Clear DLL_CTRL delay line settings at USDHC initialization to eliminate the
    pre-settings from boot rom. U-boot should re-init the USDHC not reply on the
    value set by boot from.

    On MX6DL, the ROM has set the default delay line(DLLCTRL) to 0x1000021,
    when eMMC works on DDR mode in kernel, it will possibly cause data CRC errors.
    Even u-boot always use eMMC in SDR mode, for safety sake, it is better to clear it too.

    Signed-off-by: Ye.Li

    Ye.Li
     
  • change the imx7d arm2 nand rootfs partition index from 3 to 4 since the
    weim nor was enabled by default and took the first mtd partition.

    Signed-off-by: Han Xu

    Han Xu
     
  • By Coverity check, the clk_set_rate function dereferences the clk pointer
    without checking whether it is NULL. This may cause problem when clk is NULL.
    Fix the problem by adding NULL check.

    Signed-off-by: Ye.Li

    Ye.Li
     
  • According to the Coverity result, a unsigned int variable is used fo less-
    than-zero comparison, the result is never true. Need to fix the variable
    type to signed int.

    Signed-off-by: Ye.Li

    Ye.Li
     
  • uboot will fail when loader zImage which is larger than 9M.
    Increasing CONFIG_SYS_BOOTM_LEN from 8 MB to 16 MB is necessary to
    support uncompressing images larger than 8 MB.

    Signed-off-by: Zhang Sanshan

    Zhang Sanshan
     
  • Android's tool chain enable the -mandroid at default.
    This option will enable the -fpic, which cause uboot compilation
    failure:
    "
    LD u-boot
    u-boot contains unexpected relocations: R_ARM_ABS32
    R_ARM_RELATIVE
    "

    In my testcase, arm-linux-androideabi-gcc-4.9 internally
    enables '-fpic', so when compiling code, there will be
    relocation entries using type R_ARM_GOT_BREL and .got
    section. When linking all the built-in.o using ld, there
    will be R_ARM_ABS32 relocation entry and .got section
    in the final u-boot elf image. This can not be handled
    by u-boot, since u-boot only expects R_ARM_RELATIVE
    relocation entry.
    arm-poky-linux-gnueabi-gcc-4.9 default does not enable '-fpic',
    so there is not .got section and R_ARM_GOT_BREL in built-in.o.
    And in the final u-boot elf image, all relocation entries are
    R_ARM_RELATIVE.

    we can pass '-fno-pic' to xxx-gcc to disable pic. whether
    the toolchain internally enables or disables pic, '-fno-pic'
    can work well.

    Signed-off-by: Peng Fan

    Peng Fan
     
  • We need to access reg stp_rep9, but not stp_rep[(9 - 1) / 2].
    If using "__raw_writel(0, DI_STP_REP(disp, 9))", this will exceeds
    the size of stp_rep array.

    Acked-by: Liu Ying
    Signed-off-by: Peng Fan

    Peng Fan