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
     

11 Sep, 2014

1 commit

  • This is an implementation of GPIOs for Tegra that uses driver model. It has
    been tested on trimslice and also using the new iotrace feature.

    The implementation uses a top-level GPIO device (which has no actual GPIOS).
    Under this all the banks are created as separate GPIO devices.

    The GPIOs are named as per the Tegra datasheet/header files: A0..A7, B0..B7,
    ..., Z0..Z7, AA0..AA7, etc.

    Since driver model is not yet available before relocation, or in SPL, a
    special function is provided for seaboard's SPL code.

    Signed-off-by: Simon Glass

    Simon Glass
     

31 Aug, 2014

1 commit

  • Becuase the board select menu in arch/arm/Kconfig is too big,
    move the Tegra board select menu to tegra/Kconfig.

    Insert the Tegra SoC select menu between the arch select and the
    board select.

    Architecture select
    |-- Tegra Platform (Tegra)
    |- Tegra SoC select (Tegra20 / 30 / 114 / 124)
    |- Board select

    Consolidate also common settings (CONFIG_SYS_CPU="armv7" and
    CONFIG_SYS_SOC="tegra*") and always "select" CONFIG_SPL as follows:

    config TEGRA
    bool
    select SPL

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

    Masahiro Yamada
     

19 Aug, 2014

1 commit


30 Jul, 2014

2 commits

  • We have switched to Kconfig and the boards.cfg file is going to
    be removed. We have to retrieve the board status and maintainers
    information from it.

    The MAINTAINERS format as in Linux Kernel would be nice
    because we can crib the scripts/get_maintainer.pl script.

    After some discussion, we chose to put a MAINTAINERS file under each
    board directory, not the top-level one because we want to collect
    relevant information for a board into a single place.

    TODO:
    Modify get_maintainer.pl to scan multiple MAINTAINERS files.

    Signed-off-by: Masahiro Yamada
    Suggested-by: Tom Rini
    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
     

14 May, 2014

4 commits

  • The Venice2 pinmux spreadsheet was updated to fix a few issues. Import
    those changes into the U-Boot pinmux initialization tables.

    Signed-off-by: Stephen Warren
    Signed-off-by: Tom Warren

    Stephen Warren
     
  • This re-imports the entire Venice2 pinmux data from the board's master
    spreadsheet, and makes use of the new IO clamping GPIO initialization
    table features. This makes the board port fully compliant with the
    required HW-defined pinmux initialization sequence.

    Signed-off-by: Stephen Warren
    Signed-off-by: Tom Warren

    Stephen Warren
     
  • The HW-defined procedure for booting Tegra requires that
    CLAMP_INPUTS_WHEN_TRISTATED be enabled before programming the pinmux.
    Modify the Jetson TK1 board to do this.

    Signed-off-by: Stephen Warren
    Signed-off-by: Tom Warren

    Stephen Warren
     
  • The HW-defined procedure for booting Tegra requires that some pins be
    set up as GPIOs immediately at boot in order to avoid glitches on those
    pins, when the pinmux is programmed. This patch implements this
    procedure for Jetson TK1. For pins which are to be used as GPIOs, the
    pinmux mux function need not be programmed, so the pinmux table is also
    adjusted.

    Signed-off-by: Stephen Warren
    Signed-off-by: Tom Warren

    Stephen Warren
     

17 Apr, 2014

8 commits

  • Combine the Tegra USB header file into one header file for all SoCs.
    Use ifdef to account for the difference, especially Tegra20 is quite
    different from newer SoCs. This avoids duplication, mainly for
    Tegra30 and newer devices.

    Reviewed-by: Stephen Warren
    Signed-off-by: Stefan Agner
    Signed-off-by: Tom Warren

    Stefan Agner
     
  • Jetson TK1 is an NVIDIA Tegra124 reference board, which shares much of
    its design with Venice2.

    Signed-off-by: Stephen Warren
    Signed-off-by: Tom Warren

    Stephen Warren
     
  • This renames all the pinmux pins, drive groups, and functions so they
    have a prefix which matches the type name. These lists are also auto-
    generated using scripts that were also used to generate the kernel
    pinctrl drivers. This ensures that the lists are consistent between the
    two.

    The entries in tegra124_pingroups[] are all updated to remove the columns
    which are no longer used.

    All affected code is updated to match.

    There are differences in the set of drive groups. I have validated this
    against the TRM. There are differences order of pin definitions in
    pinmux.c; these previously had significant mismatches with the correct
    order:-( I adjusted a few entries in pinmux-config-venice2.h since the
    set of legal functions for some pins was updated to match the TRM.

    Signed-off-by: Stephen Warren
    Signed-off-by: Tom Warren

    Stephen Warren
     
  • This renames all the pinmux pins, drive groups, and functions so they
    have a prefix which matches the type name. These lists are also auto-
    generated using scripts that were also used to generate the kernel
    pinctrl drivers. This ensures that the lists are consistent between the
    two.

    The entries in tegra114_pingroups[] are all updated to remove the columns
    which are no longer used.

    All affected code is updated to match.

    This introduces a few changes to pin/group/function naming and the set of
    available functions for each pin. The new values now exactly match the
    TRM; the chip documentation. I adjusted a few entries in
    pinmux-config-dalmore.h due to this.

    Signed-off-by: Stephen Warren
    Signed-off-by: Tom Warren

    Stephen Warren
     
  • This renames all the pinmux pins, drive groups, and functions so they
    have a prefix which matches the type name. These lists are also auto-
    generated using scripts that were also used to generate the kernel
    pinctrl drivers. This ensures that the lists are consistent between the
    two.

    The entries in tegra30_pingroups[] are all updated to remove the columns
    which are no longer used.

    All affected code is updated to match.

    This introduces a few changes to pin/group/function naming and the set of
    available functions for each pin. The new values now exactly match the
    TRM; the chip documentation. I adjusted one entry in
    pinmux-config-cardhu.h due to this.

    Signed-off-by: Stephen Warren
    Acked-by: Simon Glass
    Signed-off-by: Tom Warren

    Stephen Warren
     
  • This renames all the Tegra20 pinmux pins and functions so they have a
    prefix which matches the type name.

    The entries in tegra20_pingroups[] are all updated to remove the columns
    which are no longer used.

    All affected code is updated to match.

    Signed-off-by: Stephen Warren
    Acked-by: Simon Glass
    Signed-off-by: Tom Warren

    Stephen Warren
     
  • Clean up the naming of pinmux-related objects:
    * Refer to drive groups rather than pad groups to match the Linux kernel.
    * Ensure all pinmux API types are prefixed with pmux_, values (defines)
    are prefixed with PMUX_, and functions prefixed with pinmux_.
    * Modify a few type names to make their content clearer.
    * Minimal changes to SoC-specific .h/.c files are made so the code still
    compiles. A separate per-SoC change will be made immediately following,
    in order to keep individual patch size down.

    Signed-off-by: Stephen Warren
    Acked-by: Simon Glass
    Signed-off-by: Tom Warren

    Stephen Warren
     
  • pinmux_init() is a board-level function, not a pinmux driver function.
    Move the prototype to a board header rather than the driver header.

    Signed-off-by: Stephen Warren
    Acked-by: Simon Glass
    Signed-off-by: Tom Warren

    Stephen Warren
     

27 Mar, 2014

1 commit

  • I2C protocol requires open-drain IOs. Fix the Dalmore and Venice2 pinmux
    tables to configure the IOs correctly. Without this, Tegra may actively
    drive the lines high while an external device is actively driving the
    lines low, which can only lead to bad things.

    Signed-off-by: Stephen Warren
    Acked-by: Simon Glass
    Signed-off-by: Tom Warren

    Stephen Warren
     

21 Feb, 2014

1 commit

  • Commit 5ab502cb gathered all device tree sources
    to arch/$(ARCH)/dts/.
    So tegra124-venice2.dts also must go to arch/arm/dts directory
    to build venice2 board.

    (Commit 5ab502cb had been posted before venice2 board support
    was merged. So an unvisible conflict happened.)

    Acked-by: Stephen Warren
    Signed-off-by: Masahiro Yamada
    Cc: Simon Glass
    Cc: Tom Rini

    Masahiro Yamada
     

20 Feb, 2014

2 commits

  • Unlike Linux Kernel, U-Boot historically had *.dts files under
    board/$(VENDOR)/dts/ and *.dtsi files under arch/$(ARCH)/dts/.

    I think arch/$(ARCH)/dts dicretory is a better location
    to store both *.dts and *.dtsi files.

    For example, before this commit, board/xilinx/dts directory
    had both Microblaze dts (microblaze-generic.dts) and
    ARM dts (zynq-*.dts), which are totally unrelated.

    This commit moves *.dts to arch/$(ARCH)/dts/ directories,
    allowing us to describe nicely mutiple DTBs generation in the next commit.

    Signed-off-by: Masahiro Yamada

    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
     

04 Feb, 2014

3 commits

  • These are the board files for Venice2 (Tegra124), plus the AS3722 PMIC
    files. PMIC init will be moved to pmic_common_init later.

    This builds/boots on Venice2, SPI/MMC/USB/I2C all work. Audio, display
    and WB/LP0 are not supported yet.

    Signed-off-by: Tom Warren
    Signed-off-by: Stephen Warren
    Tested-by: Thierry Reding
    Signed-off-by: Tom Warren

    Tom Warren
     
  • These are fairly complete, and near-clones of Tegra114 Venice, with an
    additional I2C port, and MMC address changes for Tegra124.

    Signed-off-by: Tom Warren
    Signed-off-by: Stephen Warren
    Tested-by: Thierry Reding
    Signed-off-by: Tom Warren

    Tom Warren
     
  • __pinmux_nand() won't compile if PERIPH_ID_NDFLASH isn't defined.
    Prevent this from causing build problems on newer SoCs without NAND
    support (or without SW support for NAND yet), but preventing
    compilation unless the function will actually be used, i.e. when
    CONFIG_TEGRA_NAND is defined.

    Signed-off-by: Tom Warren
    [swarren, rewrote commit description, moved ifdef around whole function
    rather than just body]
    Signed-off-by: Stephen Warren
    Tested-by: Thierry Reding
    Signed-off-by: Tom Warren

    Tom Warren
     

25 Jan, 2014

1 commit

  • If timer_init() is made a weak stub function, then it allows us to
    remove several empty timer_init functions for those boards that
    already have a timer initialized when u-boot starts. Architectures
    that use the timer framework may also remove the need for timer.c.

    Signed-off-by: Darwin Rambo
    Reviewed-by: Tim Kryger

    Darwin Rambo
     

18 Nov, 2013

1 commit


01 Nov, 2013

2 commits


21 Oct, 2013

1 commit

  • This commit unifies board-specific USB initialization implementations
    under one symbol (usb_board_init), declaration of which is available in
    usb.h.

    New API allows selective initialization of USB controllers whenever needed.

    Signed-off-by: Mateusz Zalega
    Signed-off-by: Kyungmin Park
    Reviewed-by: Lukasz Majewski
    Cc: Marek Vasut
    Cc: Lukasz Majewski

    Mateusz Zalega
     

24 Jul, 2013

2 commits


23 Jul, 2013

1 commit


12 Jul, 2013

4 commits


29 May, 2013

1 commit


16 Apr, 2013

2 commits

  • Beaver is a Tegra30 board that is nearly 100% compatible w/Cardhu.
    Add a Beaver build so it can begin to be differentiated, if need be.

    Signed-off-by: Tom Warren
    Reviewed-by: Stephen Warren

    Tom Warren
     
  • As suggested by Stephen Warren, use tegra_get_chip() to return
    the pure CHIPID for a Tegra SoC (i.e. 0x20 for Tegra20, 0x30 for
    Tegra30, etc.) and rename tegra_get_chip_type() to reflect its true
    function, i.e. tegra_get_chip_sku(), which returns an ID like
    TEGRA_SOC_T25, TEGRA_SOC_T33, etc.

    Signed-off-by: Tom Warren
    Reviewed-by: Stephen Warren

    Tom Warren