All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Pali Rohár" <pali@kernel.org>
To: Heiko Schocher <hs@denx.de>
Cc: Tom Rini <trini@konsulko.com>, u-boot@lists.denx.de
Subject: Re: [PATCH u-boot] powerpc/mpc85xx: socrates: Re-enable building u-boot-socrates.bin
Date: Wed, 11 Jan 2023 01:09:53 +0100	[thread overview]
Message-ID: <20230111000953.ay56o5p6xaiws26h@pali> (raw)
In-Reply-To: <1165301a-44b1-ea65-b1b3-21a1bb3bfeb2@denx.de>

On Monday 02 January 2023 09:29:10 Heiko Schocher wrote:
> Hello Pali
> 
> On 01.01.23 07:57, Heiko Schocher wrote:
> > Hello Pali,
> > 
> > On 31.12.22 16:37, Pali Rohár wrote:
> >> On Saturday 31 December 2022 16:31:57 Heiko Schocher wrote:
> >>> Hello Pali,
> >>>
> >>> On 31.12.22 14:36, Heiko Schocher wrote:
> >>>> Hello Pali,
> >>>>
> >>>> On 31.12.22 13:58, Pali Rohár wrote:
> >>>>> On Saturday 31 December 2022 10:36:07 Heiko Schocher wrote:
> >>>>>> Hello Pali,
> >>>>>>
> >>>>>> On 28.12.22 19:18, Pali Rohár wrote:
> >>>>>>> U-Boot build system builds final U-Boot binary for socrates board in custom
> >>>>>>> file u-boot-socrates.bin (instead of standard u-boot.bin). Output target
> >>>>>>> file u-boot-socrates.bin is generated by binman as defined in board binman
> >>>>>>> config file arch/powerpc/dts/socrates-u-boot.dtsi.
> >>>>>>>
> >>>>>>> But binman was disabled in commit 5af42eafd7e1 ("Makefile: Reduce usage of
> >>>>>>> custom mpc85xx u-boot.bin target") for all mpc85xx boards which do not use
> >>>>>>> standard powerpc binman config file arch/powerpc/dts/u-boot.dtsi and boards
> >>>>>>> which do not require binman at all.
> >>>>>>>
> >>>>>>> The only such mpc85xx board is socrates. So since that commit, U-Boot does
> >>>>>>> not final binary for socrates board anymore.
> >>>>>>>
> >>>>>>> Fix this issue by re-enabling binman for socrates board. And build process
> >>>>>>> starts again producing u-boot-socrates.bin binary.
> >>>>>>>
> >>>>>>> Note that build process for this socrates board always produce u-boot.bin
> >>>>>>> binary which is broken and not usable for socrates board. Long term
> >>>>>>> solution should be to disable building broken binary u-boot.bin and then
> >>>>>>> renaming u-boot-socrates.bin to u-boot.bin, or switching to use common
> >>>>>>> powerpc binman config file arch/powerpc/dts/socrates-u-boot.dtsi (if it is
> >>>>>>> possible).
> >>>>>>>
> >>>>>>> Fixes: 5af42eafd7e1 ("Makefile: Reduce usage of custom mpc85xx u-boot.bin target")
> >>>>>>> Signed-off-by: Pali Rohár <pali@kernel.org>
> >>>>>>> ---
> >>>>>>> Heiko Schocher: Could you test if u-boot is still working on this board?
> >>>>>>>
> >>>>>>> Tom Rini: Cannot be this issue handled by CI? For example that CI check
> >>>>>>> build process produce required output binaries?
> >>>>>>> ---
> >>>>>>>  arch/powerpc/cpu/mpc85xx/Kconfig | 1 +
> >>>>>>>  1 file changed, 1 insertion(+)
> >>>>>>
> >>>>>> With this patch, u-boot-socrates.bin is build again, so yes...
> >>>>>>
> >>>>>> Tested-by: Heiko Schocher <hs@denx.de>
> >>>>>>
> >>>>>> ... but current u-boot does not boot anymore on this board ... I have to
> >>>>>> dig into, obvious difference I see in hexdump is:
> >>>>>>
> >>>>>> old (2022.01) u-boot:
> >>>>>> """
> >>>>>> 00001930  74 65 00 6f 66 66 73 65  74 00 73 74 64 6f 75 74  |te.offset.stdout|
> >>>>>> 00001940  2d 70 61 74 68 00 ff ff  ff ff ff ff ff ff ff ff  |-path...........|
> >>>>>> 00001950  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
> >>>>>> *
> >>>>>> 00020000  27 05 19 56 3c 60 e4 01  60 63 3f 10 38 63 fb f0  |'..V<`..`c?.8c..|
> >>>>>> 00020010  3c 80 e4 01 60 84 40 00  38 00 00 00 38 84 ff fc  |<...`.@.8...8...|
> >>>>>> 00020020  90 04 00 00 7c 04 18 40  40 82 ff f4 3c 80 e4 01  |....|..@@...<...|
> >>>>>>
> >>>>>> """
> >>>>>>
> >>>>>> New
> >>>>>> """
> >>>>>> 00001930  74 65 00 6f 66 66 73 65  74 00 73 74 64 6f 75 74  |te.offset.stdout|
> >>>>>> 00001940  2d 70 61 74 68 00 ff ff  ff ff ff ff ff ff ff ff  |-path...........|
> >>>>>> 00001950  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
> >>>>>> *
> >>>>>> 00020000  3c 60 e4 01 60 63 3f 10  38 63 fb f0 3c 80 e4 01  |<`..`c?.8c..<...|
> >>>>>> 00020010  60 84 40 00 38 00 00 00  38 84 ff fc 90 04 00 00  |`.@.8...8.......|
> >>>>>> 00020020  7c 04 18 40 40 82 ff f4  3c 80 e4 01 60 84 3f 20  ||..@@...<...`.? |
> >>>>>>
> >>>>>> """
> >>>>>>
> >>>>>> So "U-Boot magic" is misssing ...
> >>>>>
> >>>>> It was removed in commit 2dcf776ebcf7 ("powerpc: mpc85xx: Drop _start symbol").
> >>>>> Was it used for something?
> >>>>
> >>>> I think (hope) not!
> >>>>
> >>>>>> reset vector at end of image is for both the same:
> >>>>>>
> >>>>>> 000bfff0  ff ff ff ff ff ff ff ff  ff ff ff ff 4b ff f0 04  |............K...|
> >>>>>> 000c0000
> >>>>>
> >>>>> 4b ff f0 04 is ppc branch instruction pos-0xffc, so to offset 0xbf000
> >>>>> in dumped file (not available in the output). I think this is correct.
> >>>>
> >>>> Yes, this is correct.
> >>>>
> >>>>>
> >>>>>> I have to dig deeper into it, to find out what have changed in the meantime,
> >>>>>> (Think I start a "git bisect") just find some more time for it...
> >>>>>
> >>>>> I think that git bisect would be needed to investigate what is the
> >>>>> problematic commit.
> >>>>>
> >>>>
> >>>> Just bisecting it ... and commit:
> >>>> """
> >>>> commit 985503439762c3168aeb80f529bb9bbcd773dd2c
> >>>> Author: Simon Glass <sjg@chromium.org>
> >>>> Date:   Thu Dec 16 20:59:31 2021 -0700
> >>>>
> >>>>     fdt: Don't call board_fdt_blob_setup() without OF_BOARD
> >>>> """
> >>>>
> >>>> poped up ... so I enabled CONFIG_OF_BOARD for socrates build to get
> >>>> board specific function board_fdt_blob_setup() again called, and
> >>>> with this change board boots again, based on this commit!
> >>>>
> >>>> But ... building current head:
> >>>> 3089d12a02efd1dc5dce01e0ec0fda9142693b11
> >>>>
> >>>> with this change, again, no u-boot output ...so there is a next "git bisect"
> >>>> round necessary. I have to stop now, else I get an angry wife ... will continue
> >>>> next week... hopefully with a good result...
> >>>>
> >>>> Have a good slide to the new year!
> >>>
> >>> Next git bisect round shows up:
> >>> """
> >>> commit be7dbb60c5bfa38ea444fe7de1dca8bd35f83f5b (refs/bisect/bad)
> >>> Author: Tom Rini <trini@konsulko.com>
> >>> Date:   Sun Dec 12 22:12:30 2021 -0500
> >>>
> >>>     Convert CONFIG_SYS_IMMR to Kconfig
> >>> """
> >>>
> >>> and yes, config symbol:
> >>>
> >>> CONFIG_SYS_IMMR=0xff700000
> >>>
> >>> is crap for socrates... you fixed this already in mainline with
> >>> """
> >>> commit 39f42fe20a8239c6a878f7fac03e758b2117009e
> >>> Author: Pali Rohár <pali@kernel.org>
> >>> Date:   Mon May 2 18:29:25 2022 +0200
> >>>
> >>>     powerpc: mpc85xx: Set default SYS_IMMR value for P1/P2 CPUs
> >>>
> >>>     This reduce usage of per-board custom settings.
> >>> """
> >>
> >> This commit fixed SYS_IMMR only for ARCH_P1* and ARCH_P2*. Socrates is
> >> ARCH_MPC8544, so I'm not sure if that my commit really fixed it for
> >> MPC8544. Please recheck current master that CONFIG_SYS_IMMR is set to
> >> the same value as in old u-boot version where board worked fine.
> >>
> >> SYS_IMMR should be set to the CCSR address *after* CCSR relocation.
> >> And also check SYS_CCSRBAR_DEFAULT that is is CCSR address *befere* CCSR
> >> relocation (it should be reset address).
> > 
> > Yes, I already checked it, looked fine. Will do a new bisect soon.
> 
> Found the problematic commit:
> """
> commit 2f8a6db5d83b103e372172422a3d0aff873f1299
> Author: Tom Rini <trini@konsulko.com>
> Date:   Tue Dec 14 13:36:40 2021 -0500
> 
>     Finish conversion of CONFIG_SYS_CLK_FREQ to Kconfig
> 
>     In order to finish moving this symbol to Kconfig for all platforms, we
>     need to do a few more things.  First, for all platforms that define this
>     to a function, introduce CONFIG_DYNAMIC_SYS_CLK_FREQ, similar to
>     CONFIG_DYNAMIC_DDR_CLK_FREQ and populate clock_legacy.h.  This entails
>     also switching all users from CONFIG_SYS_CLK_FREQ to get_board_sys_clk()
>     and updating a few preprocessor tests.
> 
>     With that done, all platforms that define a value here can be converted
>     to Kconfig, and a fall-back of zero is sufficiently safe to use (and
>     what is used today in cases where code may or may not have this
>     available).  Make sure that code which calls this function includes
>     <clock_legacy.h> to get the prototype.
> 
>     Signed-off-by: Tom Rini <trini@konsulko.com>
> """
> 
> Adding:
> +CONFIG_SYS_CLK_FREQ=66666666
> to socrates_defconfig helps!
> 
> But... now I see one more problem
> """
> U-Boot 2023.01-rc4 ...
> 
> CPU:   8544, Version: 2.1, (0x80340121)
> Core:  e500v2, Version: 2.3, (0x80210023)
> Clock Configuration:
>        CPU0:666.667 MHz,
>        CCB:333.333 MHz,
>        DDR:166.667 MHz (333.333 MT/s data rate), LBC:333.333 MHz
> L1:    D-cache 32 KiB enabled
>        I-cache 32 KiB enabled
> Model: abb,socrates
> Board: Socrates, serial# 1012983726
> PCI1:  32 bit, 33 MHz (PCI_CLK)
> DRAM:  Detected UDIMM M2SK-12MD4C06-M
>        512 MiB (DDR2, 64-bit, CL=4, ECC off)
> Core:  16 devices, 10 uclasses, devicetree: board
> Flash: 32 MiB
> L2:    256 KiB enabled
> NAND:  1024 MiB
> Loading Environment from Flash... OK
> In:    serial
> Out:   serial
> Err:   serial
> PCI: Failed autoconfig bar 18
> PCI: Failed autoconfig bar 20
> Net:   Bad trap at PC: f3da3dbc, SR: 29200, vector=e00
> NIP: F3DA3DBC XER: 00000000 LR: 1FF862C4 REGS: 1fb4a390 TRAP: 0e00 DAR: 00000000
> MSR: 00029200 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 00
> 
> GPR00: 1FF86BDC 1FB4A480 1FB4BEC0 00000000 00000001 1FB4C298 00000009 000018B5
> GPR08: E0024000 F3DA3DBF 0000000F 1FB4A4C0 42000428 7AA2CCF8 00000000 1FFF0000
> GPR16: 1FFF1D1C 1FFF1D6C 1FFF0904 1FB4A3F8 1FFA8430 1FFA887E 1FFB4FAE 00000001
> GPR24: 1FFF2CC8 00000001 00000009 1FB4C298 00000000 00000001 1FFBF8D4 00000000
> Call backtrace:
> 1FF78ECC 1FF86BDC 1FF8580C 1FF76CAC 1FF78194 1FFA7700 1FF6A75C
> 1FF6AA78 1FF50F3C
> Exception in kernel pc f3da3dbc signal 0
> 
> """
> 
> Uff... at that the time a lot of problems came in ... I am so sorry, that my
> CI does not run currently :-(
> 
> So ... next round if bisceting ...

Hello! This looks better. Everything is loaded, just PCI has some memory
issues. Have you tried to find why is PCI bus broken? I have one commit
for drivers/pci/pci_mpc85xx.c PCI driver which touches PCI config space
in git history. Maybe it could be related?

> bye,
> Heiko
> > 
> > bye,
> > Heiko
> >>
> >>> but with current HEAD, board still does not boot, CONFIG_SYS_IMMR is correct...
> >>>
> >>> puh... so I have to git bisect in a third round with correcting IMMR
> >>> value between your fix and commit be7dbb60c5
> >>>
> >>> bye,
> >>> Heiko
> >>>
> >>>>
> >>>> bye,
> >>>> Heiko
> >>>>
> >>>>
> >>>>>> Nevertheless, I think, this patch can go in...
> >>>>>>
> >>>>>> bye,
> >>>>>> Heiko
> >>>>>>
> >>>>>> -- 
> >>>>>> DENX Software Engineering GmbH,      Managing Director: Erika Unter
> >>>>>> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> >>>>>> Phone: +49-8142-66989-52   Fax: +49-8142-66989-80   Email: hs@denx.de
> >>>>
> >>>>
> >>>> bye,
> >>>> Heiko
> >>>>
> >>>
> >>> -- 
> >>> DENX Software Engineering GmbH,      Managing Director: Erika Unter
> >>> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> >>> Phone: +49-8142-66989-52   Fax: +49-8142-66989-80   Email: hs@denx.de
> > 
> 
> -- 
> DENX Software Engineering GmbH,      Managing Director: Erika Unter
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: +49-8142-66989-52   Fax: +49-8142-66989-80   Email: hs@denx.de

  reply	other threads:[~2023-01-11  0:10 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-28 18:18 [PATCH u-boot] powerpc/mpc85xx: socrates: Re-enable building u-boot-socrates.bin Pali Rohár
2022-12-29  0:11 ` Tom Rini
2022-12-29  1:34   ` Pali Rohár
2022-12-29  7:01 ` Heiko Schocher
2022-12-30 12:44 ` Pali Rohár
2022-12-30 15:20   ` Tom Rini
2022-12-31  9:36 ` Heiko Schocher
2022-12-31 12:58   ` Pali Rohár
2022-12-31 13:36     ` Heiko Schocher
2022-12-31 15:31       ` Heiko Schocher
2022-12-31 15:37         ` Pali Rohár
2023-01-01  6:57           ` Heiko Schocher
2023-01-02  8:29             ` Heiko Schocher
2023-01-11  0:09               ` Pali Rohár [this message]
2023-01-06 16:52 ` Tom Rini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230111000953.ay56o5p6xaiws26h@pali \
    --to=pali@kernel.org \
    --cc=hs@denx.de \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.