RFI: powerpc cpus supporting BLRM for MSR_LE
Mark Cave-Ayland
mark.cave-ayland at ilande.co.uk
Sat Sep 13 05:21:10 AEST 2025
Hi everyone,
I apologise if this is considered off-topic, however I'm aware that there are many
people on this list with years of experience of PPC CPUs who may be able to help.
As part of my work on the QEMU Mac machines, I've been working on an implementation
of BLRM "Byte Lane Reverse and Munge" [1] to support a developer working on running
WinNT PPC under QEMU.
Whilst the patch is fairly complete, the problem I have is that there doesn't appear
to be a concise list of CPUs that use BLRM (as opposed to proper LE memory accesses)
when MSR_LE is enabled.
From what I can gather all 64-bit CPUs use proper LE memory accesses, but it's not
clear whether for 32-bit CPUs the use of BLRM can be derived from the PVR or other
CPU registers.
Can anyone provide any insight as to which CPUs make use of BLRM for MSR_LE? For
reference the 32-bit CPUs emulated by QEMU are as follows:
$ ./build/qemu-system-ppc -cpu ?
Available CPUs:
603 PVR 00030100
mpc8240 (alias for 603)
vanilla (alias for 603)
604 PVR 00040103
ppc32 (alias for 604)
ppc (alias for 604)
603e_v1.1 PVR 00060101
603e_v1.2 PVR 00060102
603e_v1.3 PVR 00060103
603e_v1.4 PVR 00060104
603e_v2.2 PVR 00060202
603e_v3 PVR 00060300
603e_v4 PVR 00060400
603e_v4.1 PVR 00060401
603e (alias for 603e_v4.1)
stretch (alias for 603e_v4.1)
603p PVR 00070000
603e7v PVR 00070100
vaillant (alias for 603e7v)
603e7v1 PVR 00070101
603e7 PVR 00070200
603e7v2 PVR 00070201
603e7t PVR 00071201
603r (alias for 603e7t)
goldeneye (alias for 603e7t)
740_v1.0 PVR 00080100
740e PVR 00080100
750_v1.0 PVR 00080100
750_v2.0 PVR 00080200
740_v2.0 PVR 00080200
750e PVR 00080200
750_v2.1 PVR 00080201
740_v2.1 PVR 00080201
750_v2.2 PVR 00080202
740_v2.2 PVR 00080202
750_v3.0 PVR 00080300
740_v3.0 PVR 00080300
750_v3.1 PVR 00080301
750 (alias for 750_v3.1)
typhoon (alias for 750_v3.1)
g3 (alias for 750_v3.1)
740_v3.1 PVR 00080301
740 (alias for 740_v3.1)
arthur (alias for 740_v3.1)
750cx_v1.0 PVR 00082100
750cx_v2.0 PVR 00082200
750cx_v2.1 PVR 00082201
750cx_v2.2 PVR 00082202
750cx (alias for 750cx_v2.2)
750cxe_v2.1 PVR 00082211
750cxe_v2.2 PVR 00082212
750cxe_v2.3 PVR 00082213
750cxe_v2.4 PVR 00082214
750cxe_v3.0 PVR 00082310
750cxe_v3.1 PVR 00082311
745_v1.0 PVR 00083100
755_v1.0 PVR 00083100
755_v1.1 PVR 00083101
745_v1.1 PVR 00083101
755_v2.0 PVR 00083200
745_v2.0 PVR 00083200
755_v2.1 PVR 00083201
745_v2.1 PVR 00083201
755_v2.2 PVR 00083202
745_v2.2 PVR 00083202
755_v2.3 PVR 00083203
745_v2.3 PVR 00083203
755_v2.4 PVR 00083204
745_v2.4 PVR 00083204
755_v2.5 PVR 00083205
745_v2.5 PVR 00083205
755_v2.6 PVR 00083206
745_v2.6 PVR 00083206
755_v2.7 PVR 00083207
745_v2.7 PVR 00083207
745_v2.8 PVR 00083208
745 (alias for 745_v2.8)
755_v2.8 PVR 00083208
755 (alias for 755_v2.8)
goldfinger (alias for 755_v2.8)
750cxe_v2.4b PVR 00083214
750cxe_v3.1b PVR 00083311
750cxe (alias for 750cxe_v3.1b)
750cxr PVR 00083410
750cl_v1.0 PVR 00087200
750cl_v2.0 PVR 00087210
750cl (alias for 750cl_v2.0)
750l_v2.0 PVR 00088200
750l_v2.1 PVR 00088201
750l_v2.2 PVR 00088202
750l_v3.0 PVR 00088300
750l_v3.2 PVR 00088302
750l (alias for 750l_v3.2)
lonestar (alias for 750l_v3.2)
604e_v1.0 PVR 00090100
604e_v2.2 PVR 00090202
604e_v2.4 PVR 00090204
604e (alias for 604e_v2.4)
sirocco (alias for 604e_v2.4)
604r PVR 000a0101
mach5 (alias for 604r)
7400_v1.0 PVR 000c0100
7400_v1.1 PVR 000c0101
7400_v2.0 PVR 000c0200
7400_v2.1 PVR 000c0201
7400_v2.2 PVR 000c0202
7400_v2.6 PVR 000c0206
7400_v2.7 PVR 000c0207
7400_v2.8 PVR 000c0208
7400_v2.9 PVR 000c0209
7400 (alias for 7400_v2.9)
g4 (alias for 7400_v2.9)
g2 PVR 00810011
mpc603 PVR 00810100
g2hip3 PVR 00810101
mpc8250_hip3 (alias for g2hip3)
mpc8255_hip3 (alias for g2hip3)
mpc8260_hip3 (alias for g2hip3)
mpc8264_hip3 (alias for g2hip3)
mpc8265_hip3 (alias for g2hip3)
mpc8266_hip3 (alias for g2hip3)
mpc8343 PVR 00830010
mpc8347at PVR 00830010
mpc8347a (alias for mpc8347at)
e300c1 PVR 00830010
mpc8349a PVR 00830010
mpc8343ea PVR 00830010
mpc8349e PVR 00830010
mpc8347ep PVR 00830010
mpc8347p PVR 00830010
mpc8347eap PVR 00830010
mpc8349 PVR 00830010
mpc8347et PVR 00830010
mpc8347e (alias for mpc8347et)
mpc8347t PVR 00830010
mpc8347 (alias for mpc8347t)
mpc8343a PVR 00830010
mpc8347eat PVR 00830010
mpc8347ea (alias for mpc8347eat)
mpc8347ap PVR 00830010
mpc8349ea PVR 00830010
mpc8343e PVR 00830010
e300c2 PVR 00840010
e300c3 PVR 00850010
e300 (alias for e300c3)
mpc8379e PVR 00860010
e300c4 PVR 00860010
mpc8377e PVR 00860010
mpc8377 PVR 00860010
mpc8378 PVR 00860010
mpc8379 PVR 00860010
mpc8378e PVR 00860010
740p PVR 10080000
750p PVR 10080000
conan/doyle (alias for 750p)
460exb PVR 130218a4
460ex (alias for 460exb)
440epx PVR 200008d0
405d2 PVR 20010000
x2vp4 PVR 20010820
x2vp7 (alias for x2vp4)
x2vp20 PVR 20010860
x2vp50 (alias for x2vp20)
405gpa PVR 40110000
405gpb PVR 40110040
405cra PVR 40110041
405gpc PVR 40110082
405gpd PVR 401100c4
405gp (alias for 405gpd)
405crb PVR 401100c5
405crc PVR 40110145
405cr (alias for 405crc)
405gpe (alias for 405crc)
stb03 PVR 40310000
npe4gs3 PVR 40b10000
npe405h PVR 414100c0
npe405h2 PVR 41410140
405ez PVR 41511460
npe405l PVR 416100c0
stb04 PVR 41810000
405d4 PVR 41810000
405 (alias for 405d4)
405lp PVR 41f10000
440epa PVR 42221850
440epb PVR 422218d3
440ep (alias for 440epb)
405gpr PVR 50910951
405ep PVR 51210950
stb25 PVR 51510950
750fx_v1.0 PVR 70000100
750fx_v2.0 PVR 70000200
750fx_v2.1 PVR 70000201
750fx_v2.2 PVR 70000202
750fx_v2.3 PVR 70000203
750fx (alias for 750fx_v2.3)
750fl PVR 70000203
750gx_v1.0 PVR 70020100
750gx_v1.1 PVR 70020101
750gl PVR 70020102
750gx_v1.2 PVR 70020102
750gx (alias for 750gx_v1.2)
440-xilinx-w-dfpu PVR 7ff21910
440-xilinx PVR 7ff21910
7450_v1.0 PVR 80000100
7450_v1.1 PVR 80000101
7450_v1.2 PVR 80000102
7450_v2.0 PVR 80000200
7441_v2.1 PVR 80000201
7450_v2.1 PVR 80000201
7450 (alias for 7450_v2.1)
vger (alias for 7450_v2.1)
7451_v2.3 PVR 80000203
7451 (alias for 7451_v2.3)
7441_v2.3 PVR 80000203
7441 (alias for 7441_v2.3)
7451_v2.10 PVR 80000210
7441_v2.10 PVR 80000210
7455_v1.0 PVR 80010100
7445_v1.0 PVR 80010100
7455_v2.1 PVR 80010201
7445_v2.1 PVR 80010201
7455_v3.2 PVR 80010302
7455 (alias for 7455_v3.2)
apollo6 (alias for 7455_v3.2)
7445_v3.2 PVR 80010302
7445 (alias for 7445_v3.2)
7455_v3.3 PVR 80010303
7445_v3.3 PVR 80010303
7455_v3.4 PVR 80010304
7445_v3.4 PVR 80010304
7447_v1.0 PVR 80020100
7457_v1.0 PVR 80020100
7447_v1.1 PVR 80020101
7447 (alias for 7447_v1.1)
7457_v1.1 PVR 80020101
7457_v1.2 PVR 80020102
7457 (alias for 7457_v1.2)
apollo7 (alias for 7457_v1.2)
7457a_v1.0 PVR 80030100
apollo7pm (alias for 7457a_v1.0)
7447a_v1.0 PVR 80030100
7457a_v1.1 PVR 80030101
7447a_v1.1 PVR 80030101
7457a_v1.2 PVR 80030102
7457a (alias for 7457a_v1.2)
7447a_v1.2 PVR 80030102
7447a (alias for 7447a_v1.2)
mpc8641d PVR 80040010
mpc8610 PVR 80040010
e600 PVR 80040010
mpc8641 PVR 80040010
7448_v1.0 PVR 80040100
7448_v1.1 PVR 80040101
7448_v2.0 PVR 80040200
7448_v2.1 PVR 80040201
7448 (alias for 7448_v2.1)
7410_v1.0 PVR 800c1100
7410_v1.1 PVR 800c1101
7410_v1.2 PVR 800c1102
7410_v1.3 PVR 800c1103
7410_v1.4 PVR 800c1104
7410 (alias for 7410_v1.4)
nitro (alias for 7410_v1.4)
mpc8540_v10 PVR 80200010
e500_v10 PVR 80200010
mpc8560_v10 PVR 80200010
mpc8560_v20 PVR 80200020
mpc8555_v10 PVR 80200020
mpc8560_v21 PVR 80200020
mpc8560 (alias for mpc8560_v21)
mpc8555e_v10 PVR 80200020
mpc8555_v11 PVR 80200020
mpc8555 (alias for mpc8555_v11)
mpc8541_v10 PVR 80200020
mpc8541_v11 PVR 80200020
mpc8541 (alias for mpc8541_v11)
mpc8555e_v11 PVR 80200020
mpc8555e (alias for mpc8555e_v11)
mpc8540_v20 PVR 80200020
mpc8541e_v10 PVR 80200020
mpc8541e_v11 PVR 80200020
mpc8541e (alias for mpc8541e_v11)
mpc8540_v21 PVR 80200020
mpc8540 (alias for mpc8540_v21)
e500_v20 PVR 80200020
e500v1 (alias for e500_v20)
mpc8543e_v10 PVR 80210010
mpc8543_v10 PVR 80210010
mpc8548e_v10 PVR 80210010
e500v2_v10 PVR 80210010
mpc8548_v10 PVR 80210010
mpc8543e_v11 PVR 80210011
mpc8548e_v11 PVR 80210011
mpc8543_v11 PVR 80210011
mpc8548_v11 PVR 80210011
mpc8548_v20 PVR 80210020
mpc8547e_v20 PVR 80210020
mpc8545_v20 PVR 80210020
mpc8543e_v20 PVR 80210020
mpc8548e_v20 PVR 80210020
mpc8543_v20 PVR 80210020
mpc8545e_v20 PVR 80210020
e500v2_v20 PVR 80210020
mpc8545e_v21 PVR 80210021
mpc8545e (alias for mpc8545e_v21)
mpc8544_v10 PVR 80210021
mpc8533e_v10 PVR 80210021
mpc8544e_v10 PVR 80210021
mpc8547e_v21 PVR 80210021
mpc8547e (alias for mpc8547e_v21)
mpc8548_v21 PVR 80210021
mpc8548 (alias for mpc8548_v21)
mpc8545_v21 PVR 80210021
mpc8545 (alias for mpc8545_v21)
mpc8543e_v21 PVR 80210021
mpc8543e (alias for mpc8543e_v21)
mpc8543_v21 PVR 80210021
mpc8543 (alias for mpc8543_v21)
mpc8548e_v21 PVR 80210021
mpc8548e (alias for mpc8548e_v21)
e500v2_v21 PVR 80210021
mpc8533_v10 PVR 80210021
mpc8544_v11 PVR 80210022
mpc8544 (alias for mpc8544_v11)
mpc8568e PVR 80210022
mpc8544e_v11 PVR 80210022
mpc8544e (alias for mpc8544e_v11)
mpc8533e_v11 PVR 80210022
mpc8533e (alias for mpc8533e_v11)
mpc8567 PVR 80210022
mpc8568 PVR 80210022
mpc8567e PVR 80210022
e500v2_v22 PVR 80210022
e500 (alias for e500v2_v22)
e500v2 (alias for e500v2_v22)
mpc8533_v11 PVR 80210022
mpc8533 (alias for mpc8533_v11)
mpc8572e PVR 80210030
e500v2_v30 PVR 80210030
mpc8572 PVR 80210030
e500mc PVR 80230020
g2h4 PVR 80811010
g2hip4 PVR 80811014
mpc8241 (alias for g2hip4)
mpc8245 (alias for g2hip4)
mpc8250 (alias for g2hip4)
mpc8250_hip4 (alias for g2hip4)
mpc8255 (alias for g2hip4)
mpc8255_hip4 (alias for g2hip4)
mpc8260 (alias for g2hip4)
mpc8260_hip4 (alias for g2hip4)
mpc8264 (alias for g2hip4)
mpc8264_hip4 (alias for g2hip4)
mpc8265 (alias for g2hip4)
mpc8265_hip4 (alias for g2hip4)
mpc8266 (alias for g2hip4)
mpc8266_hip4 (alias for g2hip4)
g2le PVR 80820010
g2gp PVR 80821010
g2legp PVR 80822010
mpc5200b_v20 PVR 80822011
mpc5200_v10 PVR 80822011
mpc5200b_v21 PVR 80822011
mpc5200b (alias for mpc5200b_v21)
mpc5200_v11 PVR 80822011
mpc5200_v12 PVR 80822011
mpc52xx (alias for mpc5200_v12)
mpc5200 (alias for mpc5200_v12)
g2legp1 PVR 80822011
g2legp3 PVR 80822013
mpc82xx (alias for g2legp3)
powerquicc-ii (alias for g2legp3)
mpc8247 (alias for g2legp3)
mpc8248 (alias for g2legp3)
mpc8270 (alias for g2legp3)
mpc8271 (alias for g2legp3)
mpc8272 (alias for g2legp3)
mpc8275 (alias for g2legp3)
mpc8280 (alias for g2legp3)
e200z5 PVR 81000000
e200z6 PVR 81120000
e200 (alias for e200z6)
g2ls PVR 90810010
g2lels PVR a0822010
Many thanks,
Mark.
[1] https://wiki.preterhuman.net/images/f/fc/Endian.pdf
More information about the Linuxppc-dev
mailing list