ChanServ changed the topic of #armlinux to: ARM kernel talk [Upstream kernel, find your vendor forums for questions about their kernels] | https://libera.irclog.whitequark.org/armlinux
prabhakalad has quit [Ping timeout: 255 seconds]
prabhakalad has joined #armlinux
prabhakalad has quit [Ping timeout: 272 seconds]
prabhakalad has joined #armlinux
TheCoffeMaker_ has quit [Ping timeout: 260 seconds]
TheCoffeMaker has joined #armlinux
jclsn has quit [Ping timeout: 255 seconds]
jclsn has joined #armlinux
System_Error has quit [Remote host closed the connection]
System_Error has joined #armlinux
System_Error has quit [Remote host closed the connection]
<krzk>
pivi: it's downstream idea, what else to expect from NXP?
gclement has quit [Ping timeout: 256 seconds]
gclement has joined #armlinux
gclement has quit [Quit: Leaving.]
gclement has joined #armlinux
Misotauros is now known as misanthropos
gclement1 has joined #armlinux
gclement has quit [Read error: Connection reset by peer]
wens has quit [Ping timeout: 268 seconds]
wens has joined #armlinux
misanthropos has quit [Quit: ZNC 1.8.2+deb2+b1 - https://znc.in]
nsaenz has joined #armlinux
nsaenz has quit [Remote host closed the connection]
nsaenz has joined #armlinux
<pivi>
krzk: I always try to have an optimistic mindset ... not that it always works ...
headless has joined #armlinux
misanthropos has joined #armlinux
misanthropos has quit [Remote host closed the connection]
misanthropos has joined #armlinux
sszy has joined #armlinux
prabhakalad has quit [Quit: Konversation terminated!]
prabhakalad has joined #armlinux
<krzk>
yeah, to be honest, idea is quite creative and probably works fine... but it does not look like correct hardware description :)
<krzk>
DT is for non-discoverable hardware so to solve the "non-discoverable" they added such mux and auto-discovery via dt :)
wil has quit [Read error: Connection reset by peer]
<javierm>
pivi: the correct solution for this case would be for them to use DT overlays I think
wil has joined #armlinux
cbeznea has joined #armlinux
cbeznea_ has quit [Ping timeout: 252 seconds]
<pivi>
javierm: I do not know the specific hardware, but another alternative would be to have the nodes disabled and have a fixup in the firmware (U-Boot in their case). In my mind overlays work better for stuff you can plug into a board, not for soldered-down differences. Or even better, 2 dts file (with a common dtsi) and some runtime selection in the firmware
<pivi>
This last proposal I wrote would probably be the most correct one.
<javierm>
pivi: it seemed that they wanted to avoid the multiple dts with a shared dtsi, and I can understand why because in the long term I found that's a maintanance burden
<javierm>
specially if one has other different IP blocks between board revisions. But is just my opinion
<pivi>
javierm: yes, but thinking at it once more it is really the correct solution. two dts, with just this change on the audio codec, and everything else in a shared dtsi. You can implemente the file selection in U-Boot, but you are not creating any coupling with the firmware (you can always select the file you want, no matter you use barebox or anything else)
<javierm>
so while it was originally conceived for expansion boards, I believe that is a more general solution for this problem than having a bunch of dts files with shared dtsi
<pivi>
javierm: IF your firmware supports dtbo yes. With that said probably for "soldered-down" variants it's just a matter of taste. If the firmware can load the correct dtbo, can with the same logic select the correct dtb
luispm has joined #armlinux
<javierm>
pivi: agreed, as said there are different trade offs with both approaches
headless has quit [Quit: Konversation terminated!]
iivanov has quit [Ping timeout: 264 seconds]
iivanov has joined #armlinux
gclement1 has quit [Ping timeout: 256 seconds]
gclement has joined #armlinux
ungeskriptet1 has joined #armlinux
ungeskriptet has quit [Ping timeout: 264 seconds]
ungeskriptet1 is now known as ungeskriptet
prabhakar has quit [Quit: Connection closed]
prabhakarlad has joined #armlinux
psydroid has joined #armlinux
headless has joined #armlinux
atorgue99 has joined #armlinux
atorgue99 has quit [Client Quit]
atorgue99 has joined #armlinux
ungeskriptet4 has joined #armlinux
ungeskriptet has quit [Ping timeout: 256 seconds]
ungeskriptet4 is now known as ungeskriptet
snalty has quit [Read error: Connection reset by peer]
Livio has joined #armlinux
snalty has joined #armlinux
vingu has quit [Ping timeout: 255 seconds]
vingu has joined #armlinux
atorgue99 has quit [Ping timeout: 250 seconds]
Livio has quit [Ping timeout: 260 seconds]
headless has quit [Quit: Konversation terminated!]
mvaittin has quit [Ping timeout: 256 seconds]
iivanov has quit [Remote host closed the connection]
iivanov has joined #armlinux
gclement1 has joined #armlinux
nsaenz has quit [Ping timeout: 246 seconds]
tambarus has joined #armlinux
gclement2 has joined #armlinux
gclement has quit [Ping timeout: 255 seconds]
iivanov has quit []
<cambrian_invader>
yeah, but is there really any reason for this to be in the "firmware"
<cambrian_invader>
linux is just as capable of determining what hardware is present as the bootloader is
gclement2 has quit [Quit: Leaving.]
gclement has joined #armlinux
gclement has quit [Client Quit]
gclement1 has quit [Ping timeout: 264 seconds]
<krzk>
cambrian_invader: by combining multiple DTS into one and then probing GPIOs :)
<robmur01>
hardly - it's not uncommon for board variants to be encoded by resistors or links, wherein it's dead easy for a platform-specific bootloader to hard-code reading a set of GPIOs or ADC value to determine which DTB to offer; a generic multiplatform kernel cannot do that
<robmur01>
snap!
<cambrian_invader>
of course a generic kernel can do that
<cambrian_invader>
just write a driver to read the GPIOs and instantiate the appropriate drivers
<robmur01>
OK, and how does it know it needs to loads *that* driver before it has a DT?
<cambrian_invader>
you put that device in the devicetree
<cambrian_invader>
and the rest is done with swnodes
<robmur01>
OK, so we have two board variants with different PMICs, how do we turn on the right PMIC regulator to power the ADC to determine which PMIC we have? ;)
<krzk>
cambrian_invader: to some level your idea is very good and it follows usual recommendation for devices with version register etc: if you can autodetect in the driver, use it.
<krzk>
cambrian_invader: but if devices are different and you need different supplies or different pins, what to do?
<krzk>
cambrian_invader: basically you embed DTS inside driver and keep it as C code?
<krzk>
I mean, indirectly, via instantiating swnodes?
<cambrian_invader>
it's up to the board integrator to make the decision here; if you have such different devices that they need completely different power supplies and sequencing, then you're going to need some GPIOs or EEPROM etc. to determine the present hardware
<krzk>
This reminds me some concept... how was it... board files? :)
<cambrian_invader>
yes :)
<cambrian_invader>
and of course, people hate having to carry patches to add board support when they could just use a devicetree
<cambrian_invader>
so this is why we have these sort of things crop up so often
<cambrian_invader>
if you tell them "just detect things in the bootloader" it doesn't help because they still have to maintain patches
<krzk>
I still like the idea that U-boot should do the board detection and just load appropriate DTS + overlay
<krzk>
but I agree that we could do something similar in the kernel, if we really needed/wanted
<pivi>
cambrian_invader: why should I mantain patches for this bootloader code?
<cambrian_invader>
I mean you can always just "get off" the update schedule
<cambrian_invader>
but you had better have all the features you want in your bootloader when you fork
<cambrian_invader>
or otherwise you have to start backporting
<pivi>
cambrian_invader: I'm not following your reasoning for the bootloader patches. Either you have your own firmware that you mantain, or you use some code that is maintained (u-boot? barebox?) and you just send you patches upstream
<pivi>
cambrian_invader: no patches to carry
<cambrian_invader>
but until these get upstream, you have to carry them
<cambrian_invader>
if you are someone like NXP, you have years and years of patches to upstream
<cambrian_invader>
and they do work on this, but it takes a long time
<cambrian_invader>
limited reviewer eyeballs and so forth
<pivi>
cambrian_invader: you cannot take a bad actor and use it as an example to say that cinema sucks
<cambrian_invader>
they are not a bad actor?
<cambrian_invader>
they are pretty average IMO
<cambrian_invader>
and this is how every board vendor works
<pivi>
ok, let me rephrase. if you decide to not upstream patches and to carry those in your downstream branch for years is your decision.
<pivi>
cambrian_invader: well, I am a board vendor and no, we are not like that
System_Error has quit [Remote host closed the connection]
System_Error has joined #armlinux
<pivi>
(yes, I agree NXP is an average actor, not a bad one)