[U-Boot] [PATCH v4 0/9] sunxi: initial upstreamining effort

Ian Campbell
2014-05-01T19:42:49Z

On Thu, 2014-05-01 at 21:24 +0200, Marek Vasut wrote:
> On Thursday, May 01, 2014 at 08:40:03 PM, Ian Campbell wrote:
> > This is my fourth cut at an upstreamable series based upon the
> > https://github.com/linux-sunxi/u-boot-sunxi.git#sunxi tree. The
> > intention is to present a minimal starting point for upstreaming to
> > which support for other processors, peripherals, boards etc can be
> > added in the future. Therefore this has been stripped right back and
> > currently supports only sun7i processors (AKA Allwinner A20) and the
> > cubietruck board. Supported peripherals are UART, MMC and Ethernet.
> >
> > The code here is from u-boot-sunxi.git#sunxi[0] changeset based on
> > d9fe0a1e061e "sunxi: mksunxiboot: remove unnecessary casts." and
> > applies to u-boot v2014.04.
> >
> > Changes in v4:
> > - Resynced with u-boot-sunxi.git d9fe0a1e061e which pulled lots of
> > fixes
> > for Marek's review comments.
>
> It would be really nice if you could list the changes instead of pointing to
> some random object in some random git repository at to me unknown address.

The address was further down this introductory mail, in the footnote
referenced by [0] above: https://github.com/linux-sunxi/u-boot-sunxi.git

Log log from v3 to v4 is below. You can ignore the A23 and sun6i changes
since they don't affect this initial upstreaming series.

Ian.

commit d9fe0a1e061e2bde6c24a0f7cef4f5023f3bd579
Author: Ian Campbell <ijc@hellion.org.uk>
Date: Mon Apr 28 20:19:02 2014 +0100

sunxi: mksunxiboot: remove unnecessary casts.

In particular this removes the possibility that boot_buf is misaligned in
gen_check_sum by making the type explicit.

Signed-off-by: Ian Campbell <ijc@hellion.org.uk>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>

commit c81ab9443997bd8ed63f576a2420a77cc5f7d0e7
Author: Ian Campbell <ijc@hellion.org.uk>
Date: Mon Apr 28 20:19:01 2014 +0100

sunxi: mksunxiboot: remove dead code.

Requested by Marek during upstream review.

Signed-off-by: Ian Campbell <ijc@hellion.org.uk>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>

commit ded94b565973d6ffa6625196af7b7f69fc1ca909
Author: Ian Campbell <ijc@hellion.org.uk>
Date: Mon Apr 28 20:19:00 2014 +0100

sunxi: mksunxiboot: use stdint.h types

Requested by Marek during upstream review.

Signed-off-by: Ian Campbell <ijc@hellion.org.uk>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>

commit 1c814095b5fedbd44310290cfdbb7eb9ec4a96c0
Author: Ian Campbell <ijc@hellion.org.uk>
Date: Mon Apr 28 20:18:59 2014 +0100

sunxi: mmc: move pinmux configuration to board setup.

Requested by Marek as part of upstream review.

Signed-off-by: Ian Campbell <ijc@hellion.org.uk>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>

commit 402c300dcb082794a481cce4caebb0d4cb315ee9
Author: Ian Campbell <ijc@hellion.org.uk>
Date: Mon Apr 28 20:18:58 2014 +0100

sunxi: remove unnecessary network config items

CONFIG_CMD_SNTP doesn't do anything useful withou CONFIG_CMD_DATE (which
sunxi doesn't set, nor does it provide the required rtc_set() function).

Also drop some of the more obscure BOOTP options which there doesn't seem
to be any need for.

Highlighted by Marek during upstream review.

Signed-off-by: Ian Campbell <ijc@hellion.org.uk>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>

commit 543fd1c8d959f2ce35f6c245ba4751bfe14331ee
Author: Ian Campbell <ijc@hellion.org.uk>
Date: Mon Apr 28 20:18:57 2014 +0100

sunxi: move gmac glue under board/sunxi

The other existing designware glue files are under board/*.

Marek requested that it move out of drivers/net as part of upstream
review. His suggestion was to move to arch/arm/.../sunxi but I found all
the others under board/*

Signed-off-by: Ian Campbell <ijc@hellion.org.uk>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>

commit 4bad0496d51f98e8691dbfe792201cc6830f5a39
Author: Ian Campbell <ijc@hellion.org.uk>
Date: Mon Apr 28 20:18:56 2014 +0100

sunxi: log failure of sunxi_?mac_initialize.

Also propagate errors.

Requested by Marek as part of upstream review.

Signed-off-by: Ian Campbell <ijc@hellion.org.uk>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>

commit baab9f178f72239beccdaed013a809ba1f67f32a
Author: Ian Campbell <ijc@hellion.org.uk>
Date: Mon Apr 28 20:18:55 2014 +0100

sunxi: correct cpu_eth_init ifdeffery

The cpu_eth_init function should be ifdef CONFIG_CMD_NET and the
individual driver init functions should use the corresponding CONFIG_FOO.

Requested by Marek during upstream review.

Signed-off-by: Ian Campbell <ijc@hellion.org.uk>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>

commit c224b4d19831ddfc4de002b75bc923dda855502c
Author: Ian Campbell <ijc@hellion.org.uk>
Date: Mon Apr 28 20:18:54 2014 +0100

sunxi: remove unbounded loops from DRAM setup.

Introduce a helper function which waits for up to 1s for the necesary bits
to clear and then panic()s.

Requested by Marek during upstream review.

Signed-off-by: Ian Campbell <ijc@hellion.org.uk>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>

commit ea9bc8075a5c730ac2f35cf43048f723be9498ac
Author: Ian Campbell <ijc@hellion.org.uk>
Date: Mon Apr 28 20:18:53 2014 +0100

sunxi: timer: conform to coding style.

Raised by Marek during upstreaming.

Signed-off-by: Ian Campbell <ijc@hellion.org.uk>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>

commit 06ad4bb62b69e8867087a9ecdffe2cc97817d453
Author: Chen-Yu Tsai <wens@csie.org>
Date: Fri Apr 25 00:39:06 2014 +0800

ARM: sunxi: Add A23 based tablet Ippo-q8h

The Ippo-q8h is the first A23 based device spotted in the wild.
This was used to bring basic support to u-boot. Add build options
for it

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>

commit b8bf16c38f1cb4adfcb104ed6cef0ccdbab025c6
Author: Chen-Yu Tsai <wens@csie.org>
Date: Fri Apr 25 00:39:05 2014 +0800

ARM: sunxi: Add support for using R_UART as console

The R_UART is the only uart other than UART0 on port F which has
usable pads for attaching a console. Support it so we can still
have a console when using MMC on port F.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>

commit 34027df43a51711f2e508f0efa37ea57d45b2334
Author: Chen-Yu Tsai <wens@csie.org>
Date: Fri Apr 25 00:39:04 2014 +0800

ARM: sunxi: Add basic A23 support

The basic blocks of the A23 are similar to the A31 (sun6i). Re-use
sun6i code for initial clock, gpio, and uart setup.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>

commit 5aea7698de5a33b65782a3d3210eb0dbfc56728a
Author: Chen-Yu Tsai <wens@csie.org>
Date: Fri Apr 25 00:39:03 2014 +0800

ARM: sunxi: Allow specifying module in prcm apb0 init function

The prcm apb0 controls multiple modules. Allow specifying which
modules to enable clocks and de-assert resets so the function
can be reused.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>

commit 61de1e6d9fe5ee233d2a0d30bbc98453b1a9a1df
Author: Chen-Yu Tsai <wens@csie.org>
Date: Fri Apr 25 00:39:02 2014 +0800

ARM: sunxi: Correct comment for MBUS1 register in sun6i clock definitions

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>

commit 37f669b9dbbd3869a880173a294aadd6ca8c68ea
Author: Chen-Yu Tsai <wens@csie.org>
Date: Fri Apr 25 00:39:01 2014 +0800

ARM: sunxi: Fix macro names for mmc and uart reset offsets

Also rewrite sunxi_mmc clock gate/reset enabling code using
setbits_le32.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>

commit 501ab1e401c314773f659a3a4b4aae27b162608e
Author: Hans de Goede <hdegoede@redhat.com>
Date: Sat Apr 26 19:50:59 2014 +0200

ARM: sunxi: Fix sun6i PLL6 settings

On sun6i the N factor is 1-32, not the 0-31 it is with sun4i / sun5i / sun7i.

Reported-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>

commit e304b6496e8abce2320774b9bdf7b458201042e5
Author: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Date: Mon Apr 21 05:32:31 2014 +0300

sunxi: dram: Fix dram_tpr3 handling for sun4i

This ifdef wrapped code apparently was introduced as a unification
of sun4i/sun5i and sun7i codebases and assumed that the non-sun7i
part of it was correct. However experiments show that this 4-bit
bitfield behaves in the same way at least on sun4i and sun7i.

Also see the definition in 'include/synopsys/dwcddr21mctl.h':
#define DWCDDR21MCTL_DLLCR_PHASE(x) (((x) & 0xf) << 14)

Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>

commit 5ba2257d4fd768c37bcb6d38636d2ed186a58062
Author: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Date: Mon Apr 21 05:32:30 2014 +0300

sunxi: dram: Support more DRAM clock speeds (396, 468, 496, 512, 540)

These are some additional interesting DRAM clock frequencies. And
they can be supported, while keeping the PLL5P clock speed at least
not higher than the DRAM clock speed. PLL5P output is used to
clock a lot of peripherals, so we need to be careful not to
break them (or more like some buggy code in the sunxi-3.4
kernel, which just sets hardcoded divisors in some places).

Having 396MHz is nice. It can be used with the tight DDR3-800
timings (CL-tRCD-tRP-tRAS). For comparison, moving to 408MHz
requires extra cycles for many of these timing parameters,
which results in a latency increase.

Having 512MHz and 540MHz is also useful, because they provide better
granularity of the DRAM clock frequency selection around DDR3-1066
speed. And this is an interesting DRAM overclocking target.

The extra five branches add ~120 bytes of code if compiled
for ARM and ~90 bytes of code if compiled for Thumb2.

Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>