14 Sep, 2014

1 commit

  • Now the types of CONFIG_SYS_{ARCH, CPU, SOC, VENDOR, BOARD, CONFIG_NAME}
    are specified in arch/Kconfig.

    We can delete the ones in arch and board Kconfig files.

    This commit can be easily reproduced by the following command:

    find . -name Kconfig -a ! -path ./arch/Kconfig | xargs sed -i -e '
    /config[[:space:]]SYS_\(ARCH\|CPU\|SOC\|\VENDOR\|BOARD\|CONFIG_NAME\)/ {
    N
    s/\n[[:space:]]*string//
    }
    '

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

31 Jul, 2014

1 commit


30 Jul, 2014

2 commits

  • This commit enables Kconfig.
    Going forward, we use Kconfig for the board configuration.
    mkconfig will never be used. Nor will include/config.mk be generated.

    Kconfig must be adjusted for U-Boot because our situation is
    a little more complicated than Linux Kernel.
    We have to generate multiple boot images (Normal, SPL, TPL)
    from one source tree.
    Each image needs its own configuration input.

    Usage:

    Run "make _defconfig" to do the board configuration.

    It will create the .config file and additionally spl/.config, tpl/.config
    if SPL, TPL is enabled, respectively.

    You can use "make config", "make menuconfig" etc. to create
    a new .config or modify the existing one.

    Use "make spl/config", "make spl/menuconfig" etc. for spl/.config
    and do likewise for tpl/.config file.

    The generic syntax of configuration targets for SPL, TPL is:

    /

    Here, is either 'spl' or 'tpl'
    is 'config', 'menuconfig', 'xconfig', etc.

    When the configuration is done, run "make".
    (Or "make _defconfig all" will do the configuration and build
    in one time.)

    For futher information of how Kconfig works in U-Boot,
    please read the comment block of scripts/multiconfig.py.

    By the way, there is another item worth remarking here:
    coexistence of Kconfig and board herder files.

    Prior to Kconfig, we used C headers to define a set of configs.

    We expect a very long term to migrate from C headers to Kconfig.
    Two different infractructure must coexist in the interim.

    In our former configuration scheme, include/autoconf.mk was generated
    for use in makefiles.
    It is still generated under include/, spl/include/, tpl/include/ directory
    for the Normal, SPL, TPL image, respectively.

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

    Masahiro Yamada
     
  • This commit adds:
    - arch/${ARCH}/Kconfig
    provide a menu to select target boards
    - board/${VENDOR}/${BOARD}/Kconfig or board/${BOARD}/Kconfig
    set CONFIG macros to the appropriate values for each board
    - configs/${TARGET_BOARD}_defconfig
    default setting of each board

    (This commit was automatically generated by a conversion script
    based on boards.cfg)

    In Linux Kernel, defconfig files are located under
    arch/${ARCH}/configs/ directory.
    It works in Linux Kernel since ARCH is always given from the
    command line for cross compile.

    But in U-Boot, ARCH is not given from the command line.
    Which means we cannot know ARCH until the board configuration is done.
    That is why all the "*_defconfig" files should be gathered into a
    single directory ./configs/.

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

    Masahiro Yamada
     

22 Jul, 2014

1 commit

  • Commit ddc94378d changed the definition of __kernel_size_t
    from unsigned int to unsigned long.

    It is true that it fixed warnings on some crosstools
    but it increased warnings on the others.

    The problem is that we cannot see consistency in terms of
    the typedef of __kernel_size_t on M68K architecture.

    However, I'd like to suggest to have __kernel_size_t to be
    unsigned int again.

    Rationale:

    [1] Linux Kernel defines __kernel_size_t on M68K as unsigned int.
    Let's stick to the Linux's way.

    [2] We want to build boards with popular pre-built toolchains,
    not the one locally-built by indivisuals.
    I think m68-linux-gcc which can be downloaded from www.kernel.org
    is the candidate for our _recommended_ toolchains.

    With this patch, all the m68k boards can be built without any warnings.

    Give it a try with the following crosstools:

    https://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/4.6.3/
    x86_64-gcc-4.6.3-nolibc_m68k-linux.tar.xz

    or

    https://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/4.9.0/
    x86_64-gcc-4.9.0-nolibc_m68k-linux.tar.xz

    (The latter is newer.)

    Signed-off-by: Masahiro Yamada
    Cc: Simon Glass
    Cc: Jason Jin

    Masahiro Yamada
     

08 Jul, 2014

2 commits

  • The csarX and cscrX registers in the fbcs_t struct are 16-bit for
    CONFIG_M5235 and 32-bit wide otherwise. The code in cpu_init.c
    accessed them always as 32-bit, effectively creating a wrong memory
    access on M5235. Fixed that by choosing out_be16/out_be32 depending
    on whether CONFIG_M5235 is defined or not.

    Cc: Jason Jin
    Signed-off-by: Vasili Galka

    Vasili Galka
     
  • in_be16() shall be passed a pointer to register and not its value. This
    is clearly a typo resulting in a wrong memory access, so fix it.

    Cc: Alison Wang , Jason Jin
    Signed-off-by: Vasili Galka

    Vasili Galka
     

19 Jun, 2014

3 commits


12 Jun, 2014

1 commit

  • Most of the warnings seem to be related to using 'int' for size_t. Change
    this and fix up the remaining warnings and problems. For bootm, the warning
    was masked by others, and there is an actual bug in the code.

    Signed-off-by: Simon Glass

    Simon Glass
     

30 May, 2014

1 commit


13 May, 2014

1 commit

  • gd->bd->bi_baudrate is a copy of gd->baudrate.

    Since baudrate is a common feature for all architectures,
    keep gd->baudrate only.

    It is true that bi_baudrate was passed to the kernel in that structure
    but it was a long time ago.

    Signed-off-by: Masahiro Yamada
    Cc: Tom Rini
    Cc: Simon Glass
    Cc: Wolfgang Denk
    Cc: Heiko Schocher
    Acked-by: Michal Simek (For microblaze)

    Masahiro Yamada
     

13 Mar, 2014

2 commits

  • Prior to Kbuild, $(OBJTREE) was used for pointing to the
    top of build directory with absolute path.

    In Kbuild style, $(objtree) is used instead.
    This commit renames OBJTREE to objtree and delete the
    defition of OBJTREE.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Prior to Kbuild, $(TOPDIR) or $(SRCTREE) was used for
    pointing to the top of source directory.
    (No difference between the two.)

    In Kbuild style, $(srctree) is used instead.
    This commit renames TOPDIR to srctree and delete the
    defition of TOPDIR.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

05 Mar, 2014

1 commit


04 Mar, 2014

1 commit


20 Feb, 2014

1 commit

  • Now we are ready to switch over to real Kbuild.

    This commit disables temporary scripts:
    scripts/{Makefile.build.tmp, Makefile.host.tmp}
    and enables real Kbuild scripts:
    scripts/{Makefile.build,Makefile.host,Makefile.lib}.

    This switch is triggered by the line in scripts/Kbuild.include
    -build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build.tmp obj
    +build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj

    We need to adjust some build scripts for U-Boot.
    But smaller amount of modification is preferable.

    Additionally, we need to fix compiler flags which are
    locally added or removed.

    In Kbuild, it is not allowed to change CFLAGS locally.
    Instead, ccflags-y, asflags-y, cppflags-y,
    CFLAGS_$(basetarget).o, CFLAGS_REMOVE_$(basetarget).o
    are prepared for that purpose.

    Signed-off-by: Masahiro Yamada
    Tested-by: Gerhard Sittig

    Masahiro Yamada
     

09 Nov, 2013

1 commit

  • Linux Kernel abolished include/linux/config.h long time ago.
    (around version v2.6.18..v2.6.19)

    We don't need to provide Linux copatibility any more.

    This commit deletes include/linux/config.h
    and fixes source files not to include this.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

01 Nov, 2013

1 commit


15 Oct, 2013

2 commits


24 Jul, 2013

2 commits


23 Jul, 2013

3 commits


17 Jul, 2013

1 commit


02 Jul, 2013

1 commit

  • Commit 35fc84fa1ff51e15ecd3e464dac87eb105ffed30 broke bootm on avr32. It
    requires to call do_bootm_linux() with flag set to BOOTM_STATE_OS_PREP before
    calling it again with flag set to BOOTM_STATE_OS_GO.
    Fix this by allowing flag set to BOOTM_STATE_OS_PREP, this however will
    require a complete refactoring later on.

    Signed-off-by: Andreas Bießmann
    [trini: Apply to m68k, microblaze, nds32, nios2, openrisc, sh and sparc]
    Signed-off-by: Tom Rini

    Andreas Bießmann
     

27 Jun, 2013

3 commits


15 May, 2013

1 commit


02 May, 2013

1 commit

  • Delete all occurrences of hang() and provide a generic function.

    Signed-off-by: Andreas Bießmann
    Acked-by: Albert ARIBAUD
    [trini: Modify check around puts() in hang.c slightly]
    Signed-off-by: Tom Rini

    Andreas Bießmann
     

02 Apr, 2013

1 commit

  • 'bool' is defined in random places. This patch consolidates them into a
    single header file include/linux/types.h, using stdbool.h introduced in C99.

    All other #define, typedef and enum are removed. They are all consistent with
    true = 1, false = 0.

    Replace FALSE, False with false. Replace TRUE, True with true.
    Skip *.py, *.php, lib/* files.

    Signed-off-by: York Sun

    York Sun
     

16 Mar, 2013

3 commits

  • These functions are only available for powerpc and are not declared in a
    header file. We want to use the rest function in two places (board_f and
    board_r), so declare the functions in watchdog.h.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • We create a separate header file for link symbols defined by the link
    scripts. It is helpful to have these all in one place and try to
    make them common across architectures. Since Linux already has a similar
    file, we bring this in even though many of the symbols there are not
    relevant to us.

    Each architecture has its own asm/sections.h where symbols specifc to
    that architecture can be added. For now everything except AVR32 just
    includes the generic header.

    One change is needed in arch/avr32/lib/board.c to make this conversion
    work.

    Reviewed-by: Tom Rini (version 5)
    Signed-off-by: Simon Glass

    Simon Glass
     
  • Note this is a tree-wide change affecting multiple architectures.

    At present we use __bss_start, but mostly __bss_end__. This seems
    inconsistent and in a number of places __bss_end is used instead.

    Change to use __bss_end for the BSS end symbol throughout U-Boot. This
    makes it possible to use the asm-generic/sections.h file on all
    archs.

    Signed-off-by: Simon Glass

    Simon Glass
     

20 Feb, 2013

1 commit

  • On architectures where manual relocation
    is needed, the 'malloc_bin_reloc' function
    must be called after 'mem_malloc_init'.

    Make the 'malloc_bin_reloc' function static
    and call it directly from 'mem_malloc_init'
    instead of calling that from board_init_{r,f}
    functions of the affected architectures.

    Signed-off-by: Gabor Juhos
    Cc: Wolfgang Denk
    Cc: Andreas Bießmann
    Cc: Jason Jin
    Cc: Macpaul Lin
    Cc: Daniel Hellstrom
    Cc: Daniel Schwierzeck

    Gabor Juhos
     

04 Feb, 2013

1 commit