16 Mar, 2015

1 commit


22 Jan, 2015

2 commits

  • CONFIG_TARGET_FOO is only used in board/sunxi/Makefile to select the
    dram config for sun5i and sun7i boards and in board/sunxi/gmac.c for some
    special handling of the bananapi/bananapro (both sun7i), iow it is not used
    at all on any sun4i, sun6i and sun8i boards so lets get rid of it there.

    Signed-off-by: Hans de Goede
    Acked-by: Ian Campbell

    Hans de Goede
     
  • While working on adding more boards I noticed that we lack a config for
    the 512M cubieboard, and that some of the new boards which I want to add also
    have 512M and 1G variants, rather then adding 2 defconfig's for all of these,
    lets switch the exising boards which have both a 512M and 1024M variant over
    to the sun4i dram autoconfig code.

    This also drops the foo_RAMSIZE_defconfig variants of boards where we currently
    have 2 separate configs already.

    Note:
    1) The newly introduced CONFIG_DRAM_EMR1 kconfig value is not used with
    a value other then its default for now, but we need this to be configurable
    to support some new boards with auto dram config.

    2) We always set all CONFIG_DRAM_foo values in defconfigs, even if they match
    the defaults, this is done to make it more clear what values are used for a
    certain board.

    This has been tested on a Mele A1000, Mini-X and a Cubieboard, all 1G
    variants, the dram autoconfig code has also been tested on a 512M mk802
    (a defconfig for the mk802 is added in a later patch).

    Signed-off-by: Hans de Goede
    Acked-by: Ian Campbell

    Hans de Goede
     

05 Nov, 2014

3 commits

  • This was done automatically with the following bits of scripting.

    The Kconfig choice content was generated with this script snippet:
    for i in $(git grep -l CONFIG_ARCH_SUNXI configs/*) ; do
    TARGET=$(sed -n -e 's/CONFIG_SYS_EXTRA_OPTIONS="\([^,"]\+\).*/\1/p' $i);
    MACH=$(sed -n -e 's/.*CONFIG_\(MACH_SUN.I\)=./\1/p' $i)
    echo "config TARGET_$TARGET"
    echo " bool \"$TARGET\""
    echo " depends on $MACH"
    echo
    done

    defconfigs were updated with a sed script (t):
    # Extract board from first entry of CONFIG_SYS_EXTRA_OPTIONS,
    /^CONFIG_SYS_EXTRA_OPTIONS/ {
    s/^\(CONFIG_SYS_EXTRA_OPTIONS="\)\([^,"]\+\),\?\(.*\)/\1\3\nCONFIG_TARGET_\2=y/;

    # Print and delete first line (CONFIG_SYS_EXTRA_OPTIONS), leaving
    # CONFIG_TARGET_ in pattern space
    P;D;
    };

    # Move CONFIG_TARGET_ to hold space
    /^CONFIG_TARGET/{h;n}

    # Print CONFIG_TARGET_ after CONFIG_MACH_ in either SPL or
    # normal mode.
    /^CONFIG_MACH/{p;g;p;n};
    /^\+S:CONFIG_MACH/{p;g;s/^CONFIG_TARGET/+S:&/;p;n};

    # Print any remaining lines normally
    p;
    Run as:
    sed -i -n -f t $(git grep -l CONFIG_ARCH_SUNXI configs/*)
    and then manually removing the one instance of CONFIG_SYS_EXTRA_OPTIONS="" from
    Colombus_defconfig

    board/sunxi/Makefile was updated with:
    sed -e 's/^\(obj-\$(CONFIG_\)\(.*\)\().*+= dram_.*\)/\1TARGET_\2\3/g' board/sunxi/Makefile
    and manually retabbing a few lines to line up again.

    The board descriptions could certainly be improved.

    Signed-off-by: Ian Campbell
    Reviewed-by: Hans de Goede
    Signed-off-by: Hans de Goede

    Ian Campbell
     
  • Now we have CONFIG_ARCH_SUNXI as the toplevel, CONFIG_MACH_SUN[45678]I as the
    per-SoC option and leave CONFIG_TARGET_BLAH free for individual boards in the
    future.

    Done automatically with:
    sed -i -e 's/TARGET_\(SUN[45678]I\)/MACH_\1/g' $(git grep -l TARGET_SUN[45678]I)

    Signed-off-by: Ian Campbell
    Reviewed-by: Hans de Goede
    Signed-off-by: Hans de Goede

    Ian Campbell
     
  • And make TARGET_SUN[45678]I a choice variable under this.

    configs updated with:
    sed -i -e 's/^\(\+S:\)\?CONFIG_TARGET_SUN.I=y/\1CONFIG_ARCH_SUNXI=y\n&/g' configs/*

    Signed-off-by: Ian Campbell
    Reviewed-by: Hans de Goede
    Signed-off-by: Hans de Goede

    Ian Campbell
     

05 Sep, 2014

2 commits


12 Aug, 2014

1 commit


31 Jul, 2014

2 commits

  • Most sunxi boards have the EHCI controller hooked up, enable it on all
    relevant boards.

    Signed-off-by: Hans de Goede
    Acked-by: Ian Campbell

    Hans de Goede
     
  • This enables the necessary clocks, in AHB0 and in PLL6_CFG. This is done
    for sun7i only since I don't have access to any other sunxi platforms
    with sata included.

    The PHY setup is derived from the Alwinner releases and Linux, but is mostly
    undocumented.

    The Allwinner AHCI controller also requires some magic (and, again,
    undocumented) DMA initialisation when starting a port. This is added under a
    suitable ifdef.

    This option is enabled for Cubieboard, Cubieboard2 and Cubietruck based on
    contents of Linux DTS files, including SATA power pin config taken from the
    DTS. All build tested, but runtime tested on Cubieboard2 and Cubietruck only.

    Signed-off-by: Ian Campbell
    Acked-by: Hans de Goede
    Signed-off-by: Hans de Goede

    Ian Campbell
     

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