13 May, 2015

1 commit

  • By making the board selections optional, every defconfig will include
    the board selection when running savedefconfig so if a new board is
    added to the top of the list of choices the former top's defconfig will
    still be correct.

    Signed-off-by: Joe Hershberger
    Cc: Masahiro Yamada
    Acked-by: Stephen Warren
    Cc: Tom Rini

    Joe Hershberger
     

28 Mar, 2015

2 commits


30 Jan, 2015

1 commit

  • this is an atempt to make the export of functions typesafe.
    I replaced the jumptable void ** by a struct (jt_funcs) with function pointers.
    The EXPORT_FUNC macro now has 3 fixed parameters and one
    variadic parameter
    The first is the name of the exported function,
    the rest of the parameters are used to format a functionpointer
    in the jumptable,

    the EXPORT_FUNC macros are expanded three times,
    1. to declare the members of the struct
    2. to initialize the structmember pointers
    3. to call the functions in stubs.c

    Signed-off-by: Martin Dorwig
    Acked-by: Simon Glass

    Signed-off-by: Simon Glass
    (resending to the list since my tweaks are not quite trivial)

    Martin Dorwig
     

08 Dec, 2014

2 commits

  • The macro __iomem is defined in include/linux/compiler.h.
    Let's include it rather than double __iomem defines.

    Signed-off-by: Masahiro Yamada
    Cc: Sonic Zhang

    Masahiro Yamada
     
  • Introduce a Makefile under arch/$ARCH/ and include it in the
    top Makefile (similar to Linux kernel). This allows further
    refactoringi like moving architecture-specific code out of global
    makefiles, deprecating config variables (CPU, CPUDIR, SOC) or
    deprecating arch/$ARCH/config.mk.

    In contrary to Linux kernel, U-Boot defines the ARCH variable by
    Kconfig, thus the arch Makefile can only included conditionally
    after the top config.mk.

    Signed-off-by: Daniel Schwierzeck
    Acked-by: Masahiro Yamada

    Daniel Schwierzeck
     

23 Nov, 2014

1 commit

  • U-Boot has never cared about the type when we get max/min of two
    values, but Linux Kernel does. This commit gets min, max, min3, max3
    macros synced with the kernel introducing type checks.

    Many of references of those macros must be fixed to suppress warnings.
    We have two options:
    - Use min, max, min3, max3 only when the arguments have the same type
    (or add casts to the arguments)
    - Use min_t/max_t instead with the appropriate type for the first
    argument

    Signed-off-by: Masahiro Yamada
    Acked-by: Pavel Machek
    Acked-by: Lukasz Majewski
    Tested-by: Lukasz Majewski
    [trini: Fixup arch/blackfin/lib/string.c]
    Signed-off-by: Tom Rini

    Masahiro Yamada
     

11 Nov, 2014

1 commit


10 Nov, 2014

1 commit


08 Nov, 2014

1 commit

  • There are a number of places where U-Boot intentionally and legally
    accesses physical address 0x0000, for example when installing
    exception vectors on systems where these are located in low memory.

    Add "cppcheck-suppress nullPointer" comments to silence cppcheck
    where this is intentional and legal.

    Signed-off-by: Wolfgang Denk

    Wolfgang Denk
     

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
     

07 Aug, 2014

3 commits


31 Jul, 2014

1 commit


30 Jul, 2014

1 commit

  • 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
     

23 Jul, 2014

1 commit

  • At present stdio device functions do not get any clue as to which stdio
    device is being acted on. Some implementations go to great lengths to work
    around this, such as defining a whole separate set of functions for each
    possible device.

    For driver model we need to associate a stdio_dev with a device. It doesn't
    seem possible to continue with this work-around approach.

    Instead, add a stdio_dev pointer to each of the stdio member functions.

    Note: The serial drivers have the same problem, but it is not strictly
    necessary to fix that to get driver model running. Also, if we convert
    serial over to driver model the problem will go away.

    Code size increases by 244 bytes for Thumb2 and 428 for PowerPC.

    22: stdio: Pass device pointer to stdio methods
    arm: (for 2/2 boards) all +244.0 bss -4.0 text +248.0
    powerpc: (for 1/1 boards) all +428.0 text +428.0

    Signed-off-by: Simon Glass
    Acked-by: Marek Vasut
    Reviewed-by: Marek Vasut

    Simon Glass
     

08 Jul, 2014

2 commits


13 May, 2014

2 commits


18 Apr, 2014

1 commit

  • This required moving it into a C file from the header.

    The only user of a non-default name_to_gpio is blackfin, therefore build tested
    with the blackfin bct-brettl2 build, which is one I picked at random. Also
    tested with a build for the ARM tec board which uses the default/fallback
    implementation. Inspection with objdump shows that both have done the right
    thing.

    This change was requested by Marek during review of the sunxi patch series.

    Signed-off-by: Ian Campbell
    Cc: Marek Vasut
    Cc: Wolfgang Denk
    Cc: Sonic Zhang

    Ian Campbell
     

07 Mar, 2014

1 commit

  • Kbuild brought about many advantages for us but a significant
    performance regression was reported by Simon Glass.

    After some discussions and analysis, it turned out
    its main cause is in $(call cc-option,...).

    Historically, U-Boot parses all config.mk
    (arch/*/config.mk and board/*/config.mk)
    every time descending into subdirectories.
    That means cc-options are evaluated over and over again.

    $(call cc-option,...) is useful but costly.
    So we want to evaluate them only in ./Makefile
    and spl/Makefile and export compiler flags.

    This commit changes the build system as follows:

    - Modify scripts/Makefile.build to not include config.mk
    Instead, add $(PLATFORM_CPPFLAGS) to asflags-y, ccflags-y,
    cppflags-y.

    - Export many variables
    Going forward, Kbuild will not parse config.mk files
    when it descends into subdirectories.
    If we want to set variables in config.mk and use them
    in subdirectories, they must be exported.

    This is the list of variables to get exported:
    PLATFORM_CPPFLAGS
    CPUDIR
    BOARDDIR
    OBJCOPYFLAGS
    LDFLAGS
    LDFLAGS_FINAL
    (used in nand_spl/board/*/*/Makefile)
    CONFIG_STANDALONE_LOAD_ADDR
    (used in examples/standalone/Makefile)
    SYM_PREFIX
    (used in examples/standalone/Makefile)
    RELFLAGS
    (used in examples/standalone/Makefile)

    - Delete CPPFLAGS
    This variable has been replaced with PLATFORM_CPPFLAGS

    - Copy gcclibdir from example/standalone/Makefile
    to arch/sparc/config.mk
    The reference in CONFIG_STANDALONE_LOAD_ADDR must be
    resolved before it is exported.

    Signed-off-by: Masahiro Yamada
    Reported-by: Simon Glass
    Acked-by: Simon Glass
    Tested-by: Simon Glass [on Sandbox]
    Tested-by: Stephen Warren [on Tegra]

    Masahiro Yamada
     

05 Mar, 2014

1 commit


26 Feb, 2014

1 commit


21 Feb, 2014

1 commit


20 Feb, 2014

5 commits

  • The ADI twi peripheral is not binding to Blackfin processor only.
    Change to a generic name.

    Signed-off-by: Sonic Zhang

    Sonic Zhang
     
  • Signed-off-by: Sonic Zhang

    Sonic Zhang
     
  • This commit refactors cleaning targets such as
    clean, clobber, mrpropper, distclean
    with scripts/Makefile.clean.

    By using scripts/Makefile.clean, we can recursively descend
    into subdirectories and delete generated files there.

    We do not need add a big list of generated files
    to the "clean" target.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • 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
     
  • This commit changes the working directory
    where the build process occurs.

    Before this commit, build process occurred under the source
    tree for both in-tree and out-of-tree build.

    That's why we needed to add $(obj) prefix to all generated
    files in makefiles like follows:
    $(obj)u-boot.bin: $(obj)u-boot

    Here, $(obj) is empty for in-tree build, whereas it points
    to the output directory for out-of-tree build.

    And our old build system changes the current working directory
    with "make -C " syntax when descending into the
    sub-directories.

    On the other hand, Kbuild uses a different idea
    to handle out-of-tree build and directory descending.

    The build process of Kbuild always occurs under the output tree.
    When "O=dir/to/store/output/files" is given, the build system
    changes the current working directory to that directory and
    restarts the make.

    Kbuild uses "make -f $(srctree)/scripts/Makefile.build obj="
    syntax for descending into sub-directories.
    (We can write it like "make $(obj)=" with a shorthand.)
    This means the current working directory is always the top
    of the output directory.

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

    Masahiro Yamada
     

07 Feb, 2014

4 commits


25 Jan, 2014

1 commit


16 Dec, 2013

3 commits


13 Dec, 2013

1 commit

  • Some editors such as Emacs can highlight source files.
    But their parser algorithm is not perfect.

    If you use one double-quotation alone, some editor cannot
    handle it nicely and mark source lines as a string by mistake.

    It is preferable to use two double-quotations as a pair.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada