[U-Boot] [linux-sunxi] [PATCH 0/2] sunxi: Single u-boot binary for Allwinner A10/A13/A20 devices

jonsmirl at gmail.com jonsmirl at gmail.com
Sun Aug 3 17:59:36 CEST 2014


Could this work...
Universal Allwinner uboot
uboot loads DTB (from same place it just booted)
restart with DRAM parameters (console, etc) from DTB

Is it possible to write a uboot app that measures the DRAM parameters?
Maybe something like this: pick a param, write to flash, try it out,
repeat. Set watchdog in case it fails. When watchdog fires pick up
last known working params and update the DTB. then alter uboot
evironment not to run this mem test app at boot anymore.


On Sat, Aug 2, 2014 at 11:26 PM, Siarhei Siamashka
<siarhei.siamashka at gmail.com> wrote:
> This patchset introduces the initial rudimentary support for having
> just a single u-boot binary for certain subsets of Allwinner A10/A13/A20
> devices.
>
> == Example 1: All Allwinner A10/A13/A20 devices
>
> We are restricted to only a very basic common subset of peripherals
> (anything that is supported by BROM should be fine). This provides
> a possibility to at least boot from the SD card and use some slow
> fail-safe DRAM settings. UART, USB and HDMI settings are also
> relatively easy to detect at runtime. This provides a possibility
> to implement universal installers, which would somehow boot the
> system and allow the user to change u-boot and dtb to something
> more suitable for his hardware.
>
> Advantages: just works everywhere
> Disadvantages: poor performance and very limited set of supported peripherals
>
> == Example 2: Sibling A10/A20 boards (such as Cubieboard1/Cubieboard2)
>
> Some development boards are using exactly the same PCB for one variant
> with Allwinner A10 SoC and another variant with Allwinner A20 SoC.
> Instead of having two u-boot configurations and two incompatible
> u-boot binaries, it is possible to re-use the same u-boot binary
> for both of these boards.
>
> Advantages: no performance or feature sacrifices
> Disadvantages: only two boards are supported by a single u-boot binary
>                (not a big overall improvement)
>
> == Example 3: Univarsal u-boot binary and the settings in non-volatile memory
>
> Most of Allwinner devices have NAND. Booting from NAND is supported by
> BROM, so there is no reason why u-boot SPL can't read it too. Some
> reserved area in NAND can store the whole DTB file, or even just a
> DTB name (a key for lookup somewhere else). Additionally, DRAM timings
> and unit specific tuning may be stored there too. This might be implemented
> in a (not so) distant future.
>
> Advantages: no performance of feature sacrifices, support for a large
>             subset of devices
> Disadvantages: somebody has to prepare the correct information in NAND
>                (it could be the device vendor, or maybe some reliability
>                testing/validation tool, etc.)
>
>
> Anyway, this is just the beginning. And we have to start with something
> simple. These two patches just provide an option for a single universal
> u-boot binary with just UART and MMC support (essentially, the example 1).
>
> The patches depend on
>     https://patchwork.ozlabs.org/patch/375971/
> and
>     http://lists.denx.de/pipermail/u-boot/2014-August/185200.html
>
>
> Siarhei Siamashka (2):
>   sunxi: Replace CONFIG_SUN[457]I ifdefs with SOC_IS_SUN[457]I() calls
>   sunxi: Universal Allwinner A10/A13/A20 u-boot binary support
>
>  arch/arm/Kconfig                                |   3 +
>  arch/arm/cpu/armv7/sunxi/Makefile               |   2 +
>  arch/arm/cpu/armv7/sunxi/board.c                |  98 +++++++++++---
>  arch/arm/cpu/armv7/sunxi/clock_sun4i.c          |  10 +-
>  arch/arm/cpu/armv7/sunxi/cpu_info.c             |  37 ++---
>  arch/arm/cpu/armv7/sunxi/dram.c                 | 171 ++++++++++++------------
>  arch/arm/include/asm/arch-sunxi/sys_proto.h     |   5 +
>  board/sunxi/Kconfig                             |  20 +++
>  board/sunxi/MAINTAINERS                         |   7 +
>  board/sunxi/Makefile                            |   1 +
>  board/sunxi/board.c                             |   1 +
>  board/sunxi/dram_sunxi_ddr3_failsafe.c          |  28 ++++
>  configs/sunxi-generic-a10-a13-a20_FEL_defconfig |   4 +
>  configs/sunxi-generic-a10-a13-a20_defconfig     |   4 +
>  include/configs/sun4i.h                         |   2 +
>  include/configs/sun4i_sun5i_sun7i.h             |  38 ++++++
>  include/configs/sun5i.h                         |   2 +
>  include/configs/sun7i.h                         |   2 +
>  include/configs/sunxi-common.h                  |  12 ++
>  19 files changed, 322 insertions(+), 125 deletions(-)
>  create mode 100644 board/sunxi/dram_sunxi_ddr3_failsafe.c
>  create mode 100644 configs/sunxi-generic-a10-a13-a20_FEL_defconfig
>  create mode 100644 configs/sunxi-generic-a10-a13-a20_defconfig
>  create mode 100644 include/configs/sun4i_sun5i_sun7i.h
>
> --
> 1.8.3.2
>
> --
> You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe at googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.



-- 
Jon Smirl
jonsmirl at gmail.com


More information about the U-Boot mailing list