David Daney a écrit : > On 11/04/2010 05:18 AM, Robert Millan wrote: >> Please consider this patch, it enables AT_PLATFORM for Loongson 2F CPU. >> >> > [...] >> diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c >> index 71620e1..504f3b1 100644 >> --- a/arch/mips/kernel/cpu-probe.c >> +++ b/arch/mips/kernel/cpu-probe.c >> @@ -614,6 +614,8 @@ static inline void cpu_probe_legacy(struct cpuinfo_mips *c, unsigned int cpu) >> case PRID_IMP_LOONGSON2: >> c->cputype = CPU_LOONGSON2; >> __cpu_name[cpu] = "ICT Loongson-2"; >> + if (cpu == 0) >> + __elf_platform = "loongson-2f"; >> c->isa_level = MIPS_CPU_ISA_III; >> c->options = R4K_OPTS | >> MIPS_CPU_FPU | MIPS_CPU_LLSC | > > This doesn't look right to me. > > You are claiming that all loongson2 are loongson-2f. Is that really > true? Or are there other types of loongson2 that are not loongson-2f? > > You need to be very careful here. This is part of the userspace ABI, so > if you get it wrong, you are stuck with it forever. > > One question you didn't address is why userspace would care that it is > running on exactly "loongson-2f" instead of just mips4. > > The __elf_platform gets converted to a directory name by ld.so, so you > may want to choose a value without '-' in it. > > My suggestion would be to set "loongson2" for the generic CPU_LOONGSON2, > and if there is a good reason for it, "loongson2f" for the 'f' variant. > You should definitely define here loongson-2e and loongson-2f separately. They have the same instruction set, but different opcodes for the loongson specific instructions, hence they are not compatible. -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurelien@xxxxxxxxxxx http://www.aurel32.net