Re: [PATCH] mips/loongson: unify compiler flags and load location for Loongson 2E and 2F
* Matt Turner (mattst88@gmail.com) [110822 02:20]:
> On Sat, Aug 20, 2011 at 9:05 PM, Andreas Barth <aba@not.so.argh.org> wrote:
> > diff --git a/arch/mips/loongson/Platform b/arch/mips/loongson/Platform
> > index 29692e5..d6471a5 100644
> > --- a/arch/mips/loongson/Platform
> > +++ b/arch/mips/loongson/Platform
> > @@ -4,10 +4,8 @@
> >
> > # Only gcc >= 4.4 have Loongson specific support
> > cflags-$(CONFIG_CPU_LOONGSON2) += -Wa,--trap
> > -cflags-$(CONFIG_CPU_LOONGSON2E) += \
> > - $(call cc-option,-march=loongson2e,-march=r4600)
> > -cflags-$(CONFIG_CPU_LOONGSON2F) += \
> > - $(call cc-option,-march=loongson2f,-march=r4600)
> > +cflags-$(CONFIG_CPU_LOONGSON2) += \
> > + $(call cc-option,-march=r4600)
> > # Enable the workarounds for Loongson2f
> > ifdef CONFIG_CPU_LOONGSON2F_WORKAROUNDS
> > ifeq ($(call as-option,-Wa$(comma)-mfix-loongson2f-nop,),)
>
> ... but I don't understand this one.
>
> So, in the name of simplification, let's just remove the ability to
> compile with -march=loongson2{e,f}? What?
I want to build a kernel that works on both 2e and 2f. Such a kernel
must not be built with 2e or 2f specific code (which are incompatible
to each other).
> Is there some case where a -march=loongson2e kernel won't work on a 2F
> system?
Yes. There are 2E opcodes removed in the 2F. See e.g.
http://media.romanrm.ru/loongson/info/Loongson%202F%20Datasheet.pdf
Implementing all the features described in the MIPSIII, Loongson 2E
has some of custom instructions occupied the MIPS-reserved
instruction slot. So in the 2F, these custom-tailored instruction
opcodes need to remove to the user instruction slot (COP2 or
Special2).
(I could of course check if a kernel has such opcodes included. But
I'm unhappy to use compiler instructions which might end in invalid
code.
> The commit message should explain this stuff.
Ok.
Andi
Reply to: