25 Jan, 2016

1 commit

  • There are a lot of unrelated files in common, including all of the commands.
    Moving them into their own directory makes them easier to find and is more
    logical.

    Some commands include non-command code, such as cmd_scsi.c. This should be
    sorted out at some point so that the function can be enabled with or without
    the associated command.

    Unfortunately, with m68k I get this error:

    m68k: + M5329AFEE
    +arch/m68k/cpu/mcf532x/start.o: In function `_start':
    +arch/m68k/cpu/mcf532x/start.S:159:(.text+0x452): relocation truncated to fit: R_68K_PC16 against symbol `board_init_f' defined in .text.board_init_f section in common/built-in.o

    I hope someone can shed some light on what this means. I hope it isn't
    depending on the position of code in the image.

    Signed-off-by: Simon Glass
    Reviewed-by: Bin Meng
    Reviewed-by: Heiko Schocher
    Acked-by: Stefan Roese
    Acked-by: Przemyslaw Marczak

    Simon Glass
     

20 Jan, 2016

2 commits

  • This is how CONFIG options are defined by Kconfig.

    Signed-off-by: Masahiro Yamada
    Acked-by: Michal Simek

    Masahiro Yamada
     
  • For historical reason, CONFIG_SYS_TEXT_BASE has been specified
    in various ways:

    [1] by board/${VENDOR}/${BOARD}/config.mk

    [2] by CONFIG_SYS_EXTRA_OPTIONS
    (This was "options" field of boards.cfg before Kconfig conversion)

    [3] by include/configs/${BOARD}.h

    [4] by configs/${BOARD}_defconfig

    Most of M68K boards use either [1] or [2], both of which we want to
    deprecate. Switch them into [4], which is the newest way (Kconfig).

    We still allow [3] too, because it is still used by many boards and
    we expect much time for conversion.

    Signed-off-by: Masahiro Yamada
    Acked-by: Angelo Dureghello
    Reviewed-by: Simon Glass

    Masahiro Yamada
     

04 Nov, 2015

1 commit

  • At present in SPL we place the device tree immediately after BSS. This
    avoids needing to copy it out of the way before BSS can be used. However on
    some boards BSS is not placed with the image - e.g. it can be in RAM if
    available.

    Add an option to tell U-Boot that the device tree should be placed at the
    end of the image binary (_image_binary_end) instead of at the end of BSS.

    Note: A common reason to place BSS in RAM is to support the FAT filesystem.
    We should update the code so that it does not use so much BSS.

    Signed-off-by: Simon Glass
    Signed-off-by: Michal Simek

    Simon Glass
     

21 Oct, 2015

2 commits

  • malloc_simple uses a part of the stack as heap, initially it uses
    SYS_MALLOC_F_LEN bytes which typically is quite small as the initial
    stacks sits in SRAM and we do not have that much SRAM to work with.

    When DRAM becomes available we may switch the stack from SRAM to DRAM
    to give use more room. This commit adds support for also switching to
    a new bigger malloc_simple heap located in the new stack.

    Note that this requires spl_init to be called before spl_relocate_stack_gd
    which in practice means that spl_init must be called from board_init_f.

    Signed-off-by: Hans de Goede
    Reviewed-by: Tom Rini
    Acked-by: Simon Glass

    Hans de Goede
     
  • common/dlmalloc.c is quite big, both in .text and .data usage, therefor
    on some boards the SPL is build to use only malloc_simple.c and not the
    dlmalloc.c code. This is done in various include/configs/foo.h with the
    following construct:

    #ifdef CONFIG_SPL_BUILD
    #define CONFIG_SYS_MALLOC_SIMPLE
    #endif

    This commit introduces a SPL_MALLOC_SIMPLE Kconfig bool which allows
    selecting this functionality through Kconfig instead.

    Signed-off-by: Hans de Goede
    Acked-by: Simon Glass

    Hans de Goede
     

28 Sep, 2015

1 commit


05 Aug, 2015

1 commit

  • When U-Boot runs as an EFI application is does not have a definition of
    CONFIG_SYS_TEXT_BASE. U-Boot is a relocatable application and the relocation
    is done by EFI. U-Boot can be loaded at any address.

    Ensure that this CONFIG option is not set in this case.

    Signed-off-by: Ben Stoltz
    Signed-off-by: Simon Glass
    Reviewed-by: Bin Meng

    Ben Stoltz
     

28 Jul, 2015

1 commit


31 May, 2015

1 commit


30 Apr, 2015

1 commit


29 Mar, 2015

1 commit

  • make the CPU clock selectable via Kconfig

    this removes the sunxi specific CONFIG_CLK_FULL_SPEED defined in each
    soc header and replaces it's use in board/sunxi/board.c with
    CONFIG_SYS_CLK_FREQ from Kconfig which allows us to configure board
    specific frequency on boot

    Signed-off-by: Iain Paton
    [hdegoede@redhat.com s/CONFIG_SYS_CLK_FREQ/CONFIG_TIMER_CLK_FREQ/ for the
    arch-timer clk speed on sun7i to fix mis-compile on sun7i]
    Acked-by: Hans de Goede
    Signed-off-by: Hans de Goede

    Iain Paton
     

28 Mar, 2015

1 commit

  • This option has a bool type, not hex.
    Fix it and enable it if CONFIG_DM is on because Driver Model always
    requires malloc memory. Devices are scanned twice, before/after
    relocation. CONFIG_SYS_MALLOC_F should be enabled to use malloc
    memory before relocation. As it is board-independent, handle it
    globally.

    Signed-off-by: Masahiro Yamada
    Acked-by: Stephen Warren
    Reviewed-by: Simon Glass
    Acked-by: Robert Baldyga

    Masahiro Yamada
     

09 Mar, 2015

1 commit

  • This commit introduces new config: CONFIG_SYS_MALLOC_CLEAR_ON_INIT.

    This config is an expert option and is enabled by default.

    The all amount of memory reserved for the malloc, is by default set
    to zero in mem_malloc_init(). When the malloc reserved memory exceeds
    few MiB, then the boot process can slow down.

    So disabling this config, is an expert option to reduce the boot time,
    and can be disabled by Kconfig.

    Note:
    After disable this option, only calloc() will return the pointer
    to the zeroed memory area. Previously, without this option,
    the memory pointed to untouched malloc memory region, was filled
    with zeros. So it means, that code with malloc() calls should
    be reexamined.

    Signed-off-by: Przemyslaw Marczak
    Reviewed-by: Simon Glass

    Przemyslaw Marczak
     

05 Mar, 2015

1 commit

  • At present SPL uses a single stack, either CONFIG_SPL_STACK or
    CONFIG_SYS_INIT_SP_ADDR. Since some SPL features (such as MMC and
    environment) require a lot of stack, some boards set CONFIG_SPL_STACK to
    point into SDRAM. They then set up SDRAM very early, before board_init_f(),
    so that the larger stack can be used.

    This is an abuse of lowlevel_init(). That function should only be used for
    essential start-up code which cannot be delayed. An example of a valid use is
    when only part of the SPL code is visible/executable, and the SoC must be set
    up so that board_init_f() can be reached. It should not be used for SDRAM
    init, console init, etc.

    Add a CONFIG_SPL_STACK_R option, which allows the stack to be moved to a new
    address before board_init_r() is called in SPL.

    The expected SPL flow (for CONFIG_SPL_FRAMEWORK) is documented in the README.

    Signed-off-by: Simon Glass
    For version 1:
    Acked-by: Albert ARIBAUD
    Reviewed-by: Stefan Roese
    Tested-by: Bo Shen
    Acked-by: Bo Shen
    Acked-by: Heiko Schocher
    Tested-by: Heiko Schocher

    Signed-off-by: Tom Rini

    Simon Glass
     

26 Feb, 2015

2 commits


25 Feb, 2015

3 commits

  • Now CONFIG_SPL_BUILD is not defined in Kconfig, so
    "!depends on SPL_BUILD" and "if !SPL_BUILD" are redundant.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • When Kconfig for U-boot was examined, one of the biggest issues was
    how to support multiple images (Normal, SPL, TPL). There were
    actually two options, "single .config" and "multiple .config".
    After some discussions and thought experiments, I chose the latter,
    i.e. to create ".config", "spl/.config", "tpl/.config" for Normal,
    SPL, TPL, respectively.

    It is true that the "multiple .config" strategy provided us the
    maximum flexibility and helped to avoid duplicating CONFIGs among
    Normal, SPL, TPL, but I have noticed some fatal problems:

    [1] It is impossible to share CONFIG options across the images.
    If you change the configuration of Main image, you often have to
    adjust some SPL configurations correspondingly. Currently, we
    cannot handle the dependencies between them. It means one of the
    biggest advantages of Kconfig is lost.

    [2] It is too painful to change both ".config" and "spl/.config".
    Sunxi guys started to work around this problem by creating a new
    configuration target. Commit cbdd9a9737cc (sunxi: kconfig: Add
    %_felconfig rule to enable FEL build of sunxi platforms.) added
    "make *_felconfig" to enable CONFIG_SPL_FEL on both images.
    Changing the configuration of multiple images in one command is a
    generic demand. The current implementation cannot propose any
    good solution about this.

    [3] Kconfig files are getting ugly and difficult to understand.
    Commit b724bd7d6349 (dm: Kconfig: Move CONFIG_SYS_MALLOC_F_LEN to
    Kconfig) has sprinkled "if !SPL_BUILD" over the Kconfig files.

    [4] The build system got more complicated than it should be.
    To adjust Linux-originated Kconfig to U-Boot, the helper script
    "scripts/multiconfig.sh" was introduced. Writing a complicated
    text processor is a shell script sometimes caused problems.

    Now I believe the "single .config" will serve us better. With it,
    all the problems above would go away. Instead, we will have to add
    some CONFIG_SPL_* (and CONFIG_TPL_*) options such as CONFIG_SPL_DM,
    but we will not have much. Anyway, this is what we do now in
    scripts/Makefile.spl.

    I admit my mistake with my apology and this commit switches to the
    single .config configuration.

    It is not so difficult to do that:

    - Remove unnecessary processings from scripts/multiconfig.sh
    This file will remain for a while to support the current defconfig
    format. It will be removed after more cleanups are done.

    - Adjust some makefiles and Kconfigs

    - Add some entries to include/config_uncmd_spl.h and the new file
    scripts/Makefile.uncmd_spl. Some CONFIG options that are not
    supported on SPL must be disabled because one .config is shared
    between SPL and U-Boot proper going forward. I know this is not
    a beautiful solution and I think we can do better, but let's see
    how much we will have to describe them.

    - update doc/README.kconfig

    More cleaning up patches will follow this.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Simon Glass

    Masahiro Yamada
     
  • At present defaults in arch-specific Kconfig files are ignored if the
    top-level item comes ahead of it in include order. This means that it is
    not possible to have a U-Boot default that architectures and boards can
    override. This does not seem very useful.

    Move the include earlier to support this.

    Signed-off-by: Simon Glass
    Reported-by: Masahiro Yamada
    Reviewed-by: Masahiro Yamada

    Simon Glass
     

13 Feb, 2015

3 commits


09 Feb, 2015

1 commit


30 Jan, 2015

1 commit

  • For FIT signature based approach to work, RSA library needs to be selected.
    The FIT_SIGNATURE option in Kconfig is modified to automatically select RSA.
    Selecting RSA compiles the RSA library required for image verification.

    Signed-off-by: Ruchika Gupta
    CC: Simon Glass
    Acked-by: Simon Glass

    Ruchika Gupta
     

15 Jan, 2015

1 commit

  • It makes sense to specify CONFIG_SYS_CLK_FREQ in "configs/xx_defconfig"
    instead of "include/configs/xxx.h" because then header will be reusable
    across boards with different CPU clocks.

    Also this nice to have an ability for end user to tune this value
    himself via "menuconfig".

    For now I'm only applying this change to all ARC configs because
    otherwise scope of change will be huge.

    Signed-off-by: Alexey Brodkin
    Cc: Tom Rini
    Cc: Masahiro Yamada
    Cc: Hans de Goede
    cc: Simon Glass
    Reviewed-by: Tom Rini

    Alexey Brodkin
     

08 Jan, 2015

1 commit


25 Nov, 2014

1 commit


24 Nov, 2014

1 commit

  • For similar reasons to why the Linux Kernel has an EXPERT option, we too
    want an option to allow for tweaking of some options that while normally
    should remain hidden, may need to be changed in some cases.

    Signed-off-by: Tom Rini
    Acked-by: Masahiro Yamada
    Acked-by: Hans de Goede
    Signed-off-by: Hans de Goede

    Tom Rini
     

23 Nov, 2014

1 commit


05 Nov, 2014

1 commit

  • Defining CONFIG_SYS_TEXT_BASE in config.mk is very old style.

    Create CONFIG_SYS_TEXT_BASE option in Kconfig, but let it
    depend on CONFIG_SPARC because we do not want to disturb
    the other architectures that still define CONFIG_SYS_TEXT_BASE
    in their header files.

    Signed-off-by: Masahiro Yamada
    Cc: Daniel Hellstrom

    Masahiro Yamada
     

28 Oct, 2014

2 commits

  • CONFIG_TPL should not be enabled for boards that do not have TPL.
    CONFIG_SUPPORT_TPL introduced by this commit should be "select"ed
    by boards with TPL support and CONFIG_TPL should depend on it.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • CONFIG_SPL should not be enabled for boards that do not have SPL.
    CONFIG_SUPPORT_SPL introduced by this commit should be "select"ed
    by boards with SPL support and CONFIG_SPL should depend on it.

    Signed-off-by: Masahiro Yamada
    Acked-by: Simon Glass

    Masahiro Yamada
     

25 Sep, 2014

2 commits

  • This commit moves:
    CONFIG_OF_CONTROL
    CONFIG_OF_SEPARATE
    CONFIG_OF_EMBED
    CONFIG_OF_HOSTFILE

    Because these options are currently not supported for SPL,
    the "Device Tree Control" menu does not appear in the SPL
    configuration.

    Note:
    zynq-common.h should be adjusted so as not to change the
    default value of CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME.

    Signed-off-by: Masahiro Yamada
    Acked-by: Simon Glass
    Cc: Stephen Warren
    Cc: Minkyu Kang
    Acked-by: Michal Simek

    Masahiro Yamada
     
  • This would be useful to start moving various config options.

    Signed-off-by: Masahiro Yamada
    Acked-by: Simon Glass
    Tested-by: Simon Glass

    Masahiro Yamada
     

29 Aug, 2014

2 commits


22 Aug, 2014

1 commit

  • CONFIG_DEFCONFIG_LIST specifies the default defconfig.
    It is used by "make savedefconfig" when .config is missing.
    But that's it. I could not find other useful cases.

    As a side effect, CONFIG_DEFCONFIG_LIST="configs/sandbox_defconfig"
    is contained in .config of every target board, which some people
    think is odd. So, let's remove it.

    Signed-off-by: Masahiro Yamada
    Cc: Michal Simek
    Acked-by: Michal Simek

    Masahiro Yamada
     

30 Jul, 2014

1 commit