Tartarus changed the topic of #u-boot to: SOURCE MOVED TO https://git.u-boot-project.org/u-boot/u-boot.git / U-Boot v2026.07, v2026.10-rc3 are OUT / Merge Window is CLOSED, next branch is OPEN / Release v2026.10 is scheduled for 05 October 2026 / Channel archives at https://libera.irclog.whitequark.org/u-boot
memset has quit [Remote host closed the connection]
memset has joined #u-boot
vagrantc has quit [Quit: leaving]
memset has quit [Remote host closed the connection]
memset has joined #u-boot
jclsn has quit [Ping timeout: 273 seconds]
jclsn has joined #u-boot
qschulz has quit [Remote host closed the connection]
qschulz has joined #u-boot
jclsn has quit [Ping timeout: 256 seconds]
jclsn has joined #u-boot
mmu_man has quit [Ping timeout: 262 seconds]
agris has joined #u-boot
<agris> Hello? Is anybody here?
<agris> does "SPL/TPL" refer to the same thing? If I'm able to build a BL31.elf from trusted-firmware-a.git does that mean I don't need a SPL or a TPL?
<agris> otherwise I have this
<agris> rk3588_spl_loader_v1.19.113.bin
<agris> bl31_0x00040000.bin
<agris> bl31_0x00040000.bin.digest
<agris> bl31_0x00040000.bin.gz
<agris> bl31_0x000f0000.bin
<agris> bl31_0xff100000.bin
<agris> bl31.elf
<agris> these blobs from the manufacturer
<agris> I'm trying to build my own u-boot because when I try to load freebsd's aarch64.efi bootloader it crashes u-boot so hard I need to press the reset button
<agris> the manufacturer is using a strange fork of u-boot from 2017
<agris> they sdk they gave me just has this tarball with a fork of linux and u-boot, and the tarball doesn't even have all the changes committed just one staged relating to a display
tlwoerner_ has quit [Quit: Leaving]
tlwoerner has joined #u-boot
<agris> I need help
<shadow> hi agris
<shadow> TPL is "yet another SPL, after SPL"
<shadow> it needed a name so arbitrarily it is "TPL"
<shadow> SPL itself is usually operating before DRAM is initialized
<shadow> if all source code was known then it is usually just MaskROM to U-Boot main app, if MaskROM does the DRAM initialization; or there is a minimal filtered build of U-Boot with few options for constrained on-die memory operation (SRAM?) and this is known as SPL, and then maybe there's some kind of supervisor sandwiched in there before U-Boot main app too
<shadow> when DRAM is initialized then U-Boot main app is loaded and code execution jumps there
<agris> How would I be able to tell?
<agris> # LBA start (sectors) LBA end (sectors) Size (bytes) Name
<agris> 00 8192 16383 4194304 security
<agris> 01 16384 24575 4194304 uboot
<agris> 03 32768 40959 4194304 misc
<agris> 02 24576 32767 4194304 trust
<agris> 04 40960 49151 4194304 dtbo
<agris> and what does BL31.elf do, is it needed?
<agris> the devkit BL31.elf blob is twice as big as the one I built from cloning trusted-firmware-a.git
<shadow> what is the board/device you have there
<agris> boardconn SBC3588 and boardconn IDEA3588
<agris> i also managed to find the dts/dtsi files from their custom version of linux
<agris> but
<agris> their custom version of u-boot just uses rk3588-evb, i'm not sure if it's modified or not
<shadow> typically vendors will copy paste some other contractor's work getting the eval board going, then splash their changes over it without any regard for the future
<agris> the linux distro (debian 12) appears to be from linaro
<agris> at least the default user (uid1000) is
<agris> it's weird though. It doesn't boot like a normal linux. It uses some kind of android booting fit image with a built in dtb
<shadow> the first move would be to upstream this (if it is not yet) to Linux Kernel, as that is the authoritative center for devicetree
<agris> thankfully i do have the source
<shadow> then u-boot, then *bsd
<agris> what does that entail? submitting the dts/dtsi files to kernel.org?
<shadow> if you just want to tweak the existing vendor u-boot I would like to be helpful but it is going to be diminishing return on time invested in it
<shadow> upstream is the way to go
<agris> I want to eventually get generic linux kernel booting a normal way, instead of this weird custom androidboot fit image
<agris> as far as I can tell support for the rk3588 is good in linux7
<agris> I just need to figure out how to get a normal non-hackjob u-boot running that can load efi without crashing
<agris> and give it the dtbs
<agris> at least that is my understanding
<agris> I'm new to arm stuff, trying to get away from the x86 monopoly and be able to run a computer in my car for more then a couple minutes before running the battery down ;)
<agris> [:~/build/ … /rk3588-linux6.1-rkr6.1] $ fdfind dts | grep boardco
<agris> kernel-6.1/arch/arm64/boot/dts/rockchip/boardcon-idea3588-linux.dts
<agris> kernel-6.1/arch/arm64/boot/dts/rockchip/boardcon-em3588-linux.dts
<agris> kernel-6.1/arch/arm64/boot/dts/rockchip/boardcon-sbc3588-linux.dts
<shadow> presumably you could identify which existing upstream dts is most similar to your device's hardware
<agris> I already have the device tree source
<shadow> dts changes over time
<agris> ah
<shadow> as drivers are updated or re-written, their option names change, also bugs are fixed in how things inter-relate
<agris> so I wouldn't be able to use these dts files?
<shadow> you could on u-boot circa 2017
<shadow> they're more of a reading reference, especially when the schematic is not available
<agris> just the compatibility definition telling the kernel which driver to load?
<agris> I have the schematics for this board
<shadow> look up circa 2017 the linux kernel driver that consumes the configuration written in that dts, then read through the code to figure out what registers it readl and writel, read the chip documentation for that peripheral to understand the registers, then read the latest Linux kernel driver applicable to write your new dts
<shadow> schematics are good, that's helpful. You should be able to read through the dts in that above git tree subdirectory identifying what is most closely resembling your board
<shadow> perhaps start with rk3588-evb1-v10.dts and rk3588-evb2-v10.dts to see if it has any similarity at all
<agris> so I would not be able to build a current version of u-boot for this board yet?
<shadow> likely the compatible names have changed since then in mainline Linux, and U-Boot has sync'd with some of that in the last decade
<agris> so to be clear, the path forward is use the vendor's 2017 fork of u-boot but add efiloading support so I can attempt to boot a mainline kernel, play with modernizing the dts files to work with modern linux and upstream that, then work on the same for bsd?
<agris> Shouldn't I at least be able to load the FreeBSD bootloader without u-boot crashing?
<shadow> yeah. U-Boot has a subtree that references devicetree-rebasing which is built from every tagged release of mainline Linux (including release candidates)
<agris> I haven't tested it yet, but when I built u-boot with bootefi support and uploaded it to this board, as soon as i used the bootefi command u-boot would crash
<agris> I'm not sure if building a linux efistub would crash too
<agris> but I feel like linux is a lot more complex and requires more then the freebsd loader
<shadow> so... upstream to Linux, then U-Boot conveniently has all those changes when they're published, and poke a few levers and config options with some driver glue and it should be working
<agris> is there a wiki server I could use to document my findings and hopefully collaborate with others?
<shadow> openwrt community might have something applicable
<agris> what should I do if u-boot 2017 crashes loading linux too?
<agris> thing is, I want to use a modern linux because there's been a ton of work on open source drivers since then for linux 6.18-linux7.x whereas this vendor's version is using a ton of blobs and weird extremely alpha quality drivers
<shadow> my advice will be rather generic, based on experiences loosely around RISC-V developer boards; there are some rk3588 experts that frequent this IRC channel (it may take a week or two, everyone is busy)
<agris> running a mainline circa 2017 linux kernel would not work
<agris> because support wasn't there at that time
<agris> I figured updating u-boot would stop it from crashing when using bootefi
gsz has joined #u-boot
<mps> SPL - secondary program loader, TPL - tertiary program loader
persmule has quit [Remote host closed the connection]
persmule has joined #u-boot
gsz has quit [Ping timeout: 265 seconds]
AlisonChaiken has quit [Quit: Leaving]
rainbyte has quit [Read error: Connection reset by peer]
rainbyte has joined #u-boot
monstr has joined #u-boot
goliath has joined #u-boot
warpme_ has joined #u-boot
warpme_ has quit [Client Quit]
warpme_ has joined #u-boot
warpme_ has quit [Client Quit]
phckopper has quit [Read error: Connection reset by peer]
phckopper has joined #u-boot
warpme_ has joined #u-boot
Stat_headcrabbed has joined #u-boot
mckoan|away is now known as mckoan
gsz has joined #u-boot
monstr has quit [Ping timeout: 258 seconds]
dlech has quit [Ping timeout: 273 seconds]
sszy has joined #u-boot
dlech has joined #u-boot
Stat_headcrabbed has quit [Ping timeout: 241 seconds]
Stat_headcrabbed has joined #u-boot
Stat_headcrabbed has quit [Read error: Connection reset by peer]
mmu_man has joined #u-boot
warpme_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
jclsn has quit [Ping timeout: 256 seconds]
warpme_ has joined #u-boot
jclsn has joined #u-boot
gsz has quit [Ping timeout: 255 seconds]
memset has quit [Remote host closed the connection]
memset has joined #u-boot
slobodan has joined #u-boot
pitillo has quit [Ping timeout: 253 seconds]
pitillo has joined #u-boot
warpme_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
warpme_ has joined #u-boot
jclsn has quit [Ping timeout: 246 seconds]
Stat_headcrabbed has joined #u-boot
jclsn has joined #u-boot
Stat_headcrabbed has quit [Ping timeout: 260 seconds]
mrkajetanp has joined #u-boot
warpme_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
mrkajetanp has quit [Ping timeout: 263 seconds]
mrkajetanp has joined #u-boot
gsz has joined #u-boot
<sigmaris> on Rockchip, TPL runs before SPL, I can only imagine because someone got confused over whether Secondary came before or after Tertiary
memset has quit [Remote host closed the connection]
memset has joined #u-boot
quinq has quit [Ping timeout: 251 seconds]
memset has quit [Remote host closed the connection]
memset has joined #u-boot
memset has quit [Remote host closed the connection]
memset has joined #u-boot
gsz has quit [Ping timeout: 240 seconds]
gsz has joined #u-boot
walter has joined #u-boot
<marex> sigmaris: T ... tiny ... then it makes much more sense
quinq has joined #u-boot
<sigmaris> ah yes, SPL must just be Small Program Loader then
Stat_headcrabbed has joined #u-boot
jclsn has quit [Ping timeout: 264 seconds]
<bryanb> Tartarus: started working on some of the broken links and was surprised to see https://dev.ti.com/sysconfig
<bryanb> this works for me on the TI network. Is it really broken outside of our walled garden
jclsn has joined #u-boot
Stat_headcrabbed has quit [Quit: Stat_headcrabbed]
<mkorpershoek> bryanb: it seems to redirect to https://login.ti.com/ for me
<mkorpershoek> (and after logging in, it seems to land on a valid page)
<bryanb> ah ok. maybe there is some bot protections things being triggered. I guess i'll leave it be for now. Thanks mkorpershoek!
gsz has quit [Ping timeout: 259 seconds]
gsz has joined #u-boot
memset has quit [Remote host closed the connection]
memset has joined #u-boot
<marex> bryanb: lands me at TI SSO too
slobodan has quit [Ping timeout: 246 seconds]
<f_> sigmaris: TPL runs before SPL everywhere except on PowerPC
<bryanb> thanks marex!
<f_> that's where the "Tertiary Program Loader" name makes sense
<f_> no clue why it was done that way though, but it is what it is
<marex> SPL probably ran from PNOR, TPL from some limited locked cachelines or some such
<f_> hmmm
<marex> remember, board_f means board FLASH , code runs from flash with no or little memory
<marex> and that is memory mapped flash
<f_> interesting
slobodan has joined #u-boot
slobodan_ has joined #u-boot
slobodan has quit [Ping timeout: 260 seconds]
gsz has quit [Ping timeout: 242 seconds]
jclsn has quit [Ping timeout: 243 seconds]
jclsn has joined #u-boot
mmu_man has quit [Ping timeout: 248 seconds]
<Tartarus> bryanb: Perhaps a note saying login required would be helpful
<Tartarus> As it seems all of the tools linked off of dev.ti.com redirect to a login page
slobodan__ has joined #u-boot
slobodan_ has quit [Ping timeout: 254 seconds]
memset has quit [Remote host closed the connection]
slobodan has joined #u-boot
memset has joined #u-boot
slobodan__ has quit [Read error: Connection reset by peer]
mmu_man has joined #u-boot
Stat_headcrabbed has joined #u-boot
dsimic has quit [Ping timeout: 255 seconds]
dsimic has joined #u-boot
Stat_headcrabbed has quit [Quit: Stat_headcrabbed]
Stat_headcrabbed has joined #u-boot
<bryanb> Tartarus: yeah that's a good idea. I'll add a note
goliath has quit [Quit: SIGSEGV]
vagrantc has joined #u-boot
rfs613- is now known as rfs613
jclsn has quit [Ping timeout: 267 seconds]
jclsn has joined #u-boot
mckoan is now known as mckoan|away
devonian_invader has quit [Ping timeout: 246 seconds]
Stat_headcrabed1 has joined #u-boot
Stat_headcrabbed has quit [Ping timeout: 255 seconds]
Stat_headcrabed1 is now known as Stat_headcrabbed
devonian_invader has joined #u-boot
goliath has joined #u-boot
sszy has quit [Remote host closed the connection]
AlisonChaiken has joined #u-boot
memset has quit [Remote host closed the connection]
memset has joined #u-boot
jclsn has quit [Ping timeout: 242 seconds]
jclsn has joined #u-boot
Stat_headcrabbed has quit [Quit: Stat_headcrabbed]
mmu_man has quit [Ping timeout: 252 seconds]
warpme_ has joined #u-boot
m has quit [Quit: WeeChat 4.10.0]
m has joined #u-boot
jclsn has quit [Ping timeout: 253 seconds]
jclsn has joined #u-boot
warpme_ has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
mmu_man has joined #u-boot
persmule has quit [Remote host closed the connection]
persmule has joined #u-boot
memset has quit [Remote host closed the connection]
memset has joined #u-boot
pgreco has joined #u-boot
patersonc has quit [Quit: Connection closed for inactivity]
AlisonChaiken has quit [Remote host closed the connection]
pgreco_ has quit [Ping timeout: 252 seconds]
jclsn has quit [Ping timeout: 252 seconds]
jclsn has joined #u-boot
goliath has quit [Quit: SIGSEGV]
memset has quit [Remote host closed the connection]
memset has joined #u-boot
persmule has quit [Remote host closed the connection]
persmule has joined #u-boot
jclsn has quit [Ping timeout: 253 seconds]
jclsn has joined #u-boot
buinb has joined #u-boot
quinq has quit [Killed (NickServ (GHOST command used by buinb))]
buinb is now known as quinq
memset has quit [Remote host closed the connection]
memset has joined #u-boot
memset has quit [Remote host closed the connection]
memset has joined #u-boot
goliath has joined #u-boot
jclsn has quit [Ping timeout: 260 seconds]
jclsn has joined #u-boot
devonian_invader has quit [Ping timeout: 271 seconds]
mmu_man has quit [Ping timeout: 247 seconds]
mmu_man has joined #u-boot
devonian_invader has joined #u-boot
jclsn has quit [Ping timeout: 260 seconds]
jclsn has joined #u-boot
alperak has quit [Quit: Connection closed for inactivity]
memset has quit [Remote host closed the connection]
memset has joined #u-boot
slobodan has quit [Ping timeout: 255 seconds]
mmu_man has quit [Ping timeout: 255 seconds]
rber|res has quit [Ping timeout: 249 seconds]
rber|res has joined #u-boot
jclsn has quit [Ping timeout: 265 seconds]
jclsn has joined #u-boot
mmu_man has joined #u-boot
vagrantc has quit [Quit: leaving]
jclsn has quit [Ping timeout: 264 seconds]
jclsn has joined #u-boot
ldevulder has quit [Ping timeout: 249 seconds]
* shadow O_o