summaryrefslogtreecommitdiff
path: root/arch/mips/include/asm
diff options
context:
space:
mode:
authorJiaxun Yang <jiaxun.yang@flygoat.com>2019-10-20 22:43:15 +0800
committerPaul Burton <paulburton@kernel.org>2019-11-01 14:31:28 -0700
commit5831fdb099ddeec9849658cd534fdcbb03aa6ff9 (patch)
treedaf08595f995f465ef9a5e131ea8d0fc18760cec /arch/mips/include/asm
parent71e2f4dd5a65bd8dbca0b77661e75eea471168f8 (diff)
MIPS: Loongson2ef: clean up loongson64 related code
Remove unrelevent macros, defines and codes from loongson2ef mach. Also rename some defines to match new naming. Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com> Signed-off-by: Paul Burton <paulburton@kernel.org> Cc: linux-mips@vger.kernel.org Cc: paul.burton@mips.com
Diffstat (limited to 'arch/mips/include/asm')
-rw-r--r--arch/mips/include/asm/mach-loongson2ef/boot_param.h221
-rw-r--r--arch/mips/include/asm/mach-loongson2ef/cpu-feature-overrides.h15
-rw-r--r--arch/mips/include/asm/mach-loongson2ef/irq.h44
-rw-r--r--arch/mips/include/asm/mach-loongson2ef/kernel-entry-init.h90
-rw-r--r--arch/mips/include/asm/mach-loongson2ef/loongson.h37
-rw-r--r--arch/mips/include/asm/mach-loongson2ef/loongson_hwmon.h56
-rw-r--r--arch/mips/include/asm/mach-loongson2ef/loongson_regs.h227
-rw-r--r--arch/mips/include/asm/mach-loongson2ef/machine.h12
-rw-r--r--arch/mips/include/asm/mach-loongson2ef/mc146818rtc.h6
-rw-r--r--arch/mips/include/asm/mach-loongson2ef/mem.h6
-rw-r--r--arch/mips/include/asm/mach-loongson2ef/mmzone.h50
-rw-r--r--arch/mips/include/asm/mach-loongson2ef/pci.h12
-rw-r--r--arch/mips/include/asm/mach-loongson2ef/spaces.h4
-rw-r--r--arch/mips/include/asm/mach-loongson2ef/topology.h23
-rw-r--r--arch/mips/include/asm/mach-loongson2ef/workarounds.h8
15 files changed, 23 insertions, 788 deletions
diff --git a/arch/mips/include/asm/mach-loongson2ef/boot_param.h b/arch/mips/include/asm/mach-loongson2ef/boot_param.h
deleted file mode 100644
index 8c286bedff3e..000000000000
--- a/arch/mips/include/asm/mach-loongson2ef/boot_param.h
+++ /dev/null
@@ -1,221 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef __ASM_MACH_LOONGSON64_BOOT_PARAM_H_
-#define __ASM_MACH_LOONGSON64_BOOT_PARAM_H_
-
-#define SYSTEM_RAM_LOW 1
-#define SYSTEM_RAM_HIGH 2
-#define SYSTEM_RAM_RESERVED 3
-#define PCI_IO 4
-#define PCI_MEM 5
-#define LOONGSON_CFG_REG 6
-#define VIDEO_ROM 7
-#define ADAPTER_ROM 8
-#define ACPI_TABLE 9
-#define SMBIOS_TABLE 10
-#define MAX_MEMORY_TYPE 11
-
-#define LOONGSON3_BOOT_MEM_MAP_MAX 128
-struct efi_memory_map_loongson {
- u16 vers; /* version of efi_memory_map */
- u32 nr_map; /* number of memory_maps */
- u32 mem_freq; /* memory frequence */
- struct mem_map {
- u32 node_id; /* node_id which memory attached to */
- u32 mem_type; /* system memory, pci memory, pci io, etc. */
- u64 mem_start; /* memory map start address */
- u32 mem_size; /* each memory_map size, not the total size */
- } map[LOONGSON3_BOOT_MEM_MAP_MAX];
-} __packed;
-
-enum loongson_cpu_type {
- Legacy_2E = 0x0,
- Legacy_2F = 0x1,
- Legacy_3A = 0x2,
- Legacy_3B = 0x3,
- Legacy_1A = 0x4,
- Legacy_1B = 0x5,
- Legacy_2G = 0x6,
- Legacy_2H = 0x7,
- Loongson_1A = 0x100,
- Loongson_1B = 0x101,
- Loongson_2E = 0x200,
- Loongson_2F = 0x201,
- Loongson_2G = 0x202,
- Loongson_2H = 0x203,
- Loongson_3A = 0x300,
- Loongson_3B = 0x301
-};
-
-/*
- * Capability and feature descriptor structure for MIPS CPU
- */
-struct efi_cpuinfo_loongson {
- u16 vers; /* version of efi_cpuinfo_loongson */
- u32 processor_id; /* PRID, e.g. 6305, 6306 */
- u32 cputype; /* Loongson_3A/3B, etc. */
- u32 total_node; /* num of total numa nodes */
- u16 cpu_startup_core_id; /* Boot core id */
- u16 reserved_cores_mask;
- u32 cpu_clock_freq; /* cpu_clock */
- u32 nr_cpus;
-} __packed;
-
-#define MAX_UARTS 64
-struct uart_device {
- u32 iotype; /* see include/linux/serial_core.h */
- u32 uartclk;
- u32 int_offset;
- u64 uart_base;
-} __packed;
-
-#define MAX_SENSORS 64
-#define SENSOR_TEMPER 0x00000001
-#define SENSOR_VOLTAGE 0x00000002
-#define SENSOR_FAN 0x00000004
-struct sensor_device {
- char name[32]; /* a formal name */
- char label[64]; /* a flexible description */
- u32 type; /* SENSOR_* */
- u32 id; /* instance id of a sensor-class */
- u32 fan_policy; /* see loongson_hwmon.h */
- u32 fan_percent;/* only for constant speed policy */
- u64 base_addr; /* base address of device registers */
-} __packed;
-
-struct system_loongson {
- u16 vers; /* version of system_loongson */
- u32 ccnuma_smp; /* 0: no numa; 1: has numa */
- u32 sing_double_channel; /* 1:single; 2:double */
- u32 nr_uarts;
- struct uart_device uarts[MAX_UARTS];
- u32 nr_sensors;
- struct sensor_device sensors[MAX_SENSORS];
- char has_ec;
- char ec_name[32];
- u64 ec_base_addr;
- char has_tcm;
- char tcm_name[32];
- u64 tcm_base_addr;
- u64 workarounds; /* see workarounds.h */
-} __packed;
-
-struct irq_source_routing_table {
- u16 vers;
- u16 size;
- u16 rtr_bus;
- u16 rtr_devfn;
- u32 vendor;
- u32 device;
- u32 PIC_type; /* conform use HT or PCI to route to CPU-PIC */
- u64 ht_int_bit; /* 3A: 1<<24; 3B: 1<<16 */
- u64 ht_enable; /* irqs used in this PIC */
- u32 node_id; /* node id: 0x0-0; 0x1-1; 0x10-2; 0x11-3 */
- u64 pci_mem_start_addr;
- u64 pci_mem_end_addr;
- u64 pci_io_start_addr;
- u64 pci_io_end_addr;
- u64 pci_config_addr;
- u32 dma_mask_bits;
-} __packed;
-
-struct interface_info {
- u16 vers; /* version of the specificition */
- u16 size;
- u8 flag;
- char description[64];
-} __packed;
-
-#define MAX_RESOURCE_NUMBER 128
-struct resource_loongson {
- u64 start; /* resource start address */
- u64 end; /* resource end address */
- char name[64];
- u32 flags;
-};
-
-struct archdev_data {}; /* arch specific additions */
-
-struct board_devices {
- char name[64]; /* hold the device name */
- u32 num_resources; /* number of device_resource */
- /* for each device's resource */
- struct resource_loongson resource[MAX_RESOURCE_NUMBER];
- /* arch specific additions */
- struct archdev_data archdata;
-};
-
-struct loongson_special_attribute {
- u16 vers; /* version of this special */
- char special_name[64]; /* special_atribute_name */
- u32 loongson_special_type; /* type of special device */
- /* for each device's resource */
- struct resource_loongson resource[MAX_RESOURCE_NUMBER];
-};
-
-struct loongson_params {
- u64 memory_offset; /* efi_memory_map_loongson struct offset */
- u64 cpu_offset; /* efi_cpuinfo_loongson struct offset */
- u64 system_offset; /* system_loongson struct offset */
- u64 irq_offset; /* irq_source_routing_table struct offset */
- u64 interface_offset; /* interface_info struct offset */
- u64 special_offset; /* loongson_special_attribute struct offset */
- u64 boarddev_table_offset; /* board_devices offset */
-};
-
-struct smbios_tables {
- u16 vers; /* version of smbios */
- u64 vga_bios; /* vga_bios address */
- struct loongson_params lp;
-};
-
-struct efi_reset_system_t {
- u64 ResetCold;
- u64 ResetWarm;
- u64 ResetType;
- u64 Shutdown;
- u64 DoSuspend; /* NULL if not support */
-};
-
-struct efi_loongson {
- u64 mps; /* MPS table */
- u64 acpi; /* ACPI table (IA64 ext 0.71) */
- u64 acpi20; /* ACPI table (ACPI 2.0) */
- struct smbios_tables smbios; /* SM BIOS table */
- u64 sal_systab; /* SAL system table */
- u64 boot_info; /* boot info table */
-};
-
-struct boot_params {
- struct efi_loongson efi;
- struct efi_reset_system_t reset_system;
-};
-
-struct loongson_system_configuration {
- u32 nr_cpus;
- u32 nr_nodes;
- int cores_per_node;
- int cores_per_package;
- u16 boot_cpu_id;
- u16 reserved_cpus_mask;
- enum loongson_cpu_type cputype;
- u64 ht_control_base;
- u64 pci_mem_start_addr;
- u64 pci_mem_end_addr;
- u64 pci_io_base;
- u64 restart_addr;
- u64 poweroff_addr;
- u64 suspend_addr;
- u64 vgabios_addr;
- u32 dma_mask_bits;
- char ecname[32];
- u32 nr_uarts;
- struct uart_device uarts[MAX_UARTS];
- u32 nr_sensors;
- struct sensor_device sensors[MAX_SENSORS];
- u64 workarounds;
-};
-
-extern struct efi_memory_map_loongson *loongson_memmap;
-extern struct loongson_system_configuration loongson_sysconf;
-
-#endif
diff --git a/arch/mips/include/asm/mach-loongson2ef/cpu-feature-overrides.h b/arch/mips/include/asm/mach-loongson2ef/cpu-feature-overrides.h
index 83ad90d8005d..b2ee859ca0b7 100644
--- a/arch/mips/include/asm/mach-loongson2ef/cpu-feature-overrides.h
+++ b/arch/mips/include/asm/mach-loongson2ef/cpu-feature-overrides.h
@@ -1,8 +1,5 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
* Copyright (C) 2009 Wu Zhangjin <wuzhangjin@gmail.com>
* Copyright (C) 2009 Philippe Vachon <philippe@cowpig.ca>
* Copyright (C) 2009 Zhang Le <r0bertz@gentoo.org>
@@ -13,8 +10,8 @@
* loongson2f user manual.
*/
-#ifndef __ASM_MACH_LOONGSON64_CPU_FEATURE_OVERRIDES_H
-#define __ASM_MACH_LOONGSON64_CPU_FEATURE_OVERRIDES_H
+#ifndef __ASM_MACH_LOONGSON2EF_CPU_FEATURE_OVERRIDES_H
+#define __ASM_MACH_LOONGSON2EF_CPU_FEATURE_OVERRIDES_H
#define cpu_has_32fpr 1
#define cpu_has_3k_cache 0
@@ -44,10 +41,4 @@
#define cpu_has_vtag_icache 0
#define cpu_has_watch 1
-#ifdef CONFIG_CPU_LOONGSON64
-#define cpu_has_wsbh 1
-#define cpu_has_ic_fills_f_dc 1
-#define cpu_hwrena_impl_bits 0xc0000000
-#endif
-
#endif /* __ASM_MACH_LOONGSON64_CPU_FEATURE_OVERRIDES_H */
diff --git a/arch/mips/include/asm/mach-loongson2ef/irq.h b/arch/mips/include/asm/mach-loongson2ef/irq.h
deleted file mode 100644
index 557e069c400c..000000000000
--- a/arch/mips/include/asm/mach-loongson2ef/irq.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef __ASM_MACH_LOONGSON64_IRQ_H_
-#define __ASM_MACH_LOONGSON64_IRQ_H_
-
-#include <boot_param.h>
-
-#ifdef CONFIG_CPU_LOONGSON64
-
-/* cpu core interrupt numbers */
-#define MIPS_CPU_IRQ_BASE 56
-
-#define LOONGSON_UART_IRQ (MIPS_CPU_IRQ_BASE + 2) /* UART */
-#define LOONGSON_BRIDGE_IRQ (MIPS_CPU_IRQ_BASE + 3) /* CASCADE */
-#define LOONGSON_TIMER_IRQ (MIPS_CPU_IRQ_BASE + 7) /* CPU Timer */
-
-#define LOONGSON_HT1_CFG_BASE loongson_sysconf.ht_control_base
-#define LOONGSON_HT1_INT_VECTOR_BASE (LOONGSON_HT1_CFG_BASE + 0x80)
-#define LOONGSON_HT1_INT_EN_BASE (LOONGSON_HT1_CFG_BASE + 0xa0)
-#define LOONGSON_HT1_INT_VECTOR(n) \
- LOONGSON3_REG32(LOONGSON_HT1_INT_VECTOR_BASE, 4 * (n))
-#define LOONGSON_HT1_INTN_EN(n) \
- LOONGSON3_REG32(LOONGSON_HT1_INT_EN_BASE, 4 * (n))
-
-#define LOONGSON_INT_ROUTER_OFFSET 0x1400
-#define LOONGSON_INT_ROUTER_INTEN \
- LOONGSON3_REG32(LOONGSON3_REG_BASE, LOONGSON_INT_ROUTER_OFFSET + 0x24)
-#define LOONGSON_INT_ROUTER_INTENSET \
- LOONGSON3_REG32(LOONGSON3_REG_BASE, LOONGSON_INT_ROUTER_OFFSET + 0x28)
-#define LOONGSON_INT_ROUTER_INTENCLR \
- LOONGSON3_REG32(LOONGSON3_REG_BASE, LOONGSON_INT_ROUTER_OFFSET + 0x2c)
-#define LOONGSON_INT_ROUTER_ENTRY(n) \
- LOONGSON3_REG8(LOONGSON3_REG_BASE, LOONGSON_INT_ROUTER_OFFSET + n)
-#define LOONGSON_INT_ROUTER_LPC LOONGSON_INT_ROUTER_ENTRY(0x0a)
-#define LOONGSON_INT_ROUTER_HT1(n) LOONGSON_INT_ROUTER_ENTRY(n + 0x18)
-
-#define LOONGSON_INT_COREx_INTy(x, y) (1<<(x) | 1<<(y+4)) /* route to int y of core x */
-
-#endif
-
-extern void fixup_irqs(void);
-extern void loongson3_ipi_interrupt(struct pt_regs *regs);
-
-#include_next <irq.h>
-#endif /* __ASM_MACH_LOONGSON64_IRQ_H_ */
diff --git a/arch/mips/include/asm/mach-loongson2ef/kernel-entry-init.h b/arch/mips/include/asm/mach-loongson2ef/kernel-entry-init.h
deleted file mode 100644
index 28ccb06c8289..000000000000
--- a/arch/mips/include/asm/mach-loongson2ef/kernel-entry-init.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 2005 Embedded Alley Solutions, Inc
- * Copyright (C) 2005 Ralf Baechle (ralf@linux-mips.org)
- * Copyright (C) 2009 Jiajie Chen (chenjiajie@cse.buaa.edu.cn)
- * Copyright (C) 2012 Huacai Chen (chenhc@lemote.com)
- */
-#ifndef __ASM_MACH_LOONGSON64_KERNEL_ENTRY_H
-#define __ASM_MACH_LOONGSON64_KERNEL_ENTRY_H
-
-#include <asm/cpu.h>
-
-/*
- * Override macros used in arch/mips/kernel/head.S.
- */
- .macro kernel_entry_setup
-#ifdef CONFIG_CPU_LOONGSON64
- .set push
- .set mips64
- /* Set LPA on LOONGSON3 config3 */
- mfc0 t0, CP0_CONFIG3
- or t0, (0x1 << 7)
- mtc0 t0, CP0_CONFIG3
- /* Set ELPA on LOONGSON3 pagegrain */
- mfc0 t0, CP0_PAGEGRAIN
- or t0, (0x1 << 29)
- mtc0 t0, CP0_PAGEGRAIN
- /* Enable STFill Buffer */
- mfc0 t0, CP0_PRID
- /* Loongson-3A R4+ */
- andi t1, t0, PRID_IMP_MASK
- li t2, PRID_IMP_LOONGSON_64G
- beq t1, t2, 1f
- nop
- /* Loongson-3A R2/R3 */
- andi t0, (PRID_IMP_MASK | PRID_REV_MASK)
- slti t0, (PRID_IMP_LOONGSON_64C | PRID_REV_LOONGSON3A_R2_0)
- bnez t0, 2f
- nop
-1:
- mfc0 t0, CP0_CONFIG6
- or t0, 0x100
- mtc0 t0, CP0_CONFIG6
-2:
- _ehb
- .set pop
-#endif
- .endm
-
-/*
- * Do SMP slave processor setup.
- */
- .macro smp_slave_setup
-#ifdef CONFIG_CPU_LOONGSON64
- .set push
- .set mips64
- /* Set LPA on LOONGSON3 config3 */
- mfc0 t0, CP0_CONFIG3
- or t0, (0x1 << 7)
- mtc0 t0, CP0_CONFIG3
- /* Set ELPA on LOONGSON3 pagegrain */
- mfc0 t0, CP0_PAGEGRAIN
- or t0, (0x1 << 29)
- mtc0 t0, CP0_PAGEGRAIN
- /* Enable STFill Buffer */
- mfc0 t0, CP0_PRID
- /* Loongson-3A R4+ */
- andi t1, t0, PRID_IMP_MASK
- li t2, PRID_IMP_LOONGSON_64G
- beq t1, t2, 1f
- nop
- /* Loongson-3A R2/R3 */
- andi t0, (PRID_IMP_MASK | PRID_REV_MASK)
- slti t0, (PRID_IMP_LOONGSON_64C | PRID_REV_LOONGSON3A_R2_0)
- bnez t0, 2f
- nop
-1:
- mfc0 t0, CP0_CONFIG6
- or t0, 0x100
- mtc0 t0, CP0_CONFIG6
-2:
- _ehb
- .set pop
-#endif
- .endm
-
-#endif /* __ASM_MACH_LOONGSON64_KERNEL_ENTRY_H */
diff --git a/arch/mips/include/asm/mach-loongson2ef/loongson.h b/arch/mips/include/asm/mach-loongson2ef/loongson.h
index 40a24b76b874..8ed460a64d10 100644
--- a/arch/mips/include/asm/mach-loongson2ef/loongson.h
+++ b/arch/mips/include/asm/mach-loongson2ef/loongson.h
@@ -4,13 +4,12 @@
* Author: Wu Zhangjin <wuzhangjin@gmail.com>
*/
-#ifndef __ASM_MACH_LOONGSON64_LOONGSON_H
-#define __ASM_MACH_LOONGSON64_LOONGSON_H
+#ifndef __ASM_MACH_LOONGSON2EF_LOONGSON_H
+#define __ASM_MACH_LOONGSON2EF_LOONGSON_H
#include <linux/io.h>
#include <linux/init.h>
#include <linux/irq.h>
-#include <boot_param.h>
/* loongson internal northbridge initialization */
extern void bonito_irq_init(void);
@@ -30,7 +29,7 @@ extern void __init prom_init_cmdline(void);
extern void __init prom_init_machtype(void);
extern void __init prom_init_env(void);
#ifdef CONFIG_LOONGSON_UART_BASE
-extern unsigned long _loongson_uart_base[], loongson_uart_base[];
+extern unsigned long _loongson_uart_base, loongson_uart_base;
extern void prom_init_loongson_uart_base(void);
#endif
@@ -58,12 +57,6 @@ extern int mach_i8259_irq(void);
#define LOONGSON_REG(x) \
(*(volatile u32 *)((char *)CKSEG1ADDR(LOONGSON_REG_BASE) + (x)))
-#define LOONGSON3_REG8(base, x) \
- (*(volatile u8 *)((char *)TO_UNCAC(base) + (x)))
-
-#define LOONGSON3_REG32(base, x) \
- (*(volatile u32 *)((char *)TO_UNCAC(base) + (x)))
-
#define LOONGSON_IRQ_BASE 32
#define LOONGSON2_PERFCNT_IRQ (MIPS_CPU_IRQ_BASE + 6) /* cpu perf counter */
@@ -89,10 +82,6 @@ static inline void do_perfcnt_IRQ(void)
#define LOONGSON_REG_BASE 0x1fe00000
#define LOONGSON_REG_SIZE 0x00100000 /* 256Bytes + 256Bytes + ??? */
#define LOONGSON_REG_TOP (LOONGSON_REG_BASE+LOONGSON_REG_SIZE-1)
-/* Loongson-3 specific registers */
-#define LOONGSON3_REG_BASE 0x3ff00000
-#define LOONGSON3_REG_SIZE 0x00100000 /* 256Bytes + 256Bytes + ??? */
-#define LOONGSON3_REG_TOP (LOONGSON3_REG_BASE+LOONGSON3_REG_SIZE-1)
#define LOONGSON_LIO1_BASE 0x1ff00000
#define LOONGSON_LIO1_SIZE 0x00100000 /* 1M */
@@ -108,12 +97,7 @@ static inline void do_perfcnt_IRQ(void)
#define LOONGSON_PCICFG_BASE 0x1fe80000
#define LOONGSON_PCICFG_SIZE 0x00000800 /* 2K */
#define LOONGSON_PCICFG_TOP (LOONGSON_PCICFG_BASE+LOONGSON_PCICFG_SIZE-1)
-
-#ifdef CONFIG_CPU_LOONGSON64
-#define LOONGSON_PCIIO_BASE loongson_sysconf.pci_io_base
-#else
#define LOONGSON_PCIIO_BASE 0x1fd00000
-#endif
#define LOONGSON_PCIIO_SIZE 0x00100000 /* 1M */
#define LOONGSON_PCIIO_TOP (LOONGSON_PCIIO_BASE+LOONGSON_PCIIO_SIZE-1)
@@ -244,19 +228,8 @@ static inline void do_perfcnt_IRQ(void)
#define LOONGSON_PXARB_CFG LOONGSON_REG(LOONGSON_REGBASE + 0x68)
#define LOONGSON_PXARB_STATUS LOONGSON_REG(LOONGSON_REGBASE + 0x6c)
-#define MAX_PACKAGES 4
-
/* Chip Config registor of each physical cpu package, PRid >= Loongson-2F */
-extern u64 loongson_chipcfg[MAX_PACKAGES];
-#define LOONGSON_CHIPCFG(id) (*(volatile u32 *)(loongson_chipcfg[id]))
-
-/* Chip Temperature registor of each physical cpu package, PRid >= Loongson-3A */
-extern u64 loongson_chiptemp[MAX_PACKAGES];
-#define LOONGSON_CHIPTEMP(id) (*(volatile u32 *)(loongson_chiptemp[id]))
-
-/* Freq Control register of each physical cpu package, PRid >= Loongson-3B */
-extern u64 loongson_freqctrl[MAX_PACKAGES];
-#define LOONGSON_FREQCTRL(id) (*(volatile u32 *)(loongson_freqctrl[id]))
+#define LOONGSON_CHIPCFG (void __iomem *)TO_UNCAC(0x1fc00180)
/* pcimap */
@@ -352,4 +325,4 @@ extern unsigned long _loongson_addrwincfg_base;
#endif /* ! CONFIG_CPU_SUPPORTS_ADDRWINCFG */
-#endif /* __ASM_MACH_LOONGSON64_LOONGSON_H */
+#endif /* __ASM_MACH_LOONGSON2EF_LOONGSON_H */
diff --git a/arch/mips/include/asm/mach-loongson2ef/loongson_hwmon.h b/arch/mips/include/asm/mach-loongson2ef/loongson_hwmon.h
deleted file mode 100644
index 545f91f2ae16..000000000000
--- a/arch/mips/include/asm/mach-loongson2ef/loongson_hwmon.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef __LOONGSON_HWMON_H_
-#define __LOONGSON_HWMON_H_
-
-#include <linux/types.h>
-
-#define MIN_TEMP 0
-#define MAX_TEMP 255
-#define NOT_VALID_TEMP 999
-
-typedef int (*get_temp_fun)(int);
-extern int loongson3_cpu_temp(int);
-
-/* 0:Max speed, 1:Manual, 2:Auto */
-enum fan_control_mode {
- FAN_FULL_MODE = 0,
- FAN_MANUAL_MODE = 1,
- FAN_AUTO_MODE = 2,
- FAN_MODE_END
-};
-
-struct temp_range {
- u8 low;
- u8 high;
- u8 level;
-};
-
-#define CONSTANT_SPEED_POLICY 0 /* at constant speed */
-#define STEP_SPEED_POLICY 1 /* use up/down arrays to describe policy */
-#define KERNEL_HELPER_POLICY 2 /* kernel as a helper to fan control */
-
-#define MAX_STEP_NUM 16
-#define MAX_FAN_LEVEL 255
-
-/* loongson_fan_policy works when fan work at FAN_AUTO_MODE */
-struct loongson_fan_policy {
- u8 type;
-
- /* percent only used when type is CONSTANT_SPEED_POLICY */
- u8 percent;
-
- /* period between two check. (Unit: S) */
- u8 adjust_period;
-
- /* fan adjust usually depend on a temprature input */
- get_temp_fun depend_temp;
-
- /* up_step/down_step used when type is STEP_SPEED_POLICY */
- u8 up_step_num;
- u8 down_step_num;
- struct temp_range up_step[MAX_STEP_NUM];
- struct temp_range down_step[MAX_STEP_NUM];
- struct delayed_work work;
-};
-
-#endif /* __LOONGSON_HWMON_H_*/
diff --git a/arch/mips/include/asm/mach-loongson2ef/loongson_regs.h b/arch/mips/include/asm/mach-loongson2ef/loongson_regs.h
deleted file mode 100644
index 363a47a5d26e..000000000000
--- a/arch/mips/include/asm/mach-loongson2ef/loongson_regs.h
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- * Read/Write Loongson Extension Registers
- */
-
-#ifndef _LOONGSON_REGS_H_
-#define _LOONGSON_REGS_H_
-
-#include <linux/types.h>
-#include <linux/bits.h>
-
-#include <asm/mipsregs.h>
-#include <asm/cpu.h>
-
-static inline bool cpu_has_cfg(void)
-{
- return ((read_c0_prid() & PRID_IMP_MASK) == PRID_IMP_LOONGSON_64G);
-}
-
-static inline u32 read_cpucfg(u32 reg)
-{
- u32 __res;
-
- __asm__ __volatile__(
- "parse_r __res,%0\n\t"
- "parse_r reg,%1\n\t"
- ".insn \n\t"
- ".word (0xc8080118 | (reg << 21) | (__res << 11))\n\t"
- :"=r"(__res)
- :"r"(reg)
- :
- );
- return __res;
-}
-
-/* Bit Domains for CFG registers */
-#define LOONGSON_CFG0 0x0
-#define LOONGSON_CFG0_PRID GENMASK(31, 0)
-
-#define LOONGSON_CFG1 0x1
-#define LOONGSON_CFG1_FP BIT(0)
-#define LOONGSON_CFG1_FPREV GENMASK(3, 1)
-#define LOONGSON_CFG1_MMI BIT(4)
-#define LOONGSON_CFG1_MSA1 BIT(5)
-#define LOONGSON_CFG1_MSA2 BIT(6)
-#define LOONGSON_CFG1_CGP BIT(7)
-#define LOONGSON_CFG1_WRP BIT(8)
-#define LOONGSON_CFG1_LSX1 BIT(9)
-#define LOONGSON_CFG1_LSX2 BIT(10)
-#define LOONGSON_CFG1_LASX BIT(11)
-#define LOONGSON_CFG1_R6FXP BIT(12)
-#define LOONGSON_CFG1_R6CRCP BIT(13)
-#define LOONGSON_CFG1_R6FPP BIT(14)
-#define LOONGSON_CFG1_CNT64 BIT(15)
-#define LOONGSON_CFG1_LSLDR0 BIT(16)
-#define LOONGSON_CFG1_LSPREF BIT(17)
-#define LOONGSON_CFG1_LSPREFX BIT(18)
-#define LOONGSON_CFG1_LSSYNCI BIT(19)
-#define LOONGSON_CFG1_LSUCA BIT(20)
-#define LOONGSON_CFG1_LLSYNC BIT(21)
-#define LOONGSON_CFG1_TGTSYNC BIT(22)
-#define LOONGSON_CFG1_LLEXC BIT(23)
-#define LOONGSON_CFG1_SCRAND BIT(24)
-#define LOONGSON_CFG1_MUALP BIT(25)
-#define LOONGSON_CFG1_KMUALEN BIT(26)
-#define LOONGSON_CFG1_ITLBT BIT(27)
-#define LOONGSON_CFG1_LSUPERF BIT(28)
-#define LOONGSON_CFG1_SFBP BIT(29)
-#define LOONGSON_CFG1_CDMAP BIT(30)
-
-#define LOONGSON_CFG2 0x2
-#define LOONGSON_CFG2_LEXT1 BIT(0)
-#define LOONGSON_CFG2_LEXT2 BIT(1)
-#define LOONGSON_CFG2_LEXT3 BIT(2)
-#define LOONGSON_CFG2_LSPW BIT(3)
-#define LOONGSON_CFG2_LBT1 BIT(4)
-#define LOONGSON_CFG2_LBT2 BIT(5)
-#define LOONGSON_CFG2_LBT3 BIT(6)
-#define LOONGSON_CFG2_LBTMMU BIT(7)
-#define LOONGSON_CFG2_LPMP BIT(8)
-#define LOONGSON_CFG2_LPMPREV GENMASK(11, 9)
-#define LOONGSON_CFG2_LAMO BIT(12)
-#define LOONGSON_CFG2_LPIXU BIT(13)
-#define LOONGSON_CFG2_LPIXUN BIT(14)
-#define LOONGSON_CFG2_LZVP BIT(15)
-#define LOONGSON_CFG2_LZVREV GENMASK(18, 16)
-#define LOONGSON_CFG2_LGFTP BIT(19)
-#define LOONGSON_CFG2_LGFTPREV GENMASK(22, 20)
-#define LOONGSON_CFG2_LLFTP BIT(23)
-#define LOONGSON_CFG2_LLFTPREV GENMASK(26, 24)
-#define LOONGSON_CFG2_LCSRP BIT(27)
-#define LOONGSON_CFG2_LDISBLIKELY BIT(28)
-
-#define LOONGSON_CFG3 0x3
-#define LOONGSON_CFG3_LCAMP BIT(0)
-#define LOONGSON_CFG3_LCAMREV GENMASK(3, 1)
-#define LOONGSON_CFG3_LCAMNUM GENMASK(11, 4)
-#define LOONGSON_CFG3_LCAMKW GENMASK(19, 12)
-#define LOONGSON_CFG3_LCAMVW GENMASK(27, 20)
-
-#define LOONGSON_CFG4 0x4
-#define LOONGSON_CFG4_CCFREQ GENMASK(31, 0)
-
-#define LOONGSON_CFG5 0x5
-#define LOONGSON_CFG5_CFM GENMASK(15, 0)
-#define LOONGSON_CFG5_CFD GENMASK(31, 16)
-
-#define LOONGSON_CFG6 0x6
-
-#define LOONGSON_CFG7 0x7
-#define LOONGSON_CFG7_GCCAEQRP BIT(0)
-#define LOONGSON_CFG7_UCAWINP BIT(1)
-
-static inline bool cpu_has_csr(void)
-{
- if (cpu_has_cfg())
- return (read_cpucfg(LOONGSON_CFG2) & LOONGSON_CFG2_LCSRP);
-
- return false;
-}
-
-static inline u32 csr_readl(u32 reg)
-{
- u32 __res;
-
- /* RDCSR reg, val */
- __asm__ __volatile__(
- "parse_r __res,%0\n\t"
- "parse_r reg,%1\n\t"
- ".insn \n\t"
- ".word (0xc8000118 | (reg << 21) | (__res << 11))\n\t"
- :"=r"(__res)
- :"r"(reg)
- :
- );
- return __res;
-}
-
-static inline u64 csr_readq(u32 reg)
-{
- u64 __res;
-
- /* DWRCSR reg, val */
- __asm__ __volatile__(
- "parse_r __res,%0\n\t"
- "parse_r reg,%1\n\t"
- ".insn \n\t"
- ".word (0xc8020118 | (reg << 21) | (__res << 11))\n\t"
- :"=r"(__res)
- :"r"(reg)
- :
- );
- return __res;
-}
-
-static inline void csr_writel(u32 val, u32 reg)
-{
- /* WRCSR reg, val */
- __asm__ __volatile__(
- "parse_r reg,%0\n\t"
- "parse_r val,%1\n\t"
- ".insn \n\t"
- ".word (0xc8010118 | (reg << 21) | (val << 11))\n\t"
- :
- :"r"(reg),"r"(val)
- :
- );
-}
-
-static inline void csr_writeq(u64 val, u32 reg)
-{
- /* DWRCSR reg, val */
- __asm__ __volatile__(
- "parse_r reg,%0\n\t"
- "parse_r val,%1\n\t"
- ".insn \n\t"
- ".word (0xc8030118 | (reg << 21) | (val << 11))\n\t"
- :
- :"r"(reg),"r"(val)
- :
- );
-}
-
-/* Public CSR Register can also be accessed with regular addresses */
-#define CSR_PUBLIC_MMIO_BASE 0x1fe00000
-
-#define MMIO_CSR(x) (void *)TO_UNCAC(CSR_PUBLIC_MMIO_BASE + x)
-
-#define LOONGSON_CSR_FEATURES 0x8
-#define LOONGSON_CSRF_TEMP BIT(0)
-#define LOONGSON_CSRF_NODECNT BIT(1)
-#define LOONGSON_CSRF_MSI BIT(2)
-#define LOONGSON_CSRF_EXTIOI BIT(3)
-#define LOONGSON_CSRF_IPI BIT(4)
-#define LOONGSON_CSRF_FREQ BIT(5)
-
-#define LOONGSON_CSR_VENDOR 0x10 /* Vendor name string, should be "Loongson" */
-#define LOONGSON_CSR_CPUNAME 0x20 /* Processor name string */
-#define LOONGSON_CSR_NODECNT 0x408
-#define LOONGSON_CSR_CPUTEMP 0x428
-
-/* PerCore CSR, only accessable by local cores */
-#define LOONGSON_CSR_IPI_STATUS 0x1000
-#define LOONGSON_CSR_IPI_EN 0x1004
-#define LOONGSON_CSR_IPI_SET 0x1008
-#define LOONGSON_CSR_IPI_CLEAR 0x100c
-#define LOONGSON_CSR_IPI_SEND 0x1040
-#define CSR_IPI_SEND_IP_SHIFT 0
-#define CSR_IPI_SEND_CPU_SHIFT 16
-#define CSR_IPI_SEND_BLOCK BIT(31)
-
-static inline u64 drdtime(void)
-{
- int rID = 0;
- u64 val = 0;
-
- __asm__ __volatile__(
- "parse_r rID,%0\n\t"
- "parse_r val,%1\n\t"
- ".insn \n\t"
- ".word (0xc8090118 | (rID << 21) | (val << 11))\n\t"
- :"=r"(rID),"=r"(val)
- :
- );
- return val;
-}
-
-#endif
diff --git a/arch/mips/include/asm/mach-loongson2ef/machine.h b/arch/mips/include/asm/mach-loongson2ef/machine.h
index 8ef7ea94a26d..4097267ef186 100644
--- a/arch/mips/include/asm/mach-loongson2ef/machine.h
+++ b/arch/mips/include/asm/mach-loongson2ef/machine.h
@@ -4,8 +4,8 @@
* Author: Wu Zhangjin <wuzhangjin@gmail.com>
*/
-#ifndef __ASM_MACH_LOONGSON64_MACHINE_H
-#define __ASM_MACH_LOONGSON64_MACHINE_H
+#ifndef __ASM_MACH_LOONGSON2EF_MACHINE_H
+#define __ASM_MACH_LOONGSON2EF_MACHINE_H
#ifdef CONFIG_LEMOTE_FULOONG2E
@@ -20,10 +20,4 @@
#endif
-#ifdef CONFIG_LOONGSON_MACH3X
-
-#define LOONGSON_MACHTYPE MACH_LOONGSON_GENERIC
-
-#endif /* CONFIG_LOONGSON_MACH3X */
-
-#endif /* __ASM_MACH_LOONGSON64_MACHINE_H */
+#endif /* __ASM_MACH_LOONGSON2EF_MACHINE_H */
diff --git a/arch/mips/include/asm/mach-loongson2ef/mc146818rtc.h b/arch/mips/include/asm/mach-loongson2ef/mc146818rtc.h
index ebdccfee50be..00d602629a55 100644
--- a/arch/mips/include/asm/mach-loongson2ef/mc146818rtc.h
+++ b/arch/mips/include/asm/mach-loongson2ef/mc146818rtc.h
@@ -7,8 +7,8 @@
*
* RTC routines for PC style attached Dallas chip.
*/
-#ifndef __ASM_MACH_LOONGSON64_MC146818RTC_H
-#define __ASM_MACH_LOONGSON64_MC146818RTC_H
+#ifndef __ASM_MACH_LOONGSON2EF_MC146818RTC_H
+#define __ASM_MACH_LOONGSON2EF_MC146818RTC_H
#include <linux/io.h>
@@ -33,4 +33,4 @@ static inline void CMOS_WRITE(unsigned char data, unsigned long addr)
#define mc146818_decode_year(year) ((year) < 70 ? (year) + 2000 : (year) + 1970)
#endif
-#endif /* __ASM_MACH_LOONGSON64_MC146818RTC_H */
+#endif /* __ASM_MACH_LOONGSON2EF_MC146818RTC_H */
diff --git a/arch/mips/include/asm/mach-loongson2ef/mem.h b/arch/mips/include/asm/mach-loongson2ef/mem.h
index ce33c174c04d..d1d759b8974e 100644
--- a/arch/mips/include/asm/mach-loongson2ef/mem.h
+++ b/arch/mips/include/asm/mach-loongson2ef/mem.h
@@ -4,8 +4,8 @@
* Author: Wu Zhangjin <wuzhangjin@gmail.com>
*/
-#ifndef __ASM_MACH_LOONGSON64_MEM_H
-#define __ASM_MACH_LOONGSON64_MEM_H
+#ifndef __ASM_MACH_LOONGSON2EF_MEM_H
+#define __ASM_MACH_LOONGSON2EF_MEM_H
/*
* high memory space
@@ -34,4 +34,4 @@
#define LOONGSON_MMIO_MEM_END 0x80000000
#endif
-#endif /* __ASM_MACH_LOONGSON64_MEM_H */
+#endif /* __ASM_MACH_LOONGSON2EF_MEM_H */
diff --git a/arch/mips/include/asm/mach-loongson2ef/mmzone.h b/arch/mips/include/asm/mach-loongson2ef/mmzone.h
deleted file mode 100644
index 62073d60739f..000000000000
--- a/arch/mips/include/asm/mach-loongson2ef/mmzone.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-/*
- * Copyright (C) 2010 Loongson Inc. & Lemote Inc. &
- * Institute of Computing Technology
- * Author: Xiang Gao, gaoxiang@ict.ac.cn
- * Huacai Chen, chenhc@lemote.com
- * Xiaofu Meng, Shuangshuang Zhang
- */
-#ifndef _ASM_MACH_MMZONE_H
-#define _ASM_MACH_MMZONE_H
-
-#include <boot_param.h>
-#define NODE_ADDRSPACE_SHIFT 44
-#define NODE0_ADDRSPACE_OFFSET 0x000000000000UL
-#define NODE1_ADDRSPACE_OFFSET 0x100000000000UL
-#define NODE2_ADDRSPACE_OFFSET 0x200000000000UL
-#define NODE3_ADDRSPACE_OFFSET 0x300000000000UL
-
-#define pa_to_nid(addr) (((addr) & 0xf00000000000) >> NODE_ADDRSPACE_SHIFT)
-#define nid_to_addrbase(nid) ((nid) << NODE_ADDRSPACE_SHIFT)
-
-#define LEVELS_PER_SLICE 128
-
-struct slice_data {
- unsigned long irq_enable_mask[2];
- int level_to_irq[LEVELS_PER_SLICE];
-};
-
-struct hub_data {
- cpumask_t h_cpus;
- unsigned long slice_map;
- unsigned long irq_alloc_mask[2];
- struct slice_data slice[2];
-};
-
-struct node_data {
- struct pglist_data pglist;
- struct hub_data hub;
- cpumask_t cpumask;
-};
-
-extern struct node_data *__node_data[];
-
-#define NODE_DATA(n) (&__node_data[(n)]->pglist)
-#define hub_data(n) (&__node_data[(n)]->hub)
-
-extern void setup_zero_pages(void);
-extern void __init prom_init_numa_memory(void);
-
-#endif /* _ASM_MACH_MMZONE_H */
diff --git a/arch/mips/include/asm/mach-loongson2ef/pci.h b/arch/mips/include/asm/mach-loongson2ef/pci.h
index 05cc9052772f..5588c5bc5395 100644
--- a/arch/mips/include/asm/mach-loongson2ef/pci.h
+++ b/arch/mips/include/asm/mach-loongson2ef/pci.h
@@ -4,8 +4,8 @@
* Copyright (c) 2009 Wu Zhangjin <wuzhangjin@gmail.com>
*/
-#ifndef __ASM_MACH_LOONGSON64_PCI_H_
-#define __ASM_MACH_LOONGSON64_PCI_H_
+#ifndef __ASM_MACH_LOONGSON2EF_PCI_H_
+#define __ASM_MACH_LOONGSON2EF_PCI_H_
extern struct pci_ops loongson_pci_ops;
@@ -35,16 +35,12 @@ extern struct pci_ops loongson_pci_ops;
#else /* loongson2f/32bit & loongson2e */
/* this pci memory space is mapped by pcimap in pci.c */
-#ifdef CONFIG_CPU_LOONGSON64
-#define LOONGSON_PCI_MEM_START 0x40000000UL
-#define LOONGSON_PCI_MEM_END 0x7effffffUL
-#else
#define LOONGSON_PCI_MEM_START LOONGSON_PCILO1_BASE
#define LOONGSON_PCI_MEM_END (LOONGSON_PCILO1_BASE + 0x04000000 * 2)
-#endif
+
/* this is an offset from mips_io_port_base */
#define LOONGSON_PCI_IO_START 0x00004000UL
#endif /* !CONFIG_CPU_SUPPORTS_ADDRWINCFG */
-#endif /* !__ASM_MACH_LOONGSON64_PCI_H_ */
+#endif /* !__ASM_MACH_LOONGSON2EF_PCI_H_ */
diff --git a/arch/mips/include/asm/mach-loongson2ef/spaces.h b/arch/mips/include/asm/mach-loongson2ef/spaces.h
index e85bc1d9c4f2..ba4e8e9b618e 100644
--- a/arch/mips/include/asm/mach-loongson2ef/spaces.h
+++ b/arch/mips/include/asm/mach-loongson2ef/spaces.h
@@ -1,6 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef __ASM_MACH_LOONGSON64_SPACES_H_
-#define __ASM_MACH_LOONGSON64_SPACES_H_
+#ifndef __ASM_MACH_LOONGSON2EF_SPACES_H_
+#define __ASM_MACH_LOONGSON2EF_SPACES_H_
#if defined(CONFIG_64BIT)
#define CAC_BASE _AC(0x9800000000000000, UL)
diff --git a/arch/mips/include/asm/mach-loongson2ef/topology.h b/arch/mips/include/asm/mach-loongson2ef/topology.h
deleted file mode 100644
index 7ff819ab308a..000000000000
--- a/arch/mips/include/asm/mach-loongson2ef/topology.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef _ASM_MACH_TOPOLOGY_H
-#define _ASM_MACH_TOPOLOGY_H
-
-#ifdef CONFIG_NUMA
-
-#define cpu_to_node(cpu) (cpu_logical_map(cpu) >> 2)
-#define cpumask_of_node(node) (&__node_data[(node)]->cpumask)
-
-struct pci_bus;
-extern int pcibus_to_node(struct pci_bus *);
-
-#define cpumask_of_pcibus(bus) (cpu_online_mask)
-
-extern unsigned char __node_distances[MAX_NUMNODES][MAX_NUMNODES];
-
-#define node_distance(from, to) (__node_distances[(from)][(to)])
-
-#endif
-
-#include <asm-generic/topology.h>
-
-#endif /* _ASM_MACH_TOPOLOGY_H */
diff --git a/arch/mips/include/asm/mach-loongson2ef/workarounds.h b/arch/mips/include/asm/mach-loongson2ef/workarounds.h
deleted file mode 100644
index 17b71172a097..000000000000
--- a/arch/mips/include/asm/mach-loongson2ef/workarounds.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef __ASM_MACH_LOONGSON64_WORKAROUNDS_H_
-#define __ASM_MACH_LOONGSON64_WORKAROUNDS_H_
-
-#define WORKAROUND_CPUFREQ 0x00000001
-#define WORKAROUND_CPUHOTPLUG 0x00000002
-
-#endif