Hi Simon, On Wed, 31 Jul 2024 at 01:35, Simon Glass <s...@chromium.org> wrote: > > Hi all, > > On Fri, 21 Jun 2024 at 12:16, Simon Glass <s...@chromium.org> wrote: > > > > Hi Raymond, > > > > On Fri, 21 Jun 2024 at 10:40, Raymond Mao <raymond....@linaro.org> wrote: > > > > > > Hi Simon, > > > > > > On Fri, 21 Jun 2024 at 10:58, Simon Glass <s...@chromium.org> wrote: > > >> > > >> Hi Ilias, > > >> > > >> On Wed, 19 Jun 2024 at 06:41, Ilias Apalodimas > > >> <ilias.apalodi...@linaro.org> wrote: > > >> > > > >> > Hi Simon, > > >> > > > >> > On Wed, Jun 12, 2024 at 02:24:31PM -0600, Simon Glass wrote: > > >> > > Hi Ilias, > > >> > > > > >> > > On Wed, 12 Jun 2024 at 00:02, Ilias Apalodimas > > >> > > <ilias.apalodi...@linaro.org> wrote: > > >> > > > > > >> > > > [...] > > >> > > > > > >> > > > > > > >> --- > > >> > > > > > > >> > > >> > > > > > > >> lib/fdtdec.c | 12 ++++++++++-- > > >> > > > > > > >> 1 file changed, 10 insertions(+), 2 deletions(-) > > >> > > > > > > >> > > >> > > > > > > >> diff --git a/lib/fdtdec.c b/lib/fdtdec.c > > >> > > > > > > >> index b2c59ab3818..b141244e3b9 100644 > > >> > > > > > > >> --- a/lib/fdtdec.c > > >> > > > > > > >> +++ b/lib/fdtdec.c > > >> > > > > > > >> @@ -1669,8 +1669,16 @@ int fdtdec_setup(void) > > >> > > > > > > >> { > > >> > > > > > > >> int ret = -ENOENT; > > >> > > > > > > >> > > >> > > > > > > >> - /* If allowing a bloblist, check that first */ > > >> > > > > > > >> - if (CONFIG_IS_ENABLED(BLOBLIST)) { > > >> > > > > > > >> + /* > > >> > > > > > > >> + * If allowing a bloblist, check that first. This > > >> > > > > > > >> would be better > > >> > > > > > > >> + * handled with an OF_BLOBLIST Kconfig, but that > > >> > > > > > > >> caused far too much > > >> > > > > > > >> + * argument, so add a hack here, used e.g. by > > >> > > > > > > >> chromebook_coral > > >> > > > > > > > > > >> > > > > > > > I am a bit confused by this comment - It means you will > > >> > > > > > > > not use OF_BLOBLIST, > > >> > > > > > > > but actually you are using it below. Is it a typo? > > >> > > > > > > > > >> > > > > > > Basically it would be cleaner to have a separate, > > >> > > > > > > phase-specific > > >> > > > > > > Kconfig control as to whether the DT can come from the > > >> > > > > > > bloblist (I > > >> > > > > > > can't remember the Kconfig name I suggested, nor the patch > > >> > > > > > > as it was > > >> > > > > > > last year sometime). But for now I am adding this hack to > > >> > > > > > > get a few > > >> > > > > > > boards working again. > > >> > > > > > > > >> > > > > > I am a bit confused. > > >> > > > > > First of all the comment is innapropriate. We went through a > > >> > > > > > lengthy > > >> > > > > > discussion on BLOBLIST/OF_BLOSLIST etc and, even Tom chimed > > >> > > > > > in and we > > >> > > > > > made up our minds. Why are you adding this comment now? Why do > > >> > > > > > code > > >> > > > > > comments have to illustrate your personal opinion -- which was > > >> > > > > > rejected? > > >> > > > > > > >> > > > > I'm sorry for the tone of the comment. I am not trying to offend > > >> > > > > anyone here and I'm happy to change the language. > > >> > > > > > >> > > > Yes please a comment explaining why that piece of code is there is > > >> > > > far > > >> > > > more intuitive. > > >> > > > > >> > > OK, once we have agreed the below I can do that. > > >> > > > > >> > > > > > >> > > > > As I probably > > >> > > > > mentioned at the time, my accepted patch breaks my workflow and > > >> > > > > several boards. I hope you can understand how frustrating that > > >> > > > > sort of > > >> > > > > thing can be. > > >> > > > > > >> > > > Yes, I do and I am fine with a short-term patch that fixes issues, > > >> > > > as > > >> > > > long as its not too intrusive. There is a very thin line between > > >> > > > quick > > >> > > > and dirty fixes to spaghetti unreadable code. But we should have > > >> > > > comments and/or commit messages indicating that this needs a proper > > >> > > > fix > > >> > > > > >> > > I spent a lot of time explaining this last time. > > >> > > > > >> > > > > > >> > > > > Also, now that I have my lab back up and running and I > > >> > > > > would like these boards to work again on mainline! > > >> > > > > > > >> > > > > > > > >> > > > > > Grepping for OF_BLOBLIST, I can't find any matches, so is the > > >> > > > > > above if a typo? > > >> > > > > > > >> > > > > Remember, it was a patch you rejected :-) > > >> > > > > > >> > > > I don't maintain any of that. I only gave some feedback along the > > >> > > > lines of "bloblist was designed to be auto-discoverable, I don't > > >> > > > see > > >> > > > how adding an explicit Kconfig helps". IIRC we eventually followed > > >> > > > what Tom suggested. > > >> > > > > >> > > I'm not trying to point the finger here. So far the boards are broken > > >> > > in mainline...I'm just trying to fix that, > > >> > > > > >> > > > > > >> > > > In any case, the amount of bike-shedding in the topic is too much. > > >> > > > Do > > >> > > > you mind explaining the problem in your workflow again? Perhaps we > > >> > > > can > > >> > > > find a solution that is integrated in bloblist_maybe_init() > > >> > > > instead of > > >> > > > injecting ifs on when a bloblist should or should not be searched > > >> > > > for > > >> > > > all over the place. > > >> > > > > >> > > TPL (or SPL) sets up a bloblist with bits of info in it, but no DT > > >> > > (which is in memory-mapped SPI flash) > > >> > > U-Boot proper starts up, it wants to get the bloblist but not hang if > > >> > > the bloblist doesn't have a DT > > >> > > > >> > Sure, that's reasonable and IIRC that's the design we agreed a while > > >> > back. > > >> > Looking at the code, if the DT isn't found in a bloblist and the > > >> > feature is > > >> > enabled, we don't crash. We just print a debug message and continue to > > >> > find > > >> > the DT as we used. Why do we have to skip the call to > > >> > bloblist_maybe_init()? > > >> > > >> Because at this point, if there is no bloblist, then it needs to be > > >> created. But creating it this early may fail, e.g. since there is no > > >> malloc(). The intent of this code is to locate an FDT from an existing > > >> bloblist. There is no point in creating a new bloblist here, since it > > >> obviously won't have an FDT in it. > > >> > > > Can we add a bool arg to bloblist_init for this? > > > Eg. int bloblist_init(bool allow_malloc); > > > > Yes, we can do anything, but that seems like a hack to me...if we init > > the bloblist for the first time in the current phase, then it > > obviously won't have an FDT inside it. It is the unconditional > > requirement of an FDT which is causing the problems here. > > Can we apply this patch, please? I still have several broken boards in > my lab due to this.
Raymond acked the patch, I don't mind merging it Regards /Ilias > > Regards, > Simon