[U-Boot] [PATCH v2] arm64: dts: rockchip: Add support for Khadas Edge/Edge-V/Captain boards

Paul Kocialkowski paul.kocialkowski at bootlin.com
Tue Jun 18 12:47:33 UTC 2019


Hi Kever,

On Tue, 2019-06-18 at 18:08 +0800, Kever Yang wrote:
> Hi Paul,
> 
> 
> On 06/18/2019 05:03 PM, Paul Kocialkowski wrote:
> > Hi,
> > 
> > On Tue, 2019-06-18 at 14:27 +0530, Jagan Teki wrote:
> > > On Tue, Jun 18, 2019 at 1:55 PM Paul Kocialkowski
> > > <paul.kocialkowski at bootlin.com> wrote:
> > > > Hi,
> > > > 
> > > > On Mon, 2019-06-17 at 15:24 +0800, xieqinick at gmail.com wrote:
> > > > > From: Nick Xie <nick at khadas.com>
> > > > Was this tested with SPL support? I don't see DRAM configuration here
> > > > so it seems that it relies on the non-free rockchip loader.
> > > > 
> > > > If that is the case, could you please indicate that in the commit
> > > > message?
> > > > 
> > > > To maintainers: please do not merge this series before DRAM init and
> > > > SPL support is available for these boards.
> > > > 
> > > > It seems that other RK3399 boards were merged without SPL support and
> > > > sofar, I have the feeling that nobody cared to explain how we got into
> > > > this broken situation. Please don't merge any more such board.
> > > fyi: no rk3399 boards were merged w/o SPL. lpddr4 boards were merged
> > > with TPL-enabled (which was discussed on the threads, if you remember)
> > > with below boot chain.
> > > 
> > > rkbin (TPL) -> SPL -> U-Boot proper
> > > 
> > > Same case for this board as well.
> > Here is a quote from Philipp Tomsich on the thread we discussed this:
> > 
> > " On some boards, there will be no TPL and only a SPL stage that will
> > initialise DRAM (as the move to having TPL on the RK3399 is optional).
> > 
> > I agree with Paul that the DRAM init should be part of U-Boot whenever
> > we add new boards and make an open DRAM init a prerequisite. "
> > 
> > So even if I frequently confuse SPL and TPL, it doesn't change the fact
> > that no board should be merged without proper DRAM init.
> > 
> > Please stop pushing for merging these boards. I'm not sure what we
> > should do about the boards that were merged already without DRAM init,
> > but maybe they should be reverted.
>
> I don't think we have to have full DRAM init source code for each
> board before we can merge it, I believe most of the board on U-Boot
> mainline need to removed due to this rule. There are so many boards
> from different vendor need a binary loader before U-Boot, and I can
> see only very few drivers for dram at driver/ram/, and I believe rockchip
> is already the most open vendor on this area.

Well, I am not talking about full DRAM init source code as in dynamic
link training. I am talking about having at least static DRAM register
configuration values, which is present for a good number of rockchip
boards.

Of course, it would be best if Rockchip would consider releasing this
source code, which would be the easiest and friendliest solution
towards the community here. Are there internal discussions ongoing
about this? If not, it would be greatly appreciated to start such
discussions and clearly identify what the blocking points are.

> I won't use this rule to stop developers contribute there source code,

This is really sad and I think that Philipp was, like me, inclined to
go towards the other direction.

> for a board support, we only need the board to have the full documentation
> about how to setup and boot with upstream U-Boot. and I think the
> most of people cares more about features in U-Boot proper. Everything
> before U-Boot proper, you can use TPL/SPL or alternative to use binary
> from vendor, as you can see all over the U-Boot mainline now, although
> we encourage people to use full open source TPL/SPL.
> Specifically for U-Boot Rockchip platform, I would like people to
> support not only U-Boot
> proper, but also for full SPL(ATF, OP-TEE support, itb image and other
> features)
> support. And for DRAM init,
> - if this belongs to SPL for this board, you must implement it or else
> SPL won't work;
> - if this does not belong to SPL for this board, you need implement full
> function SPL;
>     and you can either to have full function TPL with DRAM init(which is
> prefered)
>     or alternatively use binary loader from vendor.

This is not really a technical argument here, more of a policy argument
that ensures we have full free software support for the boards we
support, and not only half-cooked support (that will most likely never
be completed as soon as something that works gets merged). So it is a
strategical decision, not a strictly pragmatic one.

I think reverting patches adding support for boards with no DRAM
configuration at all would send a message in the right direction here.

> I'm not sure if you have write a new dram driver for a board, but I know
> even the board vendor may not have the capability to write the DRAM
> driver, so this should not stop developers contribute to all other 99%
> features on U-Boot.

What they can do is run the non-free blob, dump the registers
afterwards and then use that in the DRAM configuration dtsi. Perhaps
one could write up a tool to ease the process if they think the process
is too much for a regular bringup.

Most of the time, the DRAM chips are soldered so the calibrated values
have about no reason to change over time and can just be kept as-is.

What do you think?

Cheers,

Paul

-- 
Paul Kocialkowski, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com



More information about the U-Boot mailing list