[U-Boot] [PATCH 00/93] dm: Move towards completing CONFIG_BLK migration

Stefano Babic
2018-11-20T16:27:03Z

Hi Tom,

On 20/11/18 15:55, Tom Rini wrote:
> On Tue, Nov 20, 2018 at 12:00:13PM +0100, Stefano Babic wrote:
>> Hi,
>>
>> On 19/11/18 23:06, Marek Vasut wrote:
>>> On 11/19/2018 11:02 PM, Adam Ford wrote:
>>>> On Mon, Nov 19, 2018 at 3:54 PM Tom Rini <trini@konsulko.com> wrote:
>>>>>
>>>>> On Mon, Nov 19, 2018 at 10:32:01PM +0100, Marek Vasut wrote:
>>>>>> On 11/19/2018 08:45 PM, Adam Ford wrote:
>>>>>>> On Mon, Nov 19, 2018 at 12:36 PM Tom Rini <trini@konsulko.com> wrote:
>>>>>>>>
>>>>>>>> On Mon, Nov 19, 2018 at 10:54 AM Simon Glass <sjg@chromium.org> wrote:
>>>>>>>>>
>>>>>>>>> All boards should now be migrated to use CONFIG_BLK. This series removes
>>>>>>>>> those with build problems using this option.
>>>>>>>>>
>>>>>>>>> If maintainers want to keep these boards in they should send a patch in
>>>>>>>>> the next week or two. Otherwise the board will be removed in the next
>>>>>>>>> release, and will need to be added and re-reviewed later.
>>>>>>>>>
>>>>>>>>> The goal is to have all boards use driver model. But so far, we do allow
>>>>>>>>> CONFIG_DM to not be defined.
>>>>>>>>>
>>>>>>>>> PLEASE NOTE: This is not an easy process. It is possible that your board
>>>>>>>>> does work, or works with only minor changes. Please try to understand that
>>>>>>>>> the removal of a board is not done because people don't like your board.
>>>>>>>>> In fact the board might have been the first one I used when trying out
>>>>>>>>> U-Boot! It's just that we expect maintainers to keep up with the migration
>>>>>>>>> to driver model which has been running now for 4 years. It just isn't
>>>>>>>>> possible for a few people to migrate and test hundreds of boards.
>>>>>>>>>
>>>>>>>>> So, send a patch!
>>>>>>>>
>>>>>>>> OK, so with the intention of "need to light a fire", consider the fire
>>>>>>>> lit! But, I think v2 of this series needs to:
>>>>>>>> - Address the bug that's been noted of you checking on "DM_BLK" when
>>>>>>>> it's really just "BLK".
>>>>>>>> - Do a test build with BLK just being unconditional now. For example,
>>>>>>>> you're deleting the am335x_evm family but it builds fine with BLK
>>>>>>>> being enabled now. I even gave it a run time test via test.py and
>>>>>>>> we're fine. So, I think a new run where you see what fails to build
>>>>>>>> with BLK enabled by default now is in order to come up with a new
>>>>>>>> delete list.
>>>>>>>>
>>>>>>>
>>>>>>> When we were migrating toward GCC 6, we introduced a warning message
>>>>>>> that was displayed at build indicating older versions of GCC would be
>>>>>>> unsupported, and GCC 6 would become a requirement. The
>>>>>>> CONFIG_DM_I2C_COMPAT generates a build warning and suggests that it be
>>>>>>> removed. I would like to propose that in the future, when setting
>>>>>>> deadlines, we insert something into the build mechanism that generates
>>>>>>> a warning to tell people that something is going to happen.
>>>>>>
>>>>>> I agree, that sounds good.
>>>>>>
>>>>>> I am extremely unhappy by how Simon decided, unilaterally, some
>>>>>> arbitrary deadline, told pretty much no one about that deadline and then
>>>>>> put a knife on many peoples' throats by sending out this series which
>>>>>> removes boards that are actively used and maintained, demanding they be
>>>>>> converted right this instant.
>>>>>
>>>>> OK, lets step back for a moment. Part of the problem is that yes, we
>>>>> (I) never found a good way to make a big scary build warning happen.
>>>>> But, lets look at https://patchwork.ozlabs.org/patch/798309/ for a
>>>>> moment, which is when we set this deadline, and we had a good bit of
>>>>> discussion about related issues to make it happen.
>>>>>
>>>>> I also know that around the v2018.05 release I said, in public, but no I
>>>>> can't find a link right this moment, that we were pushing off a little
>>>>> bit on dropping _everything_ right then as there was basically some
>>>>> fairly important / widely used USB stuff that hadn't been converted yet
>>>>> (which has since been, I think, otherwise am335x_evm & co wouldn't have
>>>>> been happy?). I know I did since I can see in the archives a number of
>>>>> series where maintainers did a bunch of changes to various platforms /
>>>>> SoCs to turn on BLK right then.
>>>>>
>>>>> So, no, I don't want to drop a bunch of platforms _right_now_. But we
>>>>> really need to see what doesn't link anymore with BLK forced on, and
>>>>> plan from there.
>>>>
>>>> I remember the discussion, but it seems rather arbitrary for one
>>>> person to unilaterally start deleting boards. I think a more
>>>> appropriate approach would be to start a dialog instead of deleting
>>>> boards and then giving people a fairly short notice to respond -
>>>> especially this close to the US Thanksgiving holiday, several
>>>> religious holidays and New Years. Many people have planed time off
>>>> and/or end-of-year deadlines to hit without getting an abrupt suprise.
>>>
>>> ACK
>>
>>
>> I fully agree with Marek and Adam, but I have also some other technical
>> points related to i.MX6.
>>
>> I agree to move to new and better code, but this should not drop
>> important features that are appreciated by customers. Up now, U-Boot as
>> project was pretty conservative, trying t osupport as far as it is
>> possible even older architectures (MPC 88x, for example).
>>
>> On i.MX6, a feature is to have a single U-Boot binary (SPL + U-Boot)
>> running for more variants (Quad / Dual / Solo) of the SOC. This is done
>> with run time detection in code (SPL) - macros are provide to make the
>> work easy (it is, currently). There are plenty of boards doing this (all
>> listed by Simon for removal). This is common if the board has a SOM, and
>> of course the SOM is sold in different variants with different prices.
>>
>> If I understand well, moving to CONFIG_BLK means enabling CONFIG_DM_MMC
>> and this requires to set a DTS. But a DT is compiled by DTC, that means
>> we have a DT for each variant of the SOC. This forbids to have a single
>> binary and we need different binaries, one for each variant. We lose an
>> important feature, at least for some boards. Agree that having DT is
>> nice, but this should not drop what customer are asking.
>>
>> I know there are some improvement in TI code to get the root node in DT
>> and then load from it. Anyway, specially for i.MX6 solo, we are quite
>> running out of space in SRAM, mainly due to other required features. And
>> having multiple DTB with CONFIG_MULTI_DTB_FIT seems to work just if we
>> have no SPL.
>>
>> So first, it looks like that the issue is not so trivial as it was, and
>> second a technical solution must be searched for that.
>
> Yes, this is a useful feature on i.MX lines and we need to figure out
> how to keep it.

Right, fully agree.

> Perhaps we'll need some combination of
> CONFIG_SPL_FIT_LOAD (and board_fit_config_name_match) along with perhaps
> introducing a TPL to i.MX where we can get away with doing whatever we
> need to do, to init DRAM and have enough space to put SPL and U-Boot?

I am just figuring out how we can do. One other aspect introducing
another stage as TPL could be the increased boot time, even if I guess
it is not much. However, there are some applications in automotive that
are very "sensible" to any increment in boot time.

Regards,
Stefano

--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================