Skip to contentSkip to conversation

new binutils breaks "tlbie" instruction in kernel?

DISCUSSION Chris Friesen 5 participants 6 messages Feb 2, 2005 – Feb 4, 2005

lore
Share & tools
lore
#0 lore raw

The "tlbie" instruction has a bit which may be set to indicate regular or large page size. This used to be set via an optional second parameter.

Apparently some time between binutils versions 2.15.91.0.2 and 2.15.92.0.2 a change went in to make this second parameter mandatory, which breaks the kernel ppc code.

What is the recommended way to fix this? Do all binutils versions understand the second parameter, or will "sufficiently old" versions choke on it?

Thanks,

Chris

#1 lore raw
Quoted 10 lines · Chris Friesen

The "tlbie" instruction has a bit which may be set to indicate regular or large page size. This used to be set via an optional second parameter.

Apparently some time between binutils versions 2.15.91.0.2 and 2.15.92.0.2 a change went in to make this second parameter mandatory, which breaks the kernel ppc code.

What is the recommended way to fix this? Do all binutils versions understand the second parameter, or will "sufficiently old" versions choke on it?

Wasn't it fixed ?

Ben.

#2 lore raw

Someone should just add some of our asm files into the ppc binutils=20 testsuite, why we cant seem to get a stability on this seems beyond me=20=

:) Well, something else to add to the ppc kernel janitors list.

- kumar

Quoted 8 lines · Benjamin Herrenschmidt
Quoted 1 line · Chris Friesen

The "tlbie" instruction has a bit which may be set to indicate=20

regular

Quoted 1 line

or large page size.=A0 This used to be set via an optional second=20

parameter.

Quoted 3 lines

Apparently some time between binutils versions 2.15.91.0.2 and 2.15.92.0.2 a change went in to make this second parameter =

mandatory,

Quoted 16 lines
Quoted 5 lines

which breaks the kernel ppc code.

What is the recommended way to fix this?=A0 Do all binutils versions understand the second parameter, or will "sufficiently old" versions choke on it?

Wasn't it fixed ?

Ben.

_______________________________________________
Linuxppc-dev mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-dev

#3 lore raw
In reply to Benjamin Herrenschmidt
Quoted 7 lines · Benjamin Herrenschmidt
Quoted 3 lines · Chris Friesen

The "tlbie" instruction has a bit which may be set to indicate regular or large page size. This used to be set via an optional second parameter.

Apparently some time between binutils versions 2.15.91.0.2 and 2.15.92.0.2 a change went in to make this second parameter mandatory, which breaks the kernel ppc code.

Wasn't it fixed ?

Not sure what "it" you mean. The current kernel code does not have the third parm. I'm not sure about the latest binutils, but 2.15.92.0.2 is what a vendor wants to build on.

Chris

#4 lore raw
Quoted 5 lines · Chris Friesen
Quoted 1 line

Wasn't it fixed ?

Not sure what "it" you mean. The current kernel code does not have the third parm. I'm not sure about the latest binutils, but 2.15.92.0.2 is what a vendor wants to build on.

Binutils was changed in early September last year to require the extra argument. We objected, and it was fixed again about a month later to _not_ require the argument. If you're using 2.15.92.0.2, then apply this patch to it:

2004-10-09 Alan Modra <[email protected]>

* ppc-opc.c: Revert 2004-09-09 change.

ppc-opc.c +1 -1
@@ -300,7 +300,7 @@ const struct powerpc_operand powerpc_ope
 
   /* The L field in a D or X form instruction.  */
 #define L FXM4 + 1
-  { 1, 21, 0, 0, 0 },
+  { 1, 21, 0, 0, PPC_OPERAND_OPTIONAL },
 
   /* The LEV field in a POWER SC form instruction.  */
 #define LEV L + 1
Signature · 1 line
dwmw2
#5 lore raw
In reply to Benjamin Herrenschmidt
Quoted 11 lines · Chris Friesen
Quoted 6 lines

The "tlbie" instruction has a bit which may be set to indicate regular or large page size. This used to be set via an optional second parameter.

Apparently some time between binutils versions 2.15.91.0.2 and 2.15.92.0.2 a change went in to make this second parameter mandatory, which breaks the kernel ppc code.

Wasn't it fixed ?

Ben.

My patch indeed was backed out. If ever I find the time I'll get it back in though, but without affecting tlbie (the syntax for tlbie is different when you look at the PEM or at the Books; the patch was supposed to handle a problem in the cmpXX insns only). Someone should get the PEM and the architecture books back in line ;-)

Segher