prabhakalad has quit [Quit: Konversation terminated!]
prabhakalad has joined #u-boot
stgloor has joined #u-boot
LetoThe2nd has quit [Ping timeout: 260 seconds]
Crofton has quit [Ping timeout: 260 seconds]
davlefou has quit [Ping timeout: 260 seconds]
lvrp16 has quit [Ping timeout: 260 seconds]
NishanthMenon has quit [Ping timeout: 260 seconds]
stgl has quit [Ping timeout: 260 seconds]
stgloor is now known as stgl
LetoThe2nd has joined #u-boot
lvrp16 has joined #u-boot
NishanthMenon has joined #u-boot
Crofton has joined #u-boot
davlefou has joined #u-boot
ndeuteron has joined #u-boot
<ndeuteron>
Hi. Is there some existing facility to do what u-boot does in `image_setup_libfdt` but in userspace?
<ndeuteron>
The problem I have is that kexec can't work with a new kernel and device tree because some things are missing from the dtb. They would normally be populated by u-boot before the kernel is booted, but obviously this doesn't happen when using kexec.
warpme has joined #u-boot
sszy has joined #u-boot
frieder has joined #u-boot
Clamor has quit [Ping timeout: 252 seconds]
Clamor has joined #u-boot
<marex>
ndeuteron: cant kexec pick up the content of /sys/firmware/devicetree somehow ?
<ndeuteron>
marex: It can, but that device tree doesn't necessarily work with the new kernel.
<marex>
ndeuteron: how so ?
<marex>
ndeuteron: can you modify it (dtc -I dtb -O dts ... ; dtc -I dts -O dtb ...) to make it work ?
<ndeuteron>
Because people break stuff all the time. It's never backwards compatible.
<ndeuteron>
One time they changed a bunch of (start, end) pairs to (offset, length) :(
<marex>
DT is ABI , that shouldn't happen unless this is some downstream stuff
<ndeuteron>
Yeah, this is in-house company stuff.
<ndeuteron>
The DTB part is compatible, but they add fields that the new kernels then require, etc.
<ndeuteron>
There's a whole bunch of stuff that has no business being in the device tree either, unfortunately.
<ndeuteron>
Oh, I can just use fdtoverlay.
<marex>
indeed
<ndeuteron>
I suppose that may leave some things behind if the new dtb removes stuff, but... hopefully that's not a problem.
<marex>
right, /delete-node/ and /delete-property/ does not work with DTO, but I am not sure if it does not work with fdtoverlay in userspace, that is part of DTC, so it just might
<marex>
in the worst case, you can postprocess the DT using plain DTC, decompile it, remove the nodes/props, recompile
<marex>
ndeuteron: you can also decompile the DT, concatenate another DT at the end, and recompile the result ; then the DTC would pick up on its syntax sugar like /delete-node/ and that would work ...
<ndeuteron>
marex: Thanks. I think we are going to add some bootloader support to just be able to boot a kernel *once*.
<ndeuteron>
That's what we really want, instead of using kexec.
<ndeuteron>
Like, set some bit in an eeprom, and it'll clear that bit on startup and then boot from /boot.once if it was set.
memset has quit [Remote host closed the connection]
memset has joined #u-boot
mmu_man has joined #u-boot
Jones42 has joined #u-boot
Clamor has quit [Read error: Connection reset by peer]
Clamor has joined #u-boot
<marex>
ndeuteron: what are you trying to achieve anyway ?
<marex>
ndeuteron: U-Boot already does have DTO application support if that's what you are after
<ndeuteron>
We want to be able to boot a new image, but not commit to it until it gets up and running and the operator confirms it is working.
<marex>
ndeuteron: isnt that classical A/B update scheme ?
enok has joined #u-boot
<ndeuteron>
marex: In essesence, yes.
<ndeuteron>
Err, essence.
<ndeuteron>
We don't have two separate partitions though.
<ndeuteron>
We have a deduplicating package format so we can have multiple platform images on the device at once, whilst paying very little in terms of storage cost for the second and subsequent images.
<ndeuteron>
Makes OTA updates fast too, since you can avoid transferring most of the package contents.
<marex>
some sort of delta upgrade/update thingie ?
<marex>
well, can you have two kernel images at least ?
<ndeuteron>
Yes and yes.
<ndeuteron>
We build a /boot directory that hard links all the bits and pieces from the "real" platform image and the bootloader boots from there.
enok has quit [Ping timeout: 248 seconds]
<ndeuteron>
I don't know how custom our u-boot setup is. It's a fair bit more complicated than what I have seen before with the BeagleBoard Black.
<marex>
ndeuteron: so maybe just use some volatile bit in the SoC to select "the other kernel copy" and trigger a reboot ?
<ndeuteron>
Yeah, that's the idea.
<marex>
:)
<ndeuteron>
It's just a coordination thing. The team that does the bootloader is in a different timezone, and supports a bunch of other customers, so...
<ndeuteron>
That's why we went with the kexec approach in the first place. We didn't need to bother them, but now here we are.
<marex>
yep
Clamor has quit [Ping timeout: 260 seconds]
Clamor has joined #u-boot
m5zs7k has quit [Ping timeout: 244 seconds]
m5zs7k has joined #u-boot
memset has quit [Remote host closed the connection]
memset has joined #u-boot
vfazio has joined #u-boot
memset has quit [Remote host closed the connection]
memset has joined #u-boot
rvalue has quit [Ping timeout: 252 seconds]
flom84 has joined #u-boot
rvalue has joined #u-boot
enok has joined #u-boot
warpme has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
enok has quit [Ping timeout: 260 seconds]
warpme has joined #u-boot
alan_o has joined #u-boot
Perflosopher1 has joined #u-boot
Perflosopher has quit [Ping timeout: 248 seconds]
Perflosopher1 is now known as Perflosopher
flom84 has quit [Ping timeout: 244 seconds]
memset has quit [Remote host closed the connection]
memset has joined #u-boot
flom84 has joined #u-boot
goliath has quit [Quit: SIGSEGV]
dsimic has quit [Ping timeout: 255 seconds]
dsimic has joined #u-boot
Jones42 has quit [Ping timeout: 260 seconds]
ikarso has quit [Quit: Connection closed for inactivity]
Clamor has quit [Read error: Connection reset by peer]
Clamor has joined #u-boot
Stat_headcrabed has joined #u-boot
mmu_man has quit [Ping timeout: 248 seconds]
warpme has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
tgamblin_ is now known as tgamblin
Clamor has quit [Ping timeout: 272 seconds]
goliath has joined #u-boot
Clamor has joined #u-boot
Clamor has quit [Read error: Connection reset by peer]
Clamor has joined #u-boot
Clamor has quit [Ping timeout: 255 seconds]
Clamor has joined #u-boot
Clamor has quit [Ping timeout: 255 seconds]
mmu_man has joined #u-boot
Clamor has joined #u-boot
frieder has quit [Remote host closed the connection]
warpme has joined #u-boot
warpme has quit [Client Quit]
crb has quit [Quit: This computer has gone to sleep]
crb has joined #u-boot
Stat_headcrabed has quit [Quit: Stat_headcrabed]
crb has quit [Quit: This computer has gone to sleep]