| .. | .. |
|---|
| 1721 | 1721 | |
|---|
| 1722 | 1722 | static inline void cpu_probe_loongson(struct cpuinfo_mips *c, unsigned int cpu) |
|---|
| 1723 | 1723 | { |
|---|
| 1724 | + c->cputype = CPU_LOONGSON64; |
|---|
| 1725 | + |
|---|
| 1724 | 1726 | /* All Loongson processors covered here define ExcCode 16 as GSExc. */ |
|---|
| 1727 | + decode_configs(c); |
|---|
| 1725 | 1728 | c->options |= MIPS_CPU_GSEXCEX; |
|---|
| 1726 | 1729 | |
|---|
| 1727 | 1730 | switch (c->processor_id & PRID_IMP_MASK) { |
|---|
| .. | .. |
|---|
| 1731 | 1734 | case PRID_REV_LOONGSON2K_R1_1: |
|---|
| 1732 | 1735 | case PRID_REV_LOONGSON2K_R1_2: |
|---|
| 1733 | 1736 | case PRID_REV_LOONGSON2K_R1_3: |
|---|
| 1734 | | - c->cputype = CPU_LOONGSON64; |
|---|
| 1735 | 1737 | __cpu_name[cpu] = "Loongson-2K"; |
|---|
| 1736 | 1738 | set_elf_platform(cpu, "gs264e"); |
|---|
| 1737 | 1739 | set_isa(c, MIPS_CPU_ISA_M64R2); |
|---|
| .. | .. |
|---|
| 1744 | 1746 | switch (c->processor_id & PRID_REV_MASK) { |
|---|
| 1745 | 1747 | case PRID_REV_LOONGSON3A_R2_0: |
|---|
| 1746 | 1748 | case PRID_REV_LOONGSON3A_R2_1: |
|---|
| 1747 | | - c->cputype = CPU_LOONGSON64; |
|---|
| 1748 | 1749 | __cpu_name[cpu] = "ICT Loongson-3"; |
|---|
| 1749 | 1750 | set_elf_platform(cpu, "loongson3a"); |
|---|
| 1750 | 1751 | set_isa(c, MIPS_CPU_ISA_M64R2); |
|---|
| 1751 | 1752 | break; |
|---|
| 1752 | 1753 | case PRID_REV_LOONGSON3A_R3_0: |
|---|
| 1753 | 1754 | case PRID_REV_LOONGSON3A_R3_1: |
|---|
| 1754 | | - c->cputype = CPU_LOONGSON64; |
|---|
| 1755 | 1755 | __cpu_name[cpu] = "ICT Loongson-3"; |
|---|
| 1756 | 1756 | set_elf_platform(cpu, "loongson3a"); |
|---|
| 1757 | 1757 | set_isa(c, MIPS_CPU_ISA_M64R2); |
|---|
| .. | .. |
|---|
| 1771 | 1771 | c->ases &= ~MIPS_ASE_VZ; /* VZ of Loongson-3A2000/3000 is incomplete */ |
|---|
| 1772 | 1772 | break; |
|---|
| 1773 | 1773 | case PRID_IMP_LOONGSON_64G: |
|---|
| 1774 | | - c->cputype = CPU_LOONGSON64; |
|---|
| 1775 | 1774 | __cpu_name[cpu] = "ICT Loongson-3"; |
|---|
| 1776 | 1775 | set_elf_platform(cpu, "loongson3a"); |
|---|
| 1777 | 1776 | set_isa(c, MIPS_CPU_ISA_M64R2); |
|---|
| .. | .. |
|---|
| 1781 | 1780 | panic("Unknown Loongson Processor ID!"); |
|---|
| 1782 | 1781 | break; |
|---|
| 1783 | 1782 | } |
|---|
| 1784 | | - |
|---|
| 1785 | | - decode_configs(c); |
|---|
| 1786 | 1783 | } |
|---|
| 1787 | 1784 | #else |
|---|
| 1788 | 1785 | static inline void cpu_probe_loongson(struct cpuinfo_mips *c, unsigned int cpu) { } |
|---|