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
rvalue has quit [Ping timeout: 264 seconds]
gclement has quit [Quit: Leaving.]
rvalue has joined #armlinux
hanetzer has quit [Quit: WeeChat 4.1.2]
apritzel has quit [Ping timeout: 260 seconds]
jn has quit [Ping timeout: 256 seconds]
jn_ has joined #armlinux
jn_ has joined #armlinux
jclsn has quit [Ping timeout: 260 seconds]
jclsn has joined #armlinux
heat_ has joined #armlinux
heat has quit [Ping timeout: 246 seconds]
amitk has joined #armlinux
amitk has quit [Ping timeout: 268 seconds]
amitk has joined #armlinux
cbeznea_ has joined #armlinux
Peng_Fan has quit [Quit: Connection closed for inactivity]
sakman has quit [Ping timeout: 256 seconds]
monstr has joined #armlinux
monstr has quit [Ping timeout: 252 seconds]
Lucanis has quit [Ping timeout: 264 seconds]
Lucanis has joined #armlinux
Lockesmith has quit [Ping timeout: 255 seconds]
Lockesmith has joined #armlinux
apritzel has joined #armlinux
apritzel has quit [Ping timeout: 260 seconds]
gclement1 has joined #armlinux
headless has joined #armlinux
monstr has joined #armlinux
mvaittin has joined #armlinux
frieder has joined #armlinux
sszy has joined #armlinux
ezulian has joined #armlinux
nsaenz_ has quit [Remote host closed the connection]
<arnd>
Yes, it's v7 without Neon, which might explain how it gets a coprocessor exception that others don't get
ezulian has joined #armlinux
sally has quit [Ping timeout: 276 seconds]
elastic_dog has quit [Ping timeout: 240 seconds]
<arnd>
ardb: from the log, I would guess that it was trying to kill PID 1 after running into an undefined thumb2 instruction that was getting handled before. I checked the debian trixie systemd package and I see that this is built with -marm rather than -mthumb
<ardb>
should have some time to look into it this pm
<ardb>
hmm maybe not - removing that tstne should not result in more opcodes being rejected
<ardb>
ah hold on - register_iwmmxt_undef_handler() only covers ARM mode
<ardb>
but those only exist in an ARM encoding iirc
heat has joined #armlinux
<ardb>
would be good to know which opcode triggers the undef in this case
heat_ has quit [Read error: Connection reset by peer]
heat has quit [Remote host closed the connection]
heat has joined #armlinux
nsaenz has joined #armlinux
nsaenz has quit [Read error: Connection reset by peer]
<arnd>
ardb: I see that this cpu has iWMMXt, so glibc will use ldfp/stfp instructions in setjump and setcontext. These are 32-bit thumb2 instructions, and it looks like the idea is that they call iwmmxt_undef_handler to enable iwmmxt support
nsaenz has joined #armlinux
headless has quit [Quit: Konversation terminated!]
<arnd>
the user could verify this by building a kernel without iWMMXT support, in which case glibc should not try to save/restore the register state for it
nsaenz_ has joined #armlinux
nsaenz has quit [Ping timeout: 260 seconds]
prabhakarlad has joined #armlinux
nsaenz_ has quit [Remote host closed the connection]
nsaenz has joined #armlinux
apritzel has joined #armlinux
prabhakarlad has quit [Quit: Client closed]
nsaenz_ has joined #armlinux
nsaenz has quit [Ping timeout: 240 seconds]
vingu has quit [Quit: Leaving.]
vingu has joined #armlinux
nsaenz_ has quit [Remote host closed the connection]
nsaenz has joined #armlinux
prabhakarlad has joined #armlinux
nsaenz_ has joined #armlinux
headless has joined #armlinux
nsaenz has quit [Ping timeout: 255 seconds]
nsaenz_ has quit [Remote host closed the connection]
robmur01 has joined #armlinux
headless has quit [Quit: Konversation terminated!]
nsaenz has joined #armlinux
Lockesmith has quit [Remote host closed the connection]
Lockesmith has joined #armlinux
Lockesmith has quit [Remote host closed the connection]
Lockesmith has joined #armlinux
psydroid has joined #armlinux
<ardb>
arnd: are those instructions documented anywhere?
kwilczynski has quit [Ping timeout: 268 seconds]
jbowen has quit [Ping timeout: 268 seconds]
ndesaulniers has quit [Ping timeout: 268 seconds]
abelloni has quit [Ping timeout: 268 seconds]
zx2c4 has quit [Ping timeout: 268 seconds]
mkorpershoek has quit [Ping timeout: 268 seconds]
ukleinek has quit [Ping timeout: 268 seconds]
hays has quit [Ping timeout: 268 seconds]
kwilczynski has joined #armlinux
jbowen has joined #armlinux
zx2c4 has joined #armlinux
ukleinek has joined #armlinux
abelloni has joined #armlinux
mkorpershoek has joined #armlinux
ndesaulniers has joined #armlinux
<arnd>
ardb: I think I saw a document for them before. I also noticed I got the opcodes wrong here, as these are overloaded with other coprocessors
<ardb>
i see stcl/ldcl
<arnd>
when I disassemble the binary with objdump -dr -miwmmxt, I get things like
<arnd>
0: ecfc a102 wldrd wr10, [ip], #8
<arnd>
without -miwmmxt, the same binary disassembles to
<arnd>
interestingly, the ldcl mnemonic can be built with either -marm or -mthumb, and objdump can interpret it as wldrd in either mode as well
<arnd>
but I have not found any way to give gcc or gas an input with wldrd in thumb mode
<ardb>
yeah the non-conditional encoding is identical
<ardb>
so coproc #1 is shared between FPA and iWMMXt so it is safe to assume that any user accesses from thumb mode are the latter
<ardb>
so i'll just add the thumb encodings of ldc/stc to iwmmxt_undef_handler
<ardb>
(involving p1)
<robmur01>
I guess the intersection of things supporting iWMMXT and things supporting Thumb-2 is small enough to have gone unnoticed :)
nsaenz_ has joined #armlinux
<ardb>
clearly
nsaenz has quit [Ping timeout: 260 seconds]
<arnd>
ah, I assumed armada370 and armadaxp had iwmmxt, but it looks like they don't, that certainly explains a lot
<arnd>
dove (cubox) used to be fairly common, and this is pj4 with both iwmmxt and vfpv3-d16, while the later ones still have vfpv3-d16 but no iwmmxt
sakman has joined #armlinux
sudeepholla_ has quit [Ping timeout: 240 seconds]
<arnd>
I found the datasheet for MMP3 (PXA2128), this was probably the last one to use iWMMXt, and was used in the OLPC XO4 laptop but not much else
<arnd>
ah, and the Wyse 3020 thin client that linusw__ mentioned the other day ;-)
nsaenz_ has quit [Remote host closed the connection]
nsaenz has joined #armlinux
<linusw__>
I haven't tried to boot mainline on it yet, it's on my TODO!
<arnd>
linusw__: when you do get around to testing it, see the bug at https://bugzilla.kernel.org/show_bug.cgi?id=218427 that we're discussing right now, which means you won't be able to boot with linux-6.6 or higher until it's fixed, at least with CONFIG_IWMMXT enabled
<linusw__>
ouff good to know!
<arnd>
for reference, it looks like we have at least three different FPU combinations on PJ4: vfpv3-d16+iwmmxt (dove, mmp2), vfpv3-d16 only (370, xp), and vfpv3-d32+iwmmxt+neon (berlin, mmp3)