linux-mips
[Top] [All Lists]

Re: [PATCH] Enable AT_PLATFORM for Loongson 2F CPU

To: Robert Millan <rmh@gnu.org>, Ralf Baechle <ralf@linux-mips.org>
Subject: Re: [PATCH] Enable AT_PLATFORM for Loongson 2F CPU
From: David Daney <ddaney@caviumnetworks.com>
Date: Thu, 04 Nov 2010 09:44:39 -0700
Cc: linux-mips@linux-mips.org
In-reply-to: <1288873119.12965.1@thorin>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1288873119.12965.1@thorin>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.12) Gecko/20100907 Fedora/3.0.7-1.fc12 Thunderbird/3.0.7
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.

David Daney

<Prev in Thread] Current Thread [Next in Thread>