[U-Boot] [PATCH 00/11] sunxi: Add full SPL support for sun9i (A80)

Hans de Goede hdegoede at redhat.com
Sat Oct 29 14:06:40 CEST 2016


Hi,

On 28-10-16 19:30, Hans de Goede wrote:
> Hi Chen-Yu,
>
> On 28-10-16 12:21, Chen-Yu Tsai wrote:
>> Hi everyone,
>>
>> This series adds full SPL with DRAM initialization for sun9i (A80).
>> The bulk of the work was done by the people at Theobroma Systems.
>> Their work can be found here:
>>
>>     https://git.theobroma-systems.com/armadillo-u-boot.git/
>>
>> I picked the essential patches and cleaned them up a bit more,
>> and added commit messages if they were missing.
>>
>> As the DRAM bits are essentially a code dump with some cleanups and
>> some bits disabled, expect many warnings. Checkpatch is still not
>> happy with it.
>>
>> I've tested the series on both my A80 boards, which I've added
>> defconfigs for in the last 2 patches. My A80 Optimus does not
>> boot from micro SD, so I'm still FEL booting that one. But my
>> Cubieboard 4 is now standalone.
>>
>> As usual, please have a look, test if possible.
>
> Awesome, thanks for doing this and it was good to have
> some face2face time at ELCE.
>
> I've merged this into my personal sunxi-wip u-boot branch,
> I've made 2 changes:
>
> 1) in : ¨sunxi: DRAM initialisation for sun9i" there are a
> lot of #if 0 #endif blocks, most of these document some features
> which we may want to enable in the future, but a few were just
> dead weight IMHO, so I've pruned a few
>
> 2) in : "sunxi: Add support for A80 Optimus board", we already
> have a configs/Merrii_A80_Optimus_defconfig, so I've made the patch
> update that instead of adding a new defconfig
>
> I have not tested this yet, I will do tomorrow, assuming it
> works for me too I will include it in my next pull-req (*)

Ok, just finished testing, u-boot seems to work well. I do
seem to have one kernel issue (with the last 4.8 based
sunxi-next kernel, I still need to upgrade that) :

[    1.137105] Division by zero in kernel.
[    1.140988] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.8.0+ #475
[    1.147089] Hardware name: Allwinner sun9i Family
[    1.151830] [<c0310f74>] (unwind_backtrace) from [<c030bed0>] (show_stack+0x18/0x1c)
[    1.159596] [<c030bed0>] (show_stack) from [<c068ee30>] (dump_stack+0x80/0x9c)
[    1.166839] [<c068ee30>] (dump_stack) from [<c068dac0>] (Ldiv0+0x8/0x10)
[    1.173558] [<c068dac0>] (Ldiv0) from [<c09de7e4>] (sun4i_a10_get_mod0_factors+0x2c/0x8c)
[    1.181758] [<c09de7e4>] (sun4i_a10_get_mod0_factors) from [<c09de480>] (clk_factors_determine_rate+0xb8/0xf8)
[    1.191781] [<c09de480>] (clk_factors_determine_rate) from [<c09d6054>] (clk_composite_determine_rate+0x58/0x1cc)
[    1.202062] [<c09d6054>] (clk_composite_determine_rate) from [<c09d1b3c>] (clk_calc_new_rates+0xa0/0x240)
[    1.211647] [<c09d1b3c>] (clk_calc_new_rates) from [<c09d34f8>] (clk_core_set_rate_nolock+0x4c/0xbc)
[    1.220798] [<c09d34f8>] (clk_core_set_rate_nolock) from [<c09d3590>] (clk_set_rate+0x28/0x38)
[    1.229432] [<c09d3590>] (clk_set_rate) from [<c0942bd4>] (sunxi_ir_probe+0xfc/0x480)
[    1.420454] [<c0942bd4>] (sunxi_ir_probe) from [<c07a6784>] (platform_drv_pro
be+0x58/0xa4)

...

And it fails to find any mmc controllers, but that might be related to
the above oops (maybe it stops probing after that due to a stuck lock).

Anyways the u-boot side looks good. One issue I see is that your
optimus has an emmc, where as mine has a nand. We may want to
gave 2 optimus defconfigs for this once we've nand support.

Regards,

Hans


> and try to get it included in the 2016.11 release, yes the merge
> window has closed, but the changes here are very isolated so
> I will try and see what Tom says :)
>
> Regards,
>
> Hans
>
>
> *) Which I hope to send out this weekend
>
>
>
>>
>>
>> Regards
>> ChenYu
>>
>>
>> Chen-Yu Tsai (5):
>>   sunxi: Set default CPU clock rate to 1008 MHz for sun9i (A80)
>>   sunxi: Add support for SID e-fuses on sun9i
>>   sunxi: Add default zq value for sun9i (A80)
>>   sunxi: Add support for A80 Optimus board
>>   sunxi: Add support for Cubieboard4
>>
>> Philipp Tomsich (6):
>>   sunxi: DRAM initialisation for sun9i
>>   sunxi: add gtbus-initialisation for sun9i
>>   sunxi: Enable SMP mode for the boot CPU on sun9i (A80)
>>   sunxi: add initial clock setup for sun9i for SPL
>>   sunxi: enable SPL for sun9i
>>   sunxi: add MMC pinmux setup for SDC2 on sun9i
>>
>>  arch/arm/include/asm/arch-sunxi/clock_sun9i.h |  116 ++-
>>  arch/arm/include/asm/arch-sunxi/cpu_sun9i.h   |   10 +
>>  arch/arm/include/asm/arch-sunxi/dram.h        |    2 +
>>  arch/arm/include/asm/arch-sunxi/dram_sun9i.h  |  275 +++++++
>>  arch/arm/include/asm/arch-sunxi/gtbus.h       |   21 +
>>  arch/arm/include/asm/arch-sunxi/gtbus_sun9i.h |   89 +++
>>  arch/arm/mach-sunxi/Makefile                  |    2 +
>>  arch/arm/mach-sunxi/board.c                   |    3 +-
>>  arch/arm/mach-sunxi/clock.c                   |    6 +
>>  arch/arm/mach-sunxi/clock_sun9i.c             |  146 +++-
>>  arch/arm/mach-sunxi/dram_sun9i.c              | 1059 +++++++++++++++++++++++++
>>  arch/arm/mach-sunxi/gtbus_sun9i.c             |   48 ++
>>  board/sunxi/Kconfig                           |   10 +-
>>  board/sunxi/MAINTAINERS                       |   10 +
>>  board/sunxi/board.c                           |    7 +
>>  configs/A80_Optimus_defconfig                 |   18 +
>>  configs/Cubieboard4_defconfig                 |   18 +
>>  17 files changed, 1818 insertions(+), 22 deletions(-)
>>  create mode 100644 arch/arm/include/asm/arch-sunxi/dram_sun9i.h
>>  create mode 100644 arch/arm/include/asm/arch-sunxi/gtbus.h
>>  create mode 100644 arch/arm/include/asm/arch-sunxi/gtbus_sun9i.h
>>  create mode 100644 arch/arm/mach-sunxi/dram_sun9i.c
>>  create mode 100644 arch/arm/mach-sunxi/gtbus_sun9i.c
>>  create mode 100644 configs/A80_Optimus_defconfig
>>  create mode 100644 configs/Cubieboard4_defconfig
>>


More information about the U-Boot mailing list