Hi Ilias, On Wed, 31 Jul 2024 at 14:09, Ilias Apalodimas <ilias.apalodi...@linaro.org> wrote: > > 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
OK thank you. There is another one too - see the note at the end. https://patchwork.ozlabs.org/project/uboot/patch/20240721100940.3202027-6-...@chromium.org/ Regards, Simon