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
amitk has joined #armlinux
amitk_ has joined #armlinux
amitk_ has quit [Ping timeout: 268 seconds]
jclsn has quit [Ping timeout: 265 seconds]
jclsn has joined #armlinux
hanetzer has quit [Ping timeout: 265 seconds]
hanetzer has joined #armlinux
iivanov has joined #armlinux
amitk_ has joined #armlinux
chip__ has joined #armlinux
chip_x has quit [Ping timeout: 260 seconds]
headless has joined #armlinux
Lucanis has joined #armlinux
Lucanis0 has quit [Ping timeout: 246 seconds]
apritzel has joined #armlinux
<mriesch>
broonie: thing is that hardware engineers aren't famous for fulfilling expectations...
<mriesch>
for instance, the Ethernet phy voltages aren't always on in our hardware
<mriesch>
so i guess i would need to tell the phy/mac driver not to turn those off at shutdown
<mriesch>
(for wake on LAN)
apritzel has quit [Ping timeout: 246 seconds]
guillaume_g has joined #armlinux
matthias_bgg has joined #armlinux
monstr has joined #armlinux
chip__ has quit [Remote host closed the connection]
sszy has joined #armlinux
viorel_suman has joined #armlinux
frieder has joined #armlinux
marshmallow has joined #armlinux
<arnd>
ardb: as far as I know, mach-lpc32xx is the only supported armv5 with vfp, but it's often used as softfloat because users are not even aware of it being an option, or because they use a binary distro that doesn't have armv5+vfp as a target
<ardb>
arnd: ok so that explains why the CPU_FEROCEON doesn't break anything else in multi_v5
marshmallow has quit [Changing host]
marshmallow has joined #armlinux
<ardb>
but once you combine v5 and v6, this needs to be fixed
<arnd>
yes, of course. And I expect a number of other bugs like this, where we decided at some point that some combination of features can never happen
<ardb>
85d6943af50537d3aec58b967ffbd3fec88453e9
<mvaittin>
mriesch: I would expect that the regulators powering the ethernet phy should then have the always-on set. That should be enough to prevent the consumers being able to shut down the regulator.
<mvaittin>
As far as I know the shutdown may not be controlled by consumers in a level of individual regulators though
<mvaittin>
Eg, it may be the shutdown is requested from the PMIC as a 'state transition' - which sets all the power rails to predefined shutdown state.
<mvaittin>
in which case the consumers like phy driver may not have a word on the power state
<mvaittin>
Also, in those cases the always-on is also likely to be ignored
<mvaittin>
but this all probably depends on the PMIC you have
<arnd>
ardb: interesting, I wasn't aware that we support VFP on feroceon-type codes at all. I see it was introduced in e50d64097b6e ("[ARM] Marvell Feroceon CPU core support") but that just explains that the CPU core has the option, though I don't see any reference to a SoC that has it
<ardb>
arnd: the fact that it required a quirk suggests that someone built it
<ardb>
but whether it ever existed in the field, I have no clue
headless has quit [Ping timeout: 250 seconds]
<arnd>
Documentation/arm/marvell.rst has a little more information, explaining that which CPUID values are the ones that can have it. Apparently the later Mohawk/PJ1 no longer had the option but only offered optional iWMMXt that was used only in mach-mmp
<ardb>
iow, we can probably just ignore it
<ardb>
that quirks breaks other VFP implementations rather badly, so perhaps we should just drop the quirk?
<ardb>
doesn
prabhakarlad has joined #armlinux
<ardb>
't seem worth it to make CPU_FEROCEON non-multi-compatible
<arnd>
The #ifdef still has to be addressed, because CPU_FEROCEON + CPU_V6 is exactly the configuration that a Debian kernel for Orion5X+RaspberryPi would use
<ardb>
but Orion5X has no VFP, right?
<arnd>
That was my understanding so far, but I also didn't think that VFP was even an option
<ardb>
so the quirk has to #ifdef on some other kconfig symbol, and that one should prevent it from being in a combined image
<arnd>
There are a couple of Marvell/Feroceon platforms that we never supported upstream, and at least one (mach-loki) that we removed while I was around
<arnd>
Ok, so I was the one who added the information about VFP in the marvell.rst file, meaning I either found a reference on the web at the time, or I made a mistake and just listed VFP for anything that lacks iWMMXt
<arnd>
CPU_FEROCEON_OLD_ID is in a similar category
<ardb>
ok so it would be nice if we could deal with this in a multi v5/v6 kernel as well
<mriesch>
mvaittin: ah ok, i wasn't sure whether regulator-always-on; would have this effect. in this case i can focus on what the pmic does
<arnd>
ardb: it might be easier to just disallow VFP support on those. I checked every supported machine with the affected SoCs now, and found that there are none with DT support and only three remaining board files in linux-6.3, after I just removed the five unused ones
<arnd>
terastation_pro2, ts409 and buffalow-wxl are the remaining ones.
<ardb>
arnd: VFP detection uses undef trapping, so we'd have to add an explicit platform type check
<mvaittin>
mriesch: I think the regulator core should prevent consumers from disabling always-on regulators.
<arnd>
ardb: I'll ask on #miraheze-bufalonas if anyone is actually still using one the three machines with new kernels (I guess yes) and if they have ever used the FPU (I guess no). Fairly sure nobody else is doing it. We had one person asking about debian on another orion5x this year, but they ended up installing an Debian oldoldstable because of memory limitations
<ardb>
arnd: so without the quirk, VFP on Feroceon doesn't work quite as expected (it keeps restarting the same instruction until it is interrupted for another reason) but at least it doesn't corrupt the data
<arnd>
ok, good to know. So the question then is how much effort we would spend on turning an endless loop into a SIGILL
<arnd>
ardb: is there a way to hard-disable the VFP in cpu_feroceon_proc_init() through some register?
<ardb>
good question
<ardb>
ah yes here is
<ardb>
just call vfp_disable
cbeznea has joined #armlinux
chipxxx has joined #armlinux
<broonie>
mriesch: Right, if the PHY is supposed to be wake on LAN then powering it off seems like a driver bug.
<broonie>
always-on would fix it.
<broonie>
But the driver probably shouldn't be doing that at all.
chip_x has joined #armlinux
chipxxx has quit [Ping timeout: 260 seconds]
chipxxx has joined #armlinux
chip_x has quit [Ping timeout: 260 seconds]
apritzel has joined #armlinux
viorel_suman has quit [Quit: WeeChat 3.6]
viorel_suman has joined #armlinux
<arnd>
ardb: 1000001101000 on #miraheze-bufalonas confirmed that they are still using two of the three machines, as well as providing debian images for them, but they don't mind having the FPU disabled as nobody is using it with Debian armel
headless has quit [Quit: Konversation terminated!]
amitk_ has quit [Ping timeout: 268 seconds]
<ardb>
arnd: armhf, right?
<ardb>
ok so we could either rip it out right away, or wait until the v5/v6 thing materializes
<arnd>
Clearly they are not using armhf as it's a v5. I meant they are not using any code on armel that was compiled with -march=armv5te+fp -mfloat-abi=soft-fp, which I think would work right now if they tried.
<ardb>
ah yes, probably
elastic_1 has joined #armlinux
elastic_dog has quit [Killed (mercury.libera.chat (Nickname regained by services))]
elastic_1 is now known as elastic_dog
chipxxx has quit [Remote host closed the connection]
matthias_bgg has quit [Ping timeout: 246 seconds]
matthias_bgg has joined #armlinux
monstr has quit [Remote host closed the connection]
matthias_bgg has quit [Ping timeout: 255 seconds]
guillaume_g has quit [Quit: Konversation terminated!]