21 Jul, 2018

31 commits

  • The SPL code for smartweb is close to its limit and adding a few extra
    instructions to SPL will cause it to overrun its sram allotement (thus
    causing build failures). To allow adding the 'spl_perform_fixups'
    extension point to SPL, we'll enable SPL_TINY_MEMSET for smartweb.

    Signed-off-by: Philipp Tomsich
    Series-cc: trini

    Philipp Tomsich
     
  • All other rockchip boards have rk_board_late_init() hook,
    so add it to rk3188 boards also.

    Signed-off-by: Alexander Kochetkov
    Acked-by: Philipp Tomsich
    Reviewed-by: Philipp Tomsich

    Alexander Kochetkov
     
  • rk3066 and rk3188 has two I2C controller implementations.
    Current I2C driver wan't work with legacy implementation.
    Switching between controllers is performed using a bit inside
    GFR_SOC_CON1 register. The bit setting is performed by pinctrl
    driver. The patch ask pinctrl to do settings.

    Signed-off-by: Alexander Kochetkov
    Acked-by: Philipp Tomsich
    Reviewed-by: Philipp Tomsich
    [fix warnings by including the rk3228 variant in the compatible-list]:
    Signed-off-by: Philipp Tomsich

    Alexander Kochetkov
     
  • Signed-off-by: Tom Rini

    Tom Rini
     
  • Explicitly add 'python' call for 'acs_tool.pyc', to avoid failed
    execution on some OSes.

    Signed-off-by: Loic Devulder
    Acked-by: Neil Armstrong

    Loic Devulder
     
  • Enable ADC support on the Khadas VIM board.

    Signed-off-by: Loic Devulder
    Acked-by: Neil Armstrong

    Loic Devulder
     
  • Synchronize the Linux Device Tree for Amlogic Meson GX boards from Linux 4.17.5
    (Linux commit 54fb3c180d05e9dfda892a93413514e99f0cbb19).

    This will enable HDMI_5V for USB Amlogic Meson GXL P212 based boards.

    Signed-off-by: Loic Devulder

    Loic Devulder
     
  • This tests that the importing of an environment with a specified
    whitelist works as intended.

    If there are variables passed as parameter to the env import command,
    those only should be imported in the current environment.

    For each variable passed as parameter, if
    - foo is bar in current env and bar2 in exported env, after importing
    exported env, foo shall be bar2,
    - foo does not exist in current env and foo is bar2 in exported env,
    after importing exported env, foo shall be bar2,
    - foo is bar in current env and does not exist in exported env (but is
    passed as parameter), after importing exported env, foo shall be empty
    ONLY if the -d option is passed to env import, otherwise foo shall be
    bar,

    Any variable not passed as parameter should be left untouched.

    Two other tests are made to test that size cannot be '-' if the checksum
    protection is enabled.

    Signed-off-by: Quentin Schulz
    Reviewed-by: Simon Glass
    Reviewed-by: Stephen Warren
    Tested-by: Stephen Warren

    Quentin Schulz
     
  • While the `env export` can take as parameters variables to be exported,
    `env import` does not have such a mechanism of variable selection.

    Let's add the ability to add parameters at the end of the command for
    variables to be imported.

    Every env variable from the env to be imported passed by parameter to
    this command will override the value of the variable in the current env.

    If a variable exists in the current env but not in the imported env, if
    this variable is passed as a parameter to env import, the variable will
    be unset ONLY if the -d option is passed to env import, otherwise the
    current value of the variable is kept.

    If a variable exists in the imported env, the variable in the current
    env will be set to the value of the one from the imported env.

    All the remaining variables are left untouched.

    As the size parameter of env import is positional but optional, let's
    add the possibility to use the sentinel '-' for when we don't want to
    give the size parameter (when the env is '\0' terminated) but we pass a
    list of variables at the end of the command.

    env import addr
    env import addr -
    env import addr size
    env import addr - foo1 foo2
    env import addr size foo1 foo2

    are all valid.

    env import -c addr
    env import -c addr -
    env import -c addr - foo1 foo2

    are all invalid because they don't pass the size parameter required for
    checking, while the following are valid.

    env import addr size
    env import addr size foo1 foo2

    Nothing's changed for the other parameters or the overall behaviour.

    One of its use case could be to load a secure environment from the
    signed U-Boot binary and load only a handful of variables from an
    other, unsecure, environment without completely losing control of
    U-Boot.

    Signed-off-by: Quentin Schulz
    Tested-by: Alex Kiernan
    Tested-by: Stephen Warren

    Quentin Schulz
     
  • When vars are passed to the himport_r function with H_NOCLEAR flag,
    those vars will be overridden in the current environment and if one of
    those vars is not in the imported environment, it'll be deleted in the
    current environment whatever the flag passed to himport_r.

    The H_NOCLEAR flag is used to clear the whole environment whether vars
    are passed to the function or not.

    This leads to incoherent behaviour. If one passes vars to himport_r
    with the H_NOCLEAR flag, if a var in vars is not in the imported env,
    that var will be removed from the current env.

    If one passes vars to himport_r without the H_NOCLEAR flag, the whole
    environment will be removed and vars will be imported from the
    environment in RAM.

    It makes more sense to keep the variable that is in the current
    environment but not in the imported environment if the H_NOCLEAR flag is
    set and remove only that variable if the H_NOCLEAR flag is not set.

    Let's clear the whole environment only if H_NOCLEAR and vars are not
    passed to himport_r.

    Let's remove variables that are in the current environment but not in
    the imported env only if the H_NOCLEAR flag is not passed.

    Suggested-by: Wolfgang Denk
    Signed-off-by: Quentin Schulz

    Quentin Schulz
     
  • Some functions have different behaviour when the given address is 0
    (assumed to be NULL by the function).

    find_ram_base() does not return 0 anymore so it's safe to remove those
    offsets.

    Suggested-by: Stephen Warren
    Signed-off-by: Quentin Schulz
    Reviewed-by: Stephen Warren
    Tested-by: Stephen Warren

    Quentin Schulz
     
  • Some functions test that the given address is not NULL (0) and fail or
    have a different behaviour if that's the case (e.g. hexport_r).

    Let's make the RAM base address to be not zero by setting it to 2MiB if
    that's the case.

    2MiB is chosen because it represents the size of an ARM LPAE/v8 section.

    Suggested-by: Stephen Warren
    Signed-off-by: Quentin Schulz
    Reviewed-by: Simon Glass
    Reviewed-by: Stephen Warren
    Tested-by: Stephen Warren

    Quentin Schulz
     
  • The error message should start with `## Error: ` so that it's easily
    detectable by tests without needing to have a complex regexp for
    matching all possible error message patterns.

    Let's add the `## Error: ` prefix to the error messages since it's the
    one already in use.

    Suggested-by: Stephen Warren
    Signed-off-by: Quentin Schulz
    Reviewed-by: Simon Glass
    Reviewed-by: Stephen Warren
    Tested-by: Stephen Warren

    Quentin Schulz
     
  • HSE and LSE bypass shall support both analog and digital signals.
    This patch add a way to select digital bypas case in the device tree
    and set the associated bit DIGBYP in RCC_BDCR and RCC_OCEN register
    during clock tree initialization.

    Signed-off-by: Patrick Delaunay

    Patrick Delaunay
     
  • Add ADC clock gating, that may be used by STM32 ADC.

    Signed-off-by: Fabrice Gasnier
    Signed-off-by: Patrick Delaunay

    Patrick Delaunay
     
  • Alignment with kernel clock driver

    Signed-off-by: Patrice Chotard
    Signed-off-by: Patrick Delaunay

    Patrick Delaunay
     
  • This patch add clk_enable/clk_disable/clk_get_rate support for
    - DSI_PX
    - LTDC_PX
    - DSI_K (only get rate)

    These clocks are needed for LTDC and DSI drivers with latest device tree.

    Signed-off-by: Patrick Delaunay

    Patrick Delaunay
     
  • the function compute the VCO PLL freq, used in
    - stm32mp1_read_pll_freq()
    - pll_set_rate()

    Signed-off-by: Patrick Delaunay
    # Conflicts:
    # drivers/clk/clk_stm32mp1.c

    Patrick Delaunay
     
  • This patch define RCC_PLLNCFGR2_SHIFT to reuse it in
    the pll function for set rate.

    Signed-off-by: Patrick Delaunay
    Reviewed-by: Vikas Manocha

    Patrick Delaunay
     
  • Configure clock tree for all the devices.

    Signed-off-by: Patrick Delaunay

    Patrick Delaunay
     
  • Signed-off-by: Patrick Delaunay

    Patrick Delaunay
     
  • Add support of stm32mp157c-ev1, the evaluation board with pmic stpmu1
    (ev1 = mother board + daughter ed1) with device tree.
    EV1 is the selected board by default in basic defconfig.

    PS: CONFIG_PINCTRL_FULL activation avoid to increase
    SYS_MALLOC_F_LEN (Early malloc usage: 2034)

    Signed-off-by: Patrick Delaunay

    Patrick Delaunay
     
  • needed for RCC MISC driver and sysreset with syscon
    in SPL

    Signed-off-by: Patrick Delaunay

    Patrick Delaunay
     
  • Following next kernel rcc bindings, we must use a MFD
    RCC driver which is able to bind both clock and reset
    drivers.

    We can reuse and adapt RCC MFD driver already available
    for MCU SoCs (F4/F7/H7).

    Signed-off-by: Patrice Chotard
    Signed-off-by: Patrick Delaunay

    Patrick Delaunay
     
  • This patch rebase the stm32mp1 device tree source from
    linux kernel v4.18-rc1.

    Signed-off-by: Patrick Delaunay

    Patrick Delaunay
     
  • Use new API syscon_node_to_regmap in sysreset_syscon driver
    for compatible "syscon-reboot"; that's avoid the need of explicit
    syscon binding for "regmap" handle.

    Signed-off-by: Patrick Delaunay

    Patrick Delaunay
     
  • For qemu-x86 the date command produces wrong days of the week:
    Date: 2018-07-06 (Saturday) Time: 18:02:03
    Date: 2018-07-07 (unknown day) Time: 21:02:06

    According to a comment in the Linux driver the mc146818 only updates the
    day of the week if the register value is non-zero.

    Sunday is 1, saturday is 7 unlike in U-Boot (see data sheet
    https://www.nxp.com/docs/en/data-sheet/MC146818.pdf).

    So let's use our library function to determine the day of the week.

    Signed-off-by: Heinrich Schuchardt

    Heinrich Schuchardt
     
  • Extend BOOTDELAY help text to cover its additional usage within the
    bootmenu command.

    Signed-off-by: Alex Kiernan

    Alex Kiernan
     
  • The test for (CONFIG_BOOTDELAY >= 0) has been in U-Boot since the
    beginning, but the meaning of it has changed over time. Allow the
    default to be set for any value, including -ve ones. This allows
    (for example) CONFIG_ENV_IS_NOWHERE to have values for bootdelay in
    its compiled in environment.

    The only thing this changes is where the default for bootdelay can be
    fetched from; before this change you get a compiled in default, after
    you'll pull it from the default value in the environment, but both values
    will be the same. Also if there's a value set in the environment then
    that will take precedence (as before).

    Signed-off-by: Alex Kiernan

    Alex Kiernan
     
  • The comparison
    logical > item->logical + item->length
    in btrfs_map_logical_to_physical is wrong and should be instead
    logical >= item->logical + item->length
    For example, if
    item->logical = 4096
    item->length = 4096
    and we are looking for logical = 8192, it is not part of item (item is
    [4096, 8191]). But the comparison is false and we think we have found
    the correct item, although we should be searing in the right subtree.

    This fixes some bugs I encountered.

    Signed-off-by: Marek Behun

    Marek Behún
     
  • Signed-off-by: Michael Trimarchi

    Michael Trimarchi
     

20 Jul, 2018

9 commits

  • RAW mode ARGS sector doesn't have to be used for all falcon boot. Skip
    loading ARGS sectors if not defined.

    Signed-off-by: York Sun

    York Sun
     
  • Our implementation of rtc_to_tm() cannot handle dates of more than
    0x7fffffff seconds after 1970-01-01.

    Adopt the Linux kernel implementation.

    Signed-off-by: Heinrich Schuchardt

    Heinrich Schuchardt
     
  • Signed-off-by: Hannes Schmelzer

    Hannes Schmelzer
     
  • - add a devicetree for each variant (mmc, spi, nand)
    - drop unneeded code from board and bur/common
    - drop unneeded stuff from config header files
    - minor adaptions to be compliant with driver model (requesting gpio,..)
    - harmonize the commandset over all brppt1 targets

    Signed-off-by: Hannes Schmelzer

    Hannes Schmelzer
     
  • This is needed for having access to the devices below this bus, most
    important is uart and boot-device (spi, mmc, ...) in SPL stage.

    Signed-off-by: Hannes Schmelzer

    Hannes Schmelzer
     
  • With this commit we do:

    - set the bootdelay in all brppt1 defconfigs to 0, this makes
    development easier, since we can break into serial console.

    - move CONFIG_BOOTCOMMAND from header file to defconfig

    - introduce b_mode variable for selecting the final boot-target.
    This b_mode represents the boot-switch, which can found on most b&r
    targets. On the brppt1 this boot-switch is derived from some gpio and
    the bootcounter within the RTC block, making it so possible to force
    a boot-target (as example for repair-case).

    - refactor the environment for booting new flexible way
    primary we want to get some bootscr.img within the mass-storage,
    this script then loads everything needed for the boot.
    For legacy reason we implement the t30lgcy#x boot targets, booting the
    already delivered linux-images.

    - make space for the cfgscr within mtdparts on brppt1_nand

    Signed-off-by: Hannes Schmelzer

    Hannes Schmelzer
     
  • On other OS, not one provided by B&R, it is not guaranteed that there
    are factory-settings within a devicetree. So we must not treat the
    absence of them as error.
    Further we've the fact that on different version of the device-tree
    files there are different namings of the factory-settings, we consider
    this with searching for an alternative name.

    changing things as following:

    - don't treat as error if the bootloader version cannot written into
    devicetree.

    - since the naming of the factory-settings are different in different
    versions of the provided device-tree we search for the alternate name
    "/fset"

    Signed-off-by: Hannes Schmelzer

    Hannes Schmelzer
     
  • The falcon mode was never used on this board, there is also no plan to
    use it. So drop this dead code.

    Signed-off-by: Hannes Schmelzer

    Hannes Schmelzer
     
  • If a board-code calls the pmicsetup(u32 mpupll) with a mpupll value
    != 0 it wants to force some frequency with the value provided by mpupll.
    Setting up 1 GHz is wrong here.

    Nobody did take notice about that yet, since every board calls this
    function with zero.

    Signed-off-by: Hannes Schmelzer

    Hannes Schmelzer