[U-Boot] [PATCH 2/3] rockchip: rk3188: Add Radxa Rock board

Simon Glass sjg at chromium.org
Sat Apr 1 04:24:07 UTC 2017


Hi Heiko,

On 26 March 2017 at 16:38, Heiko Stuebner <heiko at sntech.de> wrote:
> Am Sonntag, 26. März 2017, 15:28:44 CEST schrieb Simon Glass:
>> Hi Heiko,
>>
>> On 26 March 2017 at 15:00, Heiko Stuebner <heiko at sntech.de> wrote:
>> > Am Sonntag, 26. März 2017, 22:52:16 CEST schrieb Heiko Stuebner:
>> >> Am Sonntag, 26. März 2017, 22:41:35 CEST schrieb Heiko Stuebner:
>> >> > Am Sonntag, 26. März 2017, 22:13:08 CEST schrieb Heiko Stuebner:
>> >> > > Am Sonntag, 26. März 2017, 14:00:51 CEST schrieb Simon Glass:
>> >> > > > Hi Heiko,
>> >> > > >
>> >> > > > On 26 March 2017 at 13:59, Simon Glass <sjg at chromium.org> wrote:
>> >> > > > > Hi Heiko,
>> >> > > > >
>> >> > > > > On 26 March 2017 at 13:06, Heiko Stuebner <heiko at sntech.de> wrote:
>> >> > > > >> Hi Simon,
>> >> > > > >>
>> >> > > > >> Am Samstag, 25. März 2017, 20:39:08 CEST schrieb Simon Glass:
>> >> > > > >>> On 23 March 2017 at 17:41, Heiko Stuebner <heiko at sntech.de> wrote:
>> >> > > > >>> > The Rock is a RK3188 based single board computer by Radxa.
>> >> > > > >>> > Currently it still relies on the proprietary DDR init and
>> >> > > > >>> > cannot use the generic SPL, but at least is able to boot
>> >> > > > >>> > a linux kernel and system up to a regular login prompt.
>> >> > > > >>> >
>> >> > > > >>> > Signed-off-by: Heiko Stuebner <heiko at sntech.de>
>> >> > > > >>> > Reviewed-by: Simon Glass <sjg at chromium.org>
>> >> > > > >>> > Tested-by: Kever Yang <kever.yang at rock-chips.com>
>> >> > > > >>> > ---
>> >> > > > >>> >  arch/arm/dts/Makefile                 |   1 +
>> >> > > > >>> >  arch/arm/dts/rk3188-radxarock.dts     | 382 ++++++++++++++++++++++++++++++++++
>> >> > > > >>> >  arch/arm/mach-rockchip/rk3188/Kconfig |  11 +
>> >> > > > >>> >  board/radxa/rock/Kconfig              |  15 ++
>> >> > > > >>> >  board/radxa/rock/MAINTAINERS          |   6 +
>> >> > > > >>> >  board/radxa/rock/Makefile             |   7 +
>> >> > > > >>> >  board/radxa/rock/rock.c               |   7 +
>> >> > > > >>> >  configs/rock_defconfig                |  58 ++++++
>> >> > > > >>> >  include/configs/rock.h                |  30 +++
>> >> > > > >>> >  9 files changed, 517 insertions(+)
>> >> > > > >>> >  create mode 100644 arch/arm/dts/rk3188-radxarock.dts
>> >> > > > >>> >  create mode 100644 board/radxa/rock/Kconfig
>> >> > > > >>> >  create mode 100644 board/radxa/rock/MAINTAINERS
>> >> > > > >>> >  create mode 100644 board/radxa/rock/Makefile
>> >> > > > >>> >  create mode 100644 board/radxa/rock/rock.c
>> >> > > > >>> >  create mode 100644 configs/rock_defconfig
>> >> > > > >>> >  create mode 100644 include/configs/rock.h
>> >> > > > >>>
>> >> > > > >>> I am still having trouble applying this patch. I get build errors:
>> >> > > > >>>
>> >> > > > >>>        arm:  +   rock
>> >> > > > >>> +arch/arm/Makefile:22: CONFIG_CPU_V7  -march=armv7-a
>> >> > > > >>> +make[2]: *** No rule to make target 'dts/dt.dtb', needed by
>> >> > > > >>> 'tpl/u-boot-tpl.dtb'.  Stop.
>> >> > > > >>> +make[1]: *** [tpl/u-boot-tpl.bin] Error 2
>> >> > > > >>> +make: *** [sub-make] Error 2
>> >> > > > >>>     0    0    1 /1      rock
>> >> > > > >>>
>> >> > > > >>> Also there seems to be a duplicate config:
>> >> > > > >>>
>> >> > > > >>>        arm:  +   rock
>> >> > > > >>> +In file included from include/configs/rock.h:11:0,
>> >> > > > >>> +                 from include/config.h:5,
>> >> > > > >>> +                 from include/common.h:21,
>> >> > > > >>> +                 from arch/arm/lib/asm-offsets.c:15:
>> >> > > > >>> + #define CONFIG_SYS_THUMB_BUILD
>> >> > > > >>> + ^
>> >> > > > >>> +                 from lib/asm-offsets.c:15:
>> >> > > > >>> +In file included from include/linux/kconfig.h:4:0,
>> >> > > > >>> +                 from <command-line>:0:
>> >> > > > >>> +include/generated/autoconf.h:10:0: note: this is the location of the
>> >> > > > >>> previous definition
>> >> > > > >>> + #define CONFIG_SYS_THUMB_BUILD 1
>> >> > > > >>
>> >> > > > >> looks like this got run over by another Kconfig migration on march-18.
>> >> > > > >> New patches (migration + rock board) coming up shortly.
>> >> > > > >
>> >> > > > > Thanks - what toolchain are you using to test this?
>> >> > > >
>> >> > > > Also I am still getting this error:
>> >> > > >
>> >> > > >  buildman rock$
>> >> > > > boards.cfg is up to date. Nothing to do.
>> >> > > > Building current source for 1 boards (1 thread, 8 jobs per thread)
>> >> > > >        arm:  +   rock
>> >> > > > +make[2]: *** No rule to make target 'dts/dt.dtb', needed by
>> >> > > > 'tpl/u-boot-tpl.dtb'.  Stop.
>> >> > > > +make[1]: *** [tpl/u-boot-tpl.bin] Error 2
>> >> > > > +make: *** [sub-make] Error 2
>> >> > > >     0    0    1 /1      rock
>> >> > >
>> >> > > that is really strange.
>> >> > >
>> >> > > I'm building with the armhf cross-compiler from Debian testing, which is
>> >> > >
>> >> > > arm-linux-gnueabihf-gcc (Debian 6.3.0-5) 6.3.0 20170124
>> >> > >
>> >> > > My git history also is up-to-date it seems:
>> >> > > 14ef0b180b rockchip: rk3188: Add Radxa Rock board
>> >> > > d0348986cc rockchip: rk3188: follow THUMB_BUILD Kconfig migration
>> >> > > 3bffe88d68 rockchip: video: Split out HDMI controller code
>> >> > > a188a5a35c rockchip: i2c: Add compatibles for Rockchip Cortex-A9 socs
>> >> > > 903fae5666 rockchip: rk3188: Setup the armclk in spl
>> >> > > 7957cc4bd0 rockchip: clk: rk3188: Allow configuration of the armclk
>> >> > >
>> >> > > with 3bffe88d68 being your current head and my build commands being
>> >> > >
>> >> > > make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- clean
>> >> > > make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- rock_defconfig
>> >> > > make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
>> >> >
>> >> > that also works with a "make mrproper" before everything else.
>> >> >
>> >> >
>> >> > > Strangely the tpl shouldn't require a dtb at all, as it needs to use
>> >> > > OF_PLATDATA. Am I missing some config option somewhere?
>> >> >
>> >> > I also did play around a bit with buildman just now:
>> >> >
>> >> > At first I forgot the "$" after rock, so build everything with rock in the
>> >> > name and the radxarock failed because the somewhat old 4.9 toolchain
>> >> > used seems to produce a TPL image that is over the size constraints.
>> >> > I.e. 1020 bytes on 4.9 vs. 792 bytes on 6.3.0 .
>> >> >
>> >> > When I drop the SPL_MAX_SIZE from rk3188_common.h for the TPL build
>> >> >     tools/buildman/buildman -P rock
>> >> > builds 14 boards and finishes sucessfully including the radxarock.
>> >> >
>> >> >
>> >> > Now when I try buildman -P rock$ I seem to also get the error about the
>> >> > missing dts/dt.dtb , which does not occur in my regular builds and also
>> >> > not when building the bigger number of boards. I guess I need to figure
>> >> > out what is different in that case.
>> >>
>> >> sorry for spamming, but
>> >>
>> >> also when entering .bm-work/rock where buildman failed and doing just my
>> >>
>> >>       make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
>> >>
>> >> in that directory created by buildman, produces perfectly fine images.
>> >> (buildman does create the .config, so I'm just finishing the build, buildman
>> >> failed at for unknown reasons)
>> >
>> > and a
>> >         tools/buildman/buildman -PVv -T1 -j1 rock$
>> >
>> > also finishes sucessfully, so it looks like that is more some sort of build
>> > concurrency issue, with the platdata not being created in time for some
>> > reason.
>>
>> Yes I think that is right. I will see if I can fix that.
>>
>> Re the toolchain, if I pull in this patch then I will likely cause a
>> build breakable on common toolchains. What do you think is the best
>> option? Can the TPL be shrunk a little with gcc 4.9?
>
> I've added Tom for comments, executive summary:
> - rk3188-tpl is size limited to 1020 bytes
> - gcc 6.3 produces a rk3188-tpl of 792 bytes
> - gcc 4.9 makes it 1020 bytes
> - buildman seems to always use gcc-4.9
> - rk3188 board does not compile with buildman
>
>
> Isn't holding on to a pretty old compiler for everything somewhat
> strange? ;-)

Well it's not that old. 4.6 would be old. We do need to be careful not
to drop old toolchains too aggressively, although for new platforms
such as this is doesn't matter. I try to test with older things to
avoid problems applying things to mainline (with Tom's automated
tests, etc.)

Regards,
Simon


More information about the U-Boot mailing list