Tartarus changed the topic of #u-boot to: SOURCE MOVED TO https://source.denx.de/u-boot/u-boot.git / U-Boot v2024.04, v2024.07-rc1 are OUT / Merge Window is CLOSED, next branch is CLOSED / Release v2024.07 is scheduled for 01 July 2024 / Channel archives at https://libera.irclog.whitequark.org/u-boot
mmu_man has quit [Ping timeout: 264 seconds]
jclsn has quit [Ping timeout: 256 seconds]
jclsn has joined #u-boot
rvalue has quit [Read error: Connection reset by peer]
rvalue has joined #u-boot
alpernebbi has quit [Ping timeout: 272 seconds]
alpernebbi has joined #u-boot
alpernebbi has quit [Ping timeout: 240 seconds]
KREYREN has joined #u-boot
alpernebbi has joined #u-boot
Clamor has joined #u-boot
alpernebbi has quit [Ping timeout: 256 seconds]
alpernebbi has joined #u-boot
alpernebbi has quit [Ping timeout: 252 seconds]
joeskb7 has quit [Ping timeout: 264 seconds]
alpernebbi has joined #u-boot
alpernebbi has quit [Ping timeout: 272 seconds]
alpernebbi has joined #u-boot
alperak has joined #u-boot
alpernebbi has quit [Ping timeout: 256 seconds]
hanetzer has quit [Quit: WeeChat 4.2.1]
alpernebbi has joined #u-boot
gsz has joined #u-boot
alpernebbi has quit [Ping timeout: 255 seconds]
thopiekar has quit [Quit: Likely restarting quassel...]
goliath has joined #u-boot
monstr has joined #u-boot
alpernebbi has joined #u-boot
enok has joined #u-boot
thopiekar has joined #u-boot
monstr has quit [Ping timeout: 252 seconds]
joeskb7 has joined #u-boot
mmu_man has joined #u-boot
linfax has joined #u-boot
persmule has quit [Quit: Leaving]
KREYREN has quit [Remote host closed the connection]
persmule has joined #u-boot
warpme has joined #u-boot
sszy has joined #u-boot
<pivi> NishanthMenon: so this regression is caused by "mmc: sdhci: introduce adma_write_desc() hook to struct sdhci_ops" and you have already bisected it? If this is correct I gonna save my time
tnovotny has joined #u-boot
slobodan_ has joined #u-boot
ikarso has joined #u-boot
mmu_man has quit [Ping timeout: 264 seconds]
<pivi> NishanthMenon: ok, given the email from Judith this is the case, thanks for the confirmation!
enok has quit [Ping timeout: 245 seconds]
warpme has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
enok has joined #u-boot
monstr has joined #u-boot
KREYREN has joined #u-boot
slobodan_ has quit [Ping timeout: 268 seconds]
ungeskriptet has quit [Quit: The Lounge - https://thelounge.chat]
ungeskriptet has joined #u-boot
slobodan has joined #u-boot
ungeskriptet has quit [Quit: The Lounge - https://thelounge.chat]
enok has quit [Ping timeout: 245 seconds]
ungeskriptet has joined #u-boot
ungeskriptet has quit [Client Quit]
qqq has joined #u-boot
gsz has quit [Ping timeout: 256 seconds]
gsz has joined #u-boot
Clamor has quit [Read error: Connection reset by peer]
Clamor has joined #u-boot
slobodan has quit [Ping timeout: 252 seconds]
ungeskriptet has joined #u-boot
slobodan has joined #u-boot
gsz has quit [Ping timeout: 260 seconds]
slobodan has quit [Read error: Connection reset by peer]
slobodan has joined #u-boot
gsz has joined #u-boot
gsz has quit [Client Quit]
ungeskriptet has quit [Quit: The Lounge - https://thelounge.chat]
ungeskriptet has joined #u-boot
ungeskriptet has quit [Client Quit]
abws has quit [Quit: abws]
warpme has joined #u-boot
goliath has quit [Quit: SIGSEGV]
ungeskriptet has joined #u-boot
frieder has joined #u-boot
mmu_man has joined #u-boot
warpme has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
dsimic has quit [Ping timeout: 256 seconds]
goliath has joined #u-boot
dsimic has joined #u-boot
<frieder> Hi, I'm trying to bring up a new board with i.MX93. I see SPL and TF-A BL31 messages, but no signs from U-Boot proper. Any ideas for debugging?
<frieder> So far I tried using the imx93_11x11_evk_defconfig on current master and a custom config + DT for the new board on our fork (2024.01 with backports). Both with the same results.
<frieder> I'm booting via USB using uuu
mmu_man has quit [Ping timeout: 264 seconds]
Clamor has quit [Read error: Connection reset by peer]
slobodan_ has joined #u-boot
Clamor has joined #u-boot
slobodan has quit [Ping timeout: 255 seconds]
<marex> frieder: UART pinmux issues ?
<frieder> marex: hm, UART pinmux is exactly the same as for the EVK. And the UART works in SPL.
<frieder> It feels like U-Boot proper is not running at all...
Danish has quit [Quit: Connection closed for inactivity]
f_ has joined #u-boot
f_ has quit [Remote host closed the connection]
<marex> frieder: enable DEBUG_UART in U-Boot to find out ?
f_ has joined #u-boot
<marex> that is low level printing stuff
<frieder> marex: I tried, but it seems there is no support for DEBUG_UART in the lpuart driver. Or otherwise I don't understand how it's supposed to work.
<frieder> marex: Where does the putchar() implementation for DEBUG_UART usually come from? The serial driver?
<marex> frieder: yeah, you have to implement like two functions, init and putchar
<marex> frieder: the first one sets up the UART IP by some trivial register poking , the second one writes character to UART FIFO by register poking
mmu_man has joined #u-boot
enok has joined #u-boot
<frieder> marex: Ok, thanks I can now vaguely remember those DEBUG_UART specifics.
<frieder> marex: I hacked debug UART support into drivers/serial/serial_lpuart.c and now I'm getting two more characters from the UART after BL31: "in"
<frieder> Not really sure what I can make of this, but better than nothing.
<marex> frieder: clock settings for the UART IP ?
Pixi` has joined #u-boot
Stat_headcrabed has joined #u-boot
Pixi has quit [Ping timeout: 252 seconds]
Stat_headcrabed has quit [Client Quit]
<frieder> marex: That's it! I added init_uart_clk(LPUART1_CLK_ROOT) to board_early_init_f() and now U-Boot proper comes up correctly.
<frieder> marex: So there's probably something clock-related missing in the devicetree.
<frieder> marex: Thank's a lot!
Clamor has quit [Ping timeout: 260 seconds]
Clamor has joined #u-boot
<frieder> Or maybe not yet :(
<frieder> It worked once and now it doesn't. Need to figure out what is going on here. There's something very strange going on, but probably there's a simple explanation, as always.
f_ has quit [Remote host closed the connection]
f_ has joined #u-boot
enok has quit [Ping timeout: 256 seconds]
qqq has quit [Remote host closed the connection]
<NishanthMenon> pivi: Correct https://lore.kernel.org/u-boot/33db14f4-f3f0-4e5f-a256-2ce9b5c505fd@ti.com/ apparently is the source of regression.. @Tartarus
warpme has joined #u-boot
mmu_man has quit [Ping timeout: 256 seconds]
stefanro has quit [Quit: Leaving.]
<Tartarus> Yeah, has anyone been able to dig at the commit a bit more to see why it's failing?
<NishanthMenon> dont think we did look closer at https://github.com/u-boot/u-boot/commit/74755c1fed1b09526b0993c729fe3ae909752fbd -> too intrusive churn.
<NishanthMenon> ideally should have been split into smaller changes :(
slobodan_ has quit [Ping timeout: 252 seconds]
<marex> frieder: errr ... sec
<marex> frieder: do you remember this board/dhelectronics/dh_imx8mp/spl.c: init_uart_clk(0);
<marex> init_uart_clk() in SPL ?
<marex> frieder: maybe something similar is needed which also configures the clock ?
tnovotny has quit [Quit: Leaving]
tgamblin has quit [Remote host closed the connection]
tgamblin has joined #u-boot
ldevulder_ has joined #u-boot
ldevulder has quit [Ping timeout: 264 seconds]
mmu_man has joined #u-boot
linfax has quit [Ping timeout: 264 seconds]
<pivi> any clever way to check for a substring in a variable in U-Boot shell? In posix sh I would just do something like "case ${var} in *pattern*) echo found ;; esac"
monstr has quit [Remote host closed the connection]
sszy has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
nehamalcom has quit [Ping timeout: 260 seconds]
rburton has quit [Ping timeout: 260 seconds]
nehamalcom has joined #u-boot
macromorgan has quit [Ping timeout: 260 seconds]
macromorgan has joined #u-boot
<quinq> pivi, https://docs.u-boot.org/en/latest/usage/cmd/setexpr.html might help, although looks a bit overkill
rburton has joined #u-boot
<marex> pivi: quinq is right, setexpr
<marex> with regex support
<pivi> yeah, looking into it. I have regexpt, not sure about regex (it's for a generic boot script, so I hope to have it available already ...)
<pivi> s/regexpt/setexpr/
<pivi> thanks both
<quinq> Good luck :)
sally has quit [Ping timeout: 260 seconds]
goliath has quit [Quit: SIGSEGV]
___nick___ has joined #u-boot
slobodan has joined #u-boot
warpme has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
enok has joined #u-boot
jfsimon1981_b has joined #u-boot
jfsimon1981 has quit [Read error: Connection reset by peer]
<pivi> ok, cool. setexpr seems there by default, and regex also if NET is enabled (and this is my case)
slobodan_ has joined #u-boot
slobodan has quit [Ping timeout: 240 seconds]
<pivi> in case you ever need this ... to be sure that baudrate is passed to the kernel, given that for some reason we have a mess on this regard
<pivi> setexpr _res sub "," "_" ${console}
<pivi> if test ! $? -eq 0; then env set console "${console},${baudrate}"
<pivi> fi
Stat_headcrabed has joined #u-boot
sally_ has joined #u-boot
___nick___ has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
___nick___ has joined #u-boot
___nick___ has quit [Client Quit]
___nick___ has joined #u-boot
rvalue has quit [Read error: Connection reset by peer]
rvalue has joined #u-boot
Stat_headcrabed has quit [Quit: Stat_headcrabed]
enok has quit [Ping timeout: 252 seconds]
frieder has quit [Remote host closed the connection]
<marex> pivi: so you have a mix of console=ttyS0 and console=ttyS0,115200 ?
mmu_man has quit [Ping timeout: 260 seconds]
Clamor has quit [Ping timeout: 268 seconds]
Clamor has joined #u-boot
goliath has joined #u-boot
mmu_man has joined #u-boot
rvalue- has joined #u-boot
rvalue has quit [Ping timeout: 256 seconds]
rvalue- is now known as rvalue
Clamor has quit [Read error: Connection reset by peer]
alan_o has quit [Remote host closed the connection]
alan_o has joined #u-boot
f_ has quit [Ping timeout: 260 seconds]
___nick___ has quit [Ping timeout: 260 seconds]
<Tartarus> Bah, how many messages in a row does gmail let you send before it gets mad and cuts you off?
<Tartarus> This 450 part series is gonna need to be sent in batches
<Tartarus> Maybe I should do it per vendor, hm
<Tartarus> That's only 144 parts, might get most of that out
<Tartarus> Good news is that I've removed <common.h> from board/
<Tartarus> And I've got a little ad-hoc script to commit and cc people
ikarso has quit [Quit: Connection closed for inactivity]
Perflosopher has joined #u-boot
<pivi> marex: yes. or better, we have mostly the first, but it's not correct and I'd like to migrate to the second
<pivi> Tartarus: nice work. I just reviewed some internal code that had it added. I had to be the bad guy and nack it
<Tartarus> Thanks :)
ikarso has joined #u-boot
sally_ has quit [Quit: sally_]
<tlwoerner> in a U-Boot script (hush enabled) i would like to check the value of some bytes in nor0 and do one thing if they're set to X and something else otherwise
sally_ has joined #u-boot
<tlwoerner> so i can get the bytes by using: mtd dump nor0 0xf80070 9
<tlwoerner> but how would i compare those 9 bytes to a string?
<tlwoerner> (or how would i even capture those bytes into a variable?)
sally_ is now known as sally
conchuod has quit [Excess Flood]
ConorDooley has joined #u-boot
enok has joined #u-boot
ConorDooley is now known as conchuod
<Tartarus> OK, down to just "drivers" to clear out
<Tartarus> tlwoerner: Uh, "cmp" can compare memory locations so you could put one string at a location in memory
<tlwoerner> i see
<Tartarus> There's probably other ways too
<Tartarus> Just what pops to mind
<tlwoerner> i think you've put me on the right track. and i think i can use "mtd read" instead of "mtd dump" to put things from qspi into memory
<tlwoerner> then cmp them
<tlwoerner> i guess i should use 'sf' instead of 'mtd'
<quinq> yep
<marex> tlwoerner: and setexpr var *address ... is also useful, if you need to read memory address into variable ;-)
<marex> pivi: obv question, why not remove console altogether and let the DT chosen node default do its thing ?
dagelf has quit [Ping timeout: 240 seconds]
<tlwoerner> is there a variable that tells me the start of where the relocated U-Boot is running from in RAM?
dagelf has joined #u-boot
<marex> tlwoerner: for what purpose ?
<marex> tlwoerner: are you overwriting yourself ? look at LMB
<tlwoerner> marex: the QSPI on my board has an "Image A" and "Image B" and some firmware that is run at boot to select between A or B depending on a bunch of variables
<tlwoerner> in my script i need to know if they have updated their U-Boot and are running the latest before i try doing an "env save" in my script
<tlwoerner> simply reading the QSPI's A and B image to see if they're updated won't be enough, i need to know that what is currently running has been updated
<marex> tlwoerner: why not use version variable ?
<tlwoerner> if i poke through the memory of U-Boot itself i should find a string at offset 0x70 that will definitively let me know
<tlwoerner> this version of U-Boot wasn't compiled to put the version in the version environment variable, and they don't want to update U-Boot yet again
<marex> tlwoerner: oh ... ughhhh
<tlwoerner> i'm learning new things about U-Boot, and that's never bad!
<marex> tlwoerner: the new thing is to enable version variable ;-)
<marex> tlwoerner: do you U-Boot proper TEXT_BASE ?
<marex> tlwoerner: if so, the pre-reloc copy would be at that text base , so you could try to exfil info from there ?
<tlwoerner> U-Boot proper, yes
<tlwoerner> you mean "echo $TEXT_BASE"?
<tlwoerner> ah, you mean CONFIG_TEXT_BASE
<marex> tlwoerner: yeah, that
<marex> tlwoerner: which may match $loadaddr sometimes
<marex> MAY
<tlwoerner> yes, i see that in my environment
<tlwoerner> (loadaddr = CONFIG_TEXT_BASE)
<tlwoerner> oh darn, in my case that won't work. what's stored in QSPI is more than just U-Boot, the variable i'm looking at in QSPI is not part of U-Boot
<marex> tlwoerner: which SoC is this ?
<tlwoerner> it's the system-controller of the Xilinx vek280
<marex> is that the FSBL/PMUFW/combo ?
<tlwoerner> lol
<tlwoerner> yes, i was just writing that
<marex> I got stuck with zynqmp and didn't really bother further
<marex> well ... FSBL is in some OCRAM, PMUFW might also be reachable via some R5 OCRAM, no ?
<marex> so there might still be hope ?
<marex> cant you do EEMI call into these things and query version ?
<marex> I recall they were very conscious about platform security however ... so ...
<tlwoerner> i don't think the system-controller has access to the R5
<tlwoerner> the full SoC yes, but not the SC
<tlwoerner> let me try a different approach
<marex> oh ... PM_MMIO_READ/PM_MMIO_WRITE ... those allow you to security read various registers via EEMI :-)
<marex> and write too, because security
<tlwoerner> is there a way to know where an "env save" command will write the environment (without having to invoke the command in any way)?
<tlwoerner> that's the problem i'm trying to solve
<tlwoerner> i want to do an "env save" in my script
<marex> tlwoerner: why not do it ?
<tlwoerner> but the old version had this configured badly such that it would brick the device
<marex> oh, gee
<tlwoerner> due to overwriting the firmware
<tlwoerner> so before i attempt an "env save" in my script, i need to know they're running the new version that has this fixed
<marex> tlwoerner: but that is U-Boot thing, right ?
<marex> tlwoerner: so why not simply read out the U-Boot version string from $TEXT_BASE and compare it ?
<marex> (or enable version variable ... sigh)
<tlwoerner> i've been dumping blobs and blobs of ${loadaddr} and i don't see a U-Boot version string anywhere (yet)
<tlwoerner> on Xilinx U-Boot is packaged in a boot.bin that is store in QSPI
<tlwoerner> part of that boot.bin in QSPI has a version string that will tell me it's a new one
<tlwoerner> but it's not in U-Boot itself
<marex> tlwoerner: grep the boot.bin , find the offset of the version string of desktop pc, then setexpr var *thatoffset
<tlwoerner> before or after the fix, the version of U-Boot is the same: namely 2023.01
<marex> ugh
<marex> crap
<marex> and the version of FSBL and PMUFW too ?
<tlwoerner> except there are 2 boot.bins and i know know which one is being run
<marex> they print some stuff too
<tlwoerner> i may need to ask internally to see how i can find out whether i'm running the A or the B boot.bin
<tlwoerner> and then examine that boot.bin to look for the version
enok has quit [Ping timeout: 252 seconds]
slobodan_ has quit [Ping timeout: 268 seconds]
naoki has joined #u-boot
<marex> tlwoerner: cant you calculate checksum of the binary and check that ?
<Tartarus> Or is this for some sort of A/B mechanism?
<marex> Tartarus: tlwoerner wrote it is to avoid corrupting bootloader
<marex> Tartarus: because old stuff is misconfigured
<Tartarus> Ah
<Tartarus> And, bah, I need to see if BINMAN_INDIRS can be set to multiple locations
<Tartarus> It would be nice when building the world to not see nearly so many firmware blob messages
KREYREN has quit [Remote host closed the connection]
KREYREN has joined #u-boot
naoki has quit [Quit: naoki]
KREYREN has quit [Remote host closed the connection]
KREYREN has joined #u-boot
<tlwoerner> there are actually 2 A/B mechanisms on this device
<tlwoerner> there's the Xilinx internal, closed, A/B mechanism for selecting the firmware (i.e. the boot.bin that is in the QSPI, one component of which is U-Boot)
<tlwoerner> and i'm adding rauc to this whole thing to provide an upstream, open-source A/B mechanism for the kernel + user-space
<tlwoerner> and rauc needs to do an "env save" in the U-Boot script
<tlwoerner> but U-Boot was misconfigured so when the script did that, it overwrote the firmware boot image recovery tool
<tlwoerner> so now i need to find a way to discover programmatically whether they're running the old or new U-Boot before doing an "env save"
ikarso has quit [Quit: Connection closed for inactivity]
alperak has quit [Quit: Connection closed for inactivity]
goliath has quit [Quit: SIGSEGV]