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…]
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.
<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]
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]