diff options
Diffstat (limited to 'arch/mips/include/asm/netlogic')
| -rw-r--r-- | arch/mips/include/asm/netlogic/common.h | 16 | ||||
| -rw-r--r-- | arch/mips/include/asm/netlogic/haldefs.h | 2 | ||||
| -rw-r--r-- | arch/mips/include/asm/netlogic/mips-extns.h | 83 | ||||
| -rw-r--r-- | arch/mips/include/asm/netlogic/xlp-hal/bridge.h | 4 | ||||
| -rw-r--r-- | arch/mips/include/asm/netlogic/xlp-hal/cpucontrol.h | 2 | ||||
| -rw-r--r-- | arch/mips/include/asm/netlogic/xlp-hal/iomap.h | 46 | ||||
| -rw-r--r-- | arch/mips/include/asm/netlogic/xlp-hal/pcibus.h | 46 | ||||
| -rw-r--r-- | arch/mips/include/asm/netlogic/xlp-hal/pic.h | 108 | ||||
| -rw-r--r-- | arch/mips/include/asm/netlogic/xlp-hal/sys.h | 160 | ||||
| -rw-r--r-- | arch/mips/include/asm/netlogic/xlp-hal/uart.h | 4 | ||||
| -rw-r--r-- | arch/mips/include/asm/netlogic/xlr/fmn.h | 222 | ||||
| -rw-r--r-- | arch/mips/include/asm/netlogic/xlr/iomap.h | 88 | ||||
| -rw-r--r-- | arch/mips/include/asm/netlogic/xlr/msidef.h | 18 | ||||
| -rw-r--r-- | arch/mips/include/asm/netlogic/xlr/pic.h | 58 | 
14 files changed, 494 insertions, 363 deletions
diff --git a/arch/mips/include/asm/netlogic/common.h b/arch/mips/include/asm/netlogic/common.h index 42bfd5f1eee..aef560a51a7 100644 --- a/arch/mips/include/asm/netlogic/common.h +++ b/arch/mips/include/asm/netlogic/common.h @@ -38,11 +38,11 @@  /*   * Common SMP definitions   */ -#define	RESET_VEC_PHYS		0x1fc00000 -#define	RESET_DATA_PHYS		(RESET_VEC_PHYS + (1<<10)) -#define	BOOT_THREAD_MODE	0 -#define	BOOT_NMI_LOCK		4 -#define	BOOT_NMI_HANDLER	8 +#define RESET_VEC_PHYS		0x1fc00000 +#define RESET_DATA_PHYS		(RESET_VEC_PHYS + (1<<10)) +#define BOOT_THREAD_MODE	0 +#define BOOT_NMI_LOCK		4 +#define BOOT_NMI_HANDLER	8  #ifndef __ASSEMBLY__  #include <linux/cpumask.h> @@ -80,7 +80,7 @@ extern unsigned int nlm_threads_per_core;  extern cpumask_t nlm_cpumask;  struct nlm_soc_info { -	unsigned long coremask;	/* cores enabled on the soc */ +	unsigned long coremask; /* cores enabled on the soc */  	unsigned long ebase;  	uint64_t irqmask;  	uint64_t sysbase;	/* only for XLP */ @@ -88,9 +88,9 @@ struct nlm_soc_info {  	spinlock_t piclock;  }; -#define	nlm_get_node(i)		(&nlm_nodes[i]) +#define nlm_get_node(i)		(&nlm_nodes[i])  #ifdef CONFIG_CPU_XLR -#define	nlm_current_node()	(&nlm_nodes[0]) +#define nlm_current_node()	(&nlm_nodes[0])  #else  #define nlm_current_node()	(&nlm_nodes[nlm_nodeid()])  #endif diff --git a/arch/mips/include/asm/netlogic/haldefs.h b/arch/mips/include/asm/netlogic/haldefs.h index 72a0c788b47..419d8aef856 100644 --- a/arch/mips/include/asm/netlogic/haldefs.h +++ b/arch/mips/include/asm/netlogic/haldefs.h @@ -48,7 +48,7 @@   * access 64 bit addresses or data.   *   * We need to disable interrupts because we save just the lower 32 bits of - * registers in  interrupt handling. So if we get hit by an interrupt while + * registers in	 interrupt handling. So if we get hit by an interrupt while   * using the upper 32 bits of a register, we lose.   */  static inline uint32_t nlm_save_flags_kx(void) diff --git a/arch/mips/include/asm/netlogic/mips-extns.h b/arch/mips/include/asm/netlogic/mips-extns.h index 32ba6d95d47..8ad2e0f8171 100644 --- a/arch/mips/include/asm/netlogic/mips-extns.h +++ b/arch/mips/include/asm/netlogic/mips-extns.h @@ -49,7 +49,7 @@   */  #define write_c0_eimr(val)						\  do {									\ -	if (sizeof(unsigned long) == 4)	{				\ +	if (sizeof(unsigned long) == 4) {				\  		unsigned long __flags;					\  									\  		local_irq_save(__flags);				\ @@ -68,6 +68,85 @@ do {									\  		__write_64bit_c0_register($9, 7, (val));		\  } while (0) +/* + * Handling the 64 bit EIMR and EIRR registers in 32-bit mode with + * standard functions will be very inefficient. This provides + * optimized functions for the normal operations on the registers. + * + * Call with interrupts disabled. + */ +static inline void ack_c0_eirr(int irq) +{ +	__asm__ __volatile__( +		".set	push\n\t" +		".set	mips64\n\t" +		".set	noat\n\t" +		"li	$1, 1\n\t" +		"dsllv	$1, $1, %0\n\t" +		"dmtc0	$1, $9, 6\n\t" +		".set	pop" +		: : "r" (irq)); +} + +static inline void set_c0_eimr(int irq) +{ +	__asm__ __volatile__( +		".set	push\n\t" +		".set	mips64\n\t" +		".set	noat\n\t" +		"li	$1, 1\n\t" +		"dsllv	%0, $1, %0\n\t" +		"dmfc0	$1, $9, 7\n\t" +		"or	$1, %0\n\t" +		"dmtc0	$1, $9, 7\n\t" +		".set	pop" +		: "+r" (irq)); +} + +static inline void clear_c0_eimr(int irq) +{ +	__asm__ __volatile__( +		".set	push\n\t" +		".set	mips64\n\t" +		".set	noat\n\t" +		"li	$1, 1\n\t" +		"dsllv	%0, $1, %0\n\t" +		"dmfc0	$1, $9, 7\n\t" +		"or	$1, %0\n\t" +		"xor	$1, %0\n\t" +		"dmtc0	$1, $9, 7\n\t" +		".set	pop" +		: "+r" (irq)); +} + +/* + * Read c0 eimr and c0 eirr, do AND of the two values, the result is + * the interrupts which are raised and are not masked. + */ +static inline uint64_t read_c0_eirr_and_eimr(void) +{ +	uint64_t val; + +#ifdef CONFIG_64BIT +	val = read_c0_eimr() & read_c0_eirr(); +#else +	__asm__ __volatile__( +		".set	push\n\t" +		".set	mips64\n\t" +		".set	noat\n\t" +		"dmfc0	%M0, $9, 6\n\t" +		"dmfc0	%L0, $9, 7\n\t" +		"and	%M0, %L0\n\t" +		"dsll	%L0, %M0, 32\n\t" +		"dsra	%M0, %M0, 32\n\t" +		"dsra	%L0, %L0, 32\n\t" +		".set	pop" +		: "=r" (val)); +#endif + +	return val; +} +  static inline int hard_smp_processor_id(void)  {  	return __read_32bit_c0_register($15, 1) & 0x3ff; @@ -208,7 +287,7 @@ do {									\  			".set\tmips0\n\t"				\  			: : "Jr" (value));				\  	else								\ -		__asm__ __volatile__(                                   \ +		__asm__ __volatile__(					\  			".set\tmips32\n\t"				\  			"mtc2\t%z0, " #reg ", " #sel "\n\t"		\  			".set\tmips0\n\t"				\ diff --git a/arch/mips/include/asm/netlogic/xlp-hal/bridge.h b/arch/mips/include/asm/netlogic/xlp-hal/bridge.h index ca95133f1ad..790f0f1e55c 100644 --- a/arch/mips/include/asm/netlogic/xlp-hal/bridge.h +++ b/arch/mips/include/asm/netlogic/xlp-hal/bridge.h @@ -178,9 +178,9 @@  #define nlm_read_bridge_reg(b, r)	nlm_read_reg(b, r)  #define nlm_write_bridge_reg(b, r, v)	nlm_write_reg(b, r, v) -#define	nlm_get_bridge_pcibase(node)	\ +#define nlm_get_bridge_pcibase(node)	\  			nlm_pcicfg_base(XLP_IO_BRIDGE_OFFSET(node)) -#define	nlm_get_bridge_regbase(node)	\ +#define nlm_get_bridge_regbase(node)	\  			(nlm_get_bridge_pcibase(node) + XLP_IO_PCI_HDRSZ)  #endif /* __ASSEMBLY__ */ diff --git a/arch/mips/include/asm/netlogic/xlp-hal/cpucontrol.h b/arch/mips/include/asm/netlogic/xlp-hal/cpucontrol.h index 7b63a6b722a..6d2e58a9a54 100644 --- a/arch/mips/include/asm/netlogic/xlp-hal/cpucontrol.h +++ b/arch/mips/include/asm/netlogic/xlp-hal/cpucontrol.h @@ -46,6 +46,8 @@  #define CPU_BLOCKID_FPU		9  #define CPU_BLOCKID_MAP		10 +#define ICU_DEFEATURE		0x100 +  #define LSU_DEFEATURE		0x304  #define LSU_DEBUG_ADDR		0x305  #define LSU_DEBUG_DATA0		0x306 diff --git a/arch/mips/include/asm/netlogic/xlp-hal/iomap.h b/arch/mips/include/asm/netlogic/xlp-hal/iomap.h index 2c63f975464..9fac46fb791 100644 --- a/arch/mips/include/asm/netlogic/xlp-hal/iomap.h +++ b/arch/mips/include/asm/netlogic/xlp-hal/iomap.h @@ -35,12 +35,12 @@  #ifndef __NLM_HAL_IOMAP_H__  #define __NLM_HAL_IOMAP_H__ -#define XLP_DEFAULT_IO_BASE             0x18000000 +#define XLP_DEFAULT_IO_BASE		0x18000000  #define XLP_DEFAULT_PCI_ECFG_BASE	XLP_DEFAULT_IO_BASE  #define XLP_DEFAULT_PCI_CFG_BASE	0x1c000000  #define NMI_BASE			0xbfc00000 -#define	XLP_IO_CLK			133333333 +#define XLP_IO_CLK			133333333  #define XLP_PCIE_CFG_SIZE		0x1000		/* 4K */  #define XLP_PCIE_DEV_BLK_SIZE		(8 * XLP_PCIE_CFG_SIZE) @@ -96,8 +96,8 @@  #define XLP_IO_NAND_OFFSET(node)	XLP_HDR_OFFSET(node, 0, 7, 1)  #define XLP_IO_SPI_OFFSET(node)		XLP_HDR_OFFSET(node, 0, 7, 2)  /* SD flash */ -#define XLP_IO_SD_OFFSET(node)          XLP_HDR_OFFSET(node, 0, 7, 3) -#define XLP_IO_MMC_OFFSET(node, slot)   \ +#define XLP_IO_SD_OFFSET(node)		XLP_HDR_OFFSET(node, 0, 7, 3) +#define XLP_IO_MMC_OFFSET(node, slot)	\  		((XLP_IO_SD_OFFSET(node))+(slot*0x100)+XLP_IO_PCI_HDRSZ)  /* PCI config header register id's */ @@ -125,26 +125,26 @@  #define XLP_PCI_SBB_WT_REG		0x3f  /* PCI IDs for SoC device */ -#define	PCI_VENDOR_NETLOGIC		0x184e +#define PCI_VENDOR_NETLOGIC		0x184e -#define	PCI_DEVICE_ID_NLM_ROOT		0x1001 -#define	PCI_DEVICE_ID_NLM_ICI		0x1002 -#define	PCI_DEVICE_ID_NLM_PIC		0x1003 -#define	PCI_DEVICE_ID_NLM_PCIE		0x1004 -#define	PCI_DEVICE_ID_NLM_EHCI		0x1007 -#define	PCI_DEVICE_ID_NLM_OHCI		0x1008 -#define	PCI_DEVICE_ID_NLM_NAE		0x1009 -#define	PCI_DEVICE_ID_NLM_POE		0x100A -#define	PCI_DEVICE_ID_NLM_FMN		0x100B -#define	PCI_DEVICE_ID_NLM_RAID		0x100D -#define	PCI_DEVICE_ID_NLM_SAE		0x100D -#define	PCI_DEVICE_ID_NLM_RSA		0x100E -#define	PCI_DEVICE_ID_NLM_CMP		0x100F -#define	PCI_DEVICE_ID_NLM_UART		0x1010 -#define	PCI_DEVICE_ID_NLM_I2C		0x1011 -#define	PCI_DEVICE_ID_NLM_NOR		0x1015 -#define	PCI_DEVICE_ID_NLM_NAND		0x1016 -#define	PCI_DEVICE_ID_NLM_MMC		0x1018 +#define PCI_DEVICE_ID_NLM_ROOT		0x1001 +#define PCI_DEVICE_ID_NLM_ICI		0x1002 +#define PCI_DEVICE_ID_NLM_PIC		0x1003 +#define PCI_DEVICE_ID_NLM_PCIE		0x1004 +#define PCI_DEVICE_ID_NLM_EHCI		0x1007 +#define PCI_DEVICE_ID_NLM_OHCI		0x1008 +#define PCI_DEVICE_ID_NLM_NAE		0x1009 +#define PCI_DEVICE_ID_NLM_POE		0x100A +#define PCI_DEVICE_ID_NLM_FMN		0x100B +#define PCI_DEVICE_ID_NLM_RAID		0x100D +#define PCI_DEVICE_ID_NLM_SAE		0x100D +#define PCI_DEVICE_ID_NLM_RSA		0x100E +#define PCI_DEVICE_ID_NLM_CMP		0x100F +#define PCI_DEVICE_ID_NLM_UART		0x1010 +#define PCI_DEVICE_ID_NLM_I2C		0x1011 +#define PCI_DEVICE_ID_NLM_NOR		0x1015 +#define PCI_DEVICE_ID_NLM_NAND		0x1016 +#define PCI_DEVICE_ID_NLM_MMC		0x1018  #ifndef __ASSEMBLY__ diff --git a/arch/mips/include/asm/netlogic/xlp-hal/pcibus.h b/arch/mips/include/asm/netlogic/xlp-hal/pcibus.h index 66c323d1bd7..b559cb9f56e 100644 --- a/arch/mips/include/asm/netlogic/xlp-hal/pcibus.h +++ b/arch/mips/include/asm/netlogic/xlp-hal/pcibus.h @@ -33,42 +33,42 @@   */  #ifndef __NLM_HAL_PCIBUS_H__ -#define	__NLM_HAL_PCIBUS_H__ +#define __NLM_HAL_PCIBUS_H__  /* PCIE Memory and IO regions */ -#define	PCIE_MEM_BASE			0xd0000000ULL -#define	PCIE_MEM_LIMIT			0xdfffffffULL -#define	PCIE_IO_BASE			0x14000000ULL -#define	PCIE_IO_LIMIT			0x15ffffffULL +#define PCIE_MEM_BASE			0xd0000000ULL +#define PCIE_MEM_LIMIT			0xdfffffffULL +#define PCIE_IO_BASE			0x14000000ULL +#define PCIE_IO_LIMIT			0x15ffffffULL -#define	PCIE_BRIDGE_CMD			0x1 -#define	PCIE_BRIDGE_MSI_CAP		0x14 -#define	PCIE_BRIDGE_MSI_ADDRL		0x15 -#define	PCIE_BRIDGE_MSI_ADDRH		0x16 -#define	PCIE_BRIDGE_MSI_DATA		0x17 +#define PCIE_BRIDGE_CMD			0x1 +#define PCIE_BRIDGE_MSI_CAP		0x14 +#define PCIE_BRIDGE_MSI_ADDRL		0x15 +#define PCIE_BRIDGE_MSI_ADDRH		0x16 +#define PCIE_BRIDGE_MSI_DATA		0x17  /* XLP Global PCIE configuration space registers */ -#define	PCIE_BYTE_SWAP_MEM_BASE		0x247 -#define	PCIE_BYTE_SWAP_MEM_LIM		0x248 -#define	PCIE_BYTE_SWAP_IO_BASE		0x249 -#define	PCIE_BYTE_SWAP_IO_LIM		0x24A -#define	PCIE_MSI_STATUS			0x25A -#define	PCIE_MSI_EN			0x25B -#define	PCIE_INT_EN0			0x261 +#define PCIE_BYTE_SWAP_MEM_BASE		0x247 +#define PCIE_BYTE_SWAP_MEM_LIM		0x248 +#define PCIE_BYTE_SWAP_IO_BASE		0x249 +#define PCIE_BYTE_SWAP_IO_LIM		0x24A +#define PCIE_MSI_STATUS			0x25A +#define PCIE_MSI_EN			0x25B +#define PCIE_INT_EN0			0x261  /* PCIE_MSI_EN */ -#define	PCIE_MSI_VECTOR_INT_EN		0xFFFFFFFF +#define PCIE_MSI_VECTOR_INT_EN		0xFFFFFFFF  /* PCIE_INT_EN0 */ -#define	PCIE_MSI_INT_EN			(1 << 9) +#define PCIE_MSI_INT_EN			(1 << 9)  #ifndef __ASSEMBLY__ -#define	nlm_read_pcie_reg(b, r)		nlm_read_reg(b, r) -#define	nlm_write_pcie_reg(b, r, v)	nlm_write_reg(b, r, v) -#define	nlm_get_pcie_base(node, inst)	\ +#define nlm_read_pcie_reg(b, r)		nlm_read_reg(b, r) +#define nlm_write_pcie_reg(b, r, v)	nlm_write_reg(b, r, v) +#define nlm_get_pcie_base(node, inst)	\  			nlm_pcicfg_base(XLP_IO_PCIE_OFFSET(node, inst)) -#define	nlm_get_pcie_regbase(node, inst)	\ +#define nlm_get_pcie_regbase(node, inst)	\  			(nlm_get_pcie_base(node, inst) + XLP_IO_PCI_HDRSZ)  int xlp_pcie_link_irt(int link); diff --git a/arch/mips/include/asm/netlogic/xlp-hal/pic.h b/arch/mips/include/asm/netlogic/xlp-hal/pic.h index b2e53a5383a..3df53017fe5 100644 --- a/arch/mips/include/asm/netlogic/xlp-hal/pic.h +++ b/arch/mips/include/asm/netlogic/xlp-hal/pic.h @@ -36,7 +36,7 @@  #define _NLM_HAL_PIC_H  /* PIC Specific registers */ -#define PIC_CTRL                0x00 +#define PIC_CTRL		0x00  /* PIC control register defines */  #define PIC_CTRL_ITV		32 /* interrupt timeout value */ @@ -71,41 +71,41 @@  #define PIC_IRT_DB		16 /* Destination base */  #define PIC_IRT_DTE		0  /* Destination thread enables */ -#define PIC_BYTESWAP            0x02 -#define PIC_STATUS              0x04 +#define PIC_BYTESWAP		0x02 +#define PIC_STATUS		0x04  #define PIC_INTR_TIMEOUT	0x06  #define PIC_ICI0_INTR_TIMEOUT	0x08  #define PIC_ICI1_INTR_TIMEOUT	0x0a  #define PIC_ICI2_INTR_TIMEOUT	0x0c  #define PIC_IPI_CTL		0x0e -#define PIC_INT_ACK             0x10 -#define PIC_INT_PENDING0        0x12 -#define PIC_INT_PENDING1        0x14 -#define PIC_INT_PENDING2        0x16 +#define PIC_INT_ACK		0x10 +#define PIC_INT_PENDING0	0x12 +#define PIC_INT_PENDING1	0x14 +#define PIC_INT_PENDING2	0x16 -#define PIC_WDOG0_MAXVAL        0x18 -#define PIC_WDOG0_COUNT         0x1a -#define PIC_WDOG0_ENABLE0       0x1c -#define PIC_WDOG0_ENABLE1       0x1e -#define PIC_WDOG0_BEATCMD       0x20 -#define PIC_WDOG0_BEAT0         0x22 -#define PIC_WDOG0_BEAT1         0x24 +#define PIC_WDOG0_MAXVAL	0x18 +#define PIC_WDOG0_COUNT		0x1a +#define PIC_WDOG0_ENABLE0	0x1c +#define PIC_WDOG0_ENABLE1	0x1e +#define PIC_WDOG0_BEATCMD	0x20 +#define PIC_WDOG0_BEAT0		0x22 +#define PIC_WDOG0_BEAT1		0x24 -#define PIC_WDOG1_MAXVAL        0x26 -#define PIC_WDOG1_COUNT         0x28 -#define PIC_WDOG1_ENABLE0       0x2a -#define PIC_WDOG1_ENABLE1       0x2c -#define PIC_WDOG1_BEATCMD       0x2e -#define PIC_WDOG1_BEAT0         0x30 -#define PIC_WDOG1_BEAT1         0x32 +#define PIC_WDOG1_MAXVAL	0x26 +#define PIC_WDOG1_COUNT		0x28 +#define PIC_WDOG1_ENABLE0	0x2a +#define PIC_WDOG1_ENABLE1	0x2c +#define PIC_WDOG1_BEATCMD	0x2e +#define PIC_WDOG1_BEAT0		0x30 +#define PIC_WDOG1_BEAT1		0x32 -#define PIC_WDOG_MAXVAL(i)      (PIC_WDOG0_MAXVAL + ((i) ? 7 : 0)) -#define PIC_WDOG_COUNT(i)       (PIC_WDOG0_COUNT + ((i) ? 7 : 0)) -#define PIC_WDOG_ENABLE0(i)     (PIC_WDOG0_ENABLE0 + ((i) ? 7 : 0)) -#define PIC_WDOG_ENABLE1(i)     (PIC_WDOG0_ENABLE1 + ((i) ? 7 : 0)) -#define PIC_WDOG_BEATCMD(i)     (PIC_WDOG0_BEATCMD + ((i) ? 7 : 0)) -#define PIC_WDOG_BEAT0(i)       (PIC_WDOG0_BEAT0 + ((i) ? 7 : 0)) -#define PIC_WDOG_BEAT1(i)       (PIC_WDOG0_BEAT1 + ((i) ? 7 : 0)) +#define PIC_WDOG_MAXVAL(i)	(PIC_WDOG0_MAXVAL + ((i) ? 7 : 0)) +#define PIC_WDOG_COUNT(i)	(PIC_WDOG0_COUNT + ((i) ? 7 : 0)) +#define PIC_WDOG_ENABLE0(i)	(PIC_WDOG0_ENABLE0 + ((i) ? 7 : 0)) +#define PIC_WDOG_ENABLE1(i)	(PIC_WDOG0_ENABLE1 + ((i) ? 7 : 0)) +#define PIC_WDOG_BEATCMD(i)	(PIC_WDOG0_BEATCMD + ((i) ? 7 : 0)) +#define PIC_WDOG_BEAT0(i)	(PIC_WDOG0_BEAT0 + ((i) ? 7 : 0)) +#define PIC_WDOG_BEAT1(i)	(PIC_WDOG0_BEAT1 + ((i) ? 7 : 0))  #define PIC_TIMER0_MAXVAL    0x34  #define PIC_TIMER1_MAXVAL    0x36 @@ -127,28 +127,28 @@  #define PIC_TIMER7_COUNT     0x52  #define PIC_TIMER_COUNT(i)   (PIC_TIMER0_COUNT + ((i) * 2)) -#define PIC_ITE0_N0_N1          0x54 -#define PIC_ITE1_N0_N1          0x58 -#define PIC_ITE2_N0_N1          0x5c -#define PIC_ITE3_N0_N1          0x60 -#define PIC_ITE4_N0_N1          0x64 -#define PIC_ITE5_N0_N1          0x68 -#define PIC_ITE6_N0_N1          0x6c -#define PIC_ITE7_N0_N1          0x70 -#define PIC_ITE_N0_N1(i)        (PIC_ITE0_N0_N1 + ((i) * 4)) +#define PIC_ITE0_N0_N1		0x54 +#define PIC_ITE1_N0_N1		0x58 +#define PIC_ITE2_N0_N1		0x5c +#define PIC_ITE3_N0_N1		0x60 +#define PIC_ITE4_N0_N1		0x64 +#define PIC_ITE5_N0_N1		0x68 +#define PIC_ITE6_N0_N1		0x6c +#define PIC_ITE7_N0_N1		0x70 +#define PIC_ITE_N0_N1(i)	(PIC_ITE0_N0_N1 + ((i) * 4)) -#define PIC_ITE0_N2_N3          0x56 -#define PIC_ITE1_N2_N3          0x5a -#define PIC_ITE2_N2_N3          0x5e -#define PIC_ITE3_N2_N3          0x62 -#define PIC_ITE4_N2_N3          0x66 -#define PIC_ITE5_N2_N3          0x6a -#define PIC_ITE6_N2_N3          0x6e -#define PIC_ITE7_N2_N3          0x72 -#define PIC_ITE_N2_N3(i)        (PIC_ITE0_N2_N3 + ((i) * 4)) +#define PIC_ITE0_N2_N3		0x56 +#define PIC_ITE1_N2_N3		0x5a +#define PIC_ITE2_N2_N3		0x5e +#define PIC_ITE3_N2_N3		0x62 +#define PIC_ITE4_N2_N3		0x66 +#define PIC_ITE5_N2_N3		0x6a +#define PIC_ITE6_N2_N3		0x6e +#define PIC_ITE7_N2_N3		0x72 +#define PIC_ITE_N2_N3(i)	(PIC_ITE0_N2_N3 + ((i) * 4)) -#define PIC_IRT0                0x74 -#define PIC_IRT(i)              (PIC_IRT0 + ((i) * 2)) +#define PIC_IRT0		0x74 +#define PIC_IRT(i)		(PIC_IRT0 + ((i) * 2))  #define TIMER_CYCLES_MAXVAL	0xffffffffffffffffULL @@ -261,6 +261,8 @@  #define PIC_LOCAL_SCHEDULING		1  #define PIC_GLOBAL_SCHEDULING		0 +#define PIC_CLK_HZ			133333333 +  #define nlm_read_pic_reg(b, r)	nlm_read_reg64(b, r)  #define nlm_write_pic_reg(b, r, v) nlm_write_reg64(b, r, v)  #define nlm_get_pic_pcibase(node) nlm_pcicfg_base(XLP_IO_PIC_OFFSET(node)) @@ -315,6 +317,12 @@ nlm_pic_read_timer(uint64_t base, int timer)  	return nlm_read_pic_reg(base, PIC_TIMER_COUNT(timer));  } +static inline uint32_t +nlm_pic_read_timer32(uint64_t base, int timer) +{ +	return (uint32_t)nlm_read_pic_reg(base, PIC_TIMER_COUNT(timer)); +} +  static inline void  nlm_pic_write_timer(uint64_t base, int timer, uint64_t value)  { @@ -376,9 +384,9 @@ nlm_pic_ack(uint64_t base, int irt_num)  }  static inline void -nlm_pic_init_irt(uint64_t base, int irt, int irq, int hwt) +nlm_pic_init_irt(uint64_t base, int irt, int irq, int hwt, int en)  { -	nlm_pic_write_irt_direct(base, irt, 0, 0, 0, irq, hwt); +	nlm_pic_write_irt_direct(base, irt, en, 0, 0, irq, hwt);  }  int nlm_irq_to_irt(int irq); diff --git a/arch/mips/include/asm/netlogic/xlp-hal/sys.h b/arch/mips/include/asm/netlogic/xlp-hal/sys.h index 258e8cc00e9..470e52bfc06 100644 --- a/arch/mips/include/asm/netlogic/xlp-hal/sys.h +++ b/arch/mips/include/asm/netlogic/xlp-hal/sys.h @@ -40,89 +40,89 @@  * @author Netlogic Microsystems  * @brief HAL for System configuration registers  */ -#define	SYS_CHIP_RESET				0x00 -#define	SYS_POWER_ON_RESET_CFG			0x01 -#define	SYS_EFUSE_DEVICE_CFG_STATUS0		0x02 -#define	SYS_EFUSE_DEVICE_CFG_STATUS1		0x03 -#define	SYS_EFUSE_DEVICE_CFG_STATUS2		0x04 -#define	SYS_EFUSE_DEVICE_CFG3			0x05 -#define	SYS_EFUSE_DEVICE_CFG4			0x06 -#define	SYS_EFUSE_DEVICE_CFG5			0x07 -#define	SYS_EFUSE_DEVICE_CFG6			0x08 -#define	SYS_EFUSE_DEVICE_CFG7			0x09 -#define	SYS_PLL_CTRL				0x0a -#define	SYS_CPU_RESET				0x0b -#define	SYS_CPU_NONCOHERENT_MODE		0x0d -#define	SYS_CORE_DFS_DIS_CTRL			0x0e -#define	SYS_CORE_DFS_RST_CTRL			0x0f -#define	SYS_CORE_DFS_BYP_CTRL			0x10 -#define	SYS_CORE_DFS_PHA_CTRL			0x11 -#define	SYS_CORE_DFS_DIV_INC_CTRL		0x12 -#define	SYS_CORE_DFS_DIV_DEC_CTRL		0x13 -#define	SYS_CORE_DFS_DIV_VALUE			0x14 -#define	SYS_RESET				0x15 -#define	SYS_DFS_DIS_CTRL			0x16 -#define	SYS_DFS_RST_CTRL			0x17 -#define	SYS_DFS_BYP_CTRL			0x18 -#define	SYS_DFS_DIV_INC_CTRL			0x19 -#define	SYS_DFS_DIV_DEC_CTRL			0x1a -#define	SYS_DFS_DIV_VALUE0			0x1b -#define	SYS_DFS_DIV_VALUE1			0x1c -#define	SYS_SENSE_AMP_DLY			0x1d -#define	SYS_SOC_SENSE_AMP_DLY			0x1e -#define	SYS_CTRL0				0x1f -#define	SYS_CTRL1				0x20 -#define	SYS_TIMEOUT_BS1				0x21 -#define	SYS_BYTE_SWAP				0x22 -#define	SYS_VRM_VID				0x23 -#define	SYS_PWR_RAM_CMD				0x24 -#define	SYS_PWR_RAM_ADDR			0x25 -#define	SYS_PWR_RAM_DATA0			0x26 -#define	SYS_PWR_RAM_DATA1			0x27 -#define	SYS_PWR_RAM_DATA2			0x28 -#define	SYS_PWR_UCODE				0x29 -#define	SYS_CPU0_PWR_STATUS			0x2a -#define	SYS_CPU1_PWR_STATUS			0x2b -#define	SYS_CPU2_PWR_STATUS			0x2c -#define	SYS_CPU3_PWR_STATUS			0x2d -#define	SYS_CPU4_PWR_STATUS			0x2e -#define	SYS_CPU5_PWR_STATUS			0x2f -#define	SYS_CPU6_PWR_STATUS			0x30 -#define	SYS_CPU7_PWR_STATUS			0x31 -#define	SYS_STATUS				0x32 -#define	SYS_INT_POL				0x33 -#define	SYS_INT_TYPE				0x34 -#define	SYS_INT_STATUS				0x35 -#define	SYS_INT_MASK0				0x36 -#define	SYS_INT_MASK1				0x37 -#define	SYS_UCO_S_ECC				0x38 -#define	SYS_UCO_M_ECC				0x39 -#define	SYS_UCO_ADDR				0x3a -#define	SYS_UCO_INSTR				0x3b -#define	SYS_MEM_BIST0				0x3c -#define	SYS_MEM_BIST1				0x3d -#define	SYS_MEM_BIST2				0x3e -#define	SYS_MEM_BIST3				0x3f -#define	SYS_MEM_BIST4				0x40 -#define	SYS_MEM_BIST5				0x41 -#define	SYS_MEM_BIST6				0x42 -#define	SYS_MEM_BIST7				0x43 -#define	SYS_MEM_BIST8				0x44 -#define	SYS_MEM_BIST9				0x45 -#define	SYS_MEM_BIST10				0x46 -#define	SYS_MEM_BIST11				0x47 -#define	SYS_MEM_BIST12				0x48 -#define	SYS_SCRTCH0				0x49 -#define	SYS_SCRTCH1				0x4a -#define	SYS_SCRTCH2				0x4b -#define	SYS_SCRTCH3				0x4c +#define SYS_CHIP_RESET				0x00 +#define SYS_POWER_ON_RESET_CFG			0x01 +#define SYS_EFUSE_DEVICE_CFG_STATUS0		0x02 +#define SYS_EFUSE_DEVICE_CFG_STATUS1		0x03 +#define SYS_EFUSE_DEVICE_CFG_STATUS2		0x04 +#define SYS_EFUSE_DEVICE_CFG3			0x05 +#define SYS_EFUSE_DEVICE_CFG4			0x06 +#define SYS_EFUSE_DEVICE_CFG5			0x07 +#define SYS_EFUSE_DEVICE_CFG6			0x08 +#define SYS_EFUSE_DEVICE_CFG7			0x09 +#define SYS_PLL_CTRL				0x0a +#define SYS_CPU_RESET				0x0b +#define SYS_CPU_NONCOHERENT_MODE		0x0d +#define SYS_CORE_DFS_DIS_CTRL			0x0e +#define SYS_CORE_DFS_RST_CTRL			0x0f +#define SYS_CORE_DFS_BYP_CTRL			0x10 +#define SYS_CORE_DFS_PHA_CTRL			0x11 +#define SYS_CORE_DFS_DIV_INC_CTRL		0x12 +#define SYS_CORE_DFS_DIV_DEC_CTRL		0x13 +#define SYS_CORE_DFS_DIV_VALUE			0x14 +#define SYS_RESET				0x15 +#define SYS_DFS_DIS_CTRL			0x16 +#define SYS_DFS_RST_CTRL			0x17 +#define SYS_DFS_BYP_CTRL			0x18 +#define SYS_DFS_DIV_INC_CTRL			0x19 +#define SYS_DFS_DIV_DEC_CTRL			0x1a +#define SYS_DFS_DIV_VALUE0			0x1b +#define SYS_DFS_DIV_VALUE1			0x1c +#define SYS_SENSE_AMP_DLY			0x1d +#define SYS_SOC_SENSE_AMP_DLY			0x1e +#define SYS_CTRL0				0x1f +#define SYS_CTRL1				0x20 +#define SYS_TIMEOUT_BS1				0x21 +#define SYS_BYTE_SWAP				0x22 +#define SYS_VRM_VID				0x23 +#define SYS_PWR_RAM_CMD				0x24 +#define SYS_PWR_RAM_ADDR			0x25 +#define SYS_PWR_RAM_DATA0			0x26 +#define SYS_PWR_RAM_DATA1			0x27 +#define SYS_PWR_RAM_DATA2			0x28 +#define SYS_PWR_UCODE				0x29 +#define SYS_CPU0_PWR_STATUS			0x2a +#define SYS_CPU1_PWR_STATUS			0x2b +#define SYS_CPU2_PWR_STATUS			0x2c +#define SYS_CPU3_PWR_STATUS			0x2d +#define SYS_CPU4_PWR_STATUS			0x2e +#define SYS_CPU5_PWR_STATUS			0x2f +#define SYS_CPU6_PWR_STATUS			0x30 +#define SYS_CPU7_PWR_STATUS			0x31 +#define SYS_STATUS				0x32 +#define SYS_INT_POL				0x33 +#define SYS_INT_TYPE				0x34 +#define SYS_INT_STATUS				0x35 +#define SYS_INT_MASK0				0x36 +#define SYS_INT_MASK1				0x37 +#define SYS_UCO_S_ECC				0x38 +#define SYS_UCO_M_ECC				0x39 +#define SYS_UCO_ADDR				0x3a +#define SYS_UCO_INSTR				0x3b +#define SYS_MEM_BIST0				0x3c +#define SYS_MEM_BIST1				0x3d +#define SYS_MEM_BIST2				0x3e +#define SYS_MEM_BIST3				0x3f +#define SYS_MEM_BIST4				0x40 +#define SYS_MEM_BIST5				0x41 +#define SYS_MEM_BIST6				0x42 +#define SYS_MEM_BIST7				0x43 +#define SYS_MEM_BIST8				0x44 +#define SYS_MEM_BIST9				0x45 +#define SYS_MEM_BIST10				0x46 +#define SYS_MEM_BIST11				0x47 +#define SYS_MEM_BIST12				0x48 +#define SYS_SCRTCH0				0x49 +#define SYS_SCRTCH1				0x4a +#define SYS_SCRTCH2				0x4b +#define SYS_SCRTCH3				0x4c  #ifndef __ASSEMBLY__ -#define	nlm_read_sys_reg(b, r)		nlm_read_reg(b, r) -#define	nlm_write_sys_reg(b, r, v)	nlm_write_reg(b, r, v) -#define	nlm_get_sys_pcibase(node) nlm_pcicfg_base(XLP_IO_SYS_OFFSET(node)) -#define	nlm_get_sys_regbase(node) (nlm_get_sys_pcibase(node) + XLP_IO_PCI_HDRSZ) +#define nlm_read_sys_reg(b, r)		nlm_read_reg(b, r) +#define nlm_write_sys_reg(b, r, v)	nlm_write_reg(b, r, v) +#define nlm_get_sys_pcibase(node) nlm_pcicfg_base(XLP_IO_SYS_OFFSET(node)) +#define nlm_get_sys_regbase(node) (nlm_get_sys_pcibase(node) + XLP_IO_PCI_HDRSZ)  #endif  #endif diff --git a/arch/mips/include/asm/netlogic/xlp-hal/uart.h b/arch/mips/include/asm/netlogic/xlp-hal/uart.h index 6a7046ca094..86d16e1e607 100644 --- a/arch/mips/include/asm/netlogic/xlp-hal/uart.h +++ b/arch/mips/include/asm/netlogic/xlp-hal/uart.h @@ -91,8 +91,8 @@  #if !defined(LOCORE) && !defined(__ASSEMBLY__) -#define	nlm_read_uart_reg(b, r)		nlm_read_reg(b, r) -#define	nlm_write_uart_reg(b, r, v)	nlm_write_reg(b, r, v) +#define nlm_read_uart_reg(b, r)		nlm_read_reg(b, r) +#define nlm_write_uart_reg(b, r, v)	nlm_write_reg(b, r, v)  #define nlm_get_uart_pcibase(node, inst)	\  		nlm_pcicfg_base(XLP_IO_UART_OFFSET(node, inst))  #define nlm_get_uart_regbase(node, inst)	\ diff --git a/arch/mips/include/asm/netlogic/xlr/fmn.h b/arch/mips/include/asm/netlogic/xlr/fmn.h index 68d5167c86b..2a78929cef7 100644 --- a/arch/mips/include/asm/netlogic/xlr/fmn.h +++ b/arch/mips/include/asm/netlogic/xlr/fmn.h @@ -38,108 +38,108 @@  #include <asm/netlogic/mips-extns.h> /* for COP2 access */  /* Station IDs */ -#define	FMN_STNID_CPU0			0x00 -#define	FMN_STNID_CPU1			0x08 -#define	FMN_STNID_CPU2			0x10 -#define	FMN_STNID_CPU3			0x18 -#define	FMN_STNID_CPU4			0x20 -#define	FMN_STNID_CPU5			0x28 -#define	FMN_STNID_CPU6			0x30 -#define	FMN_STNID_CPU7			0x38 +#define FMN_STNID_CPU0			0x00 +#define FMN_STNID_CPU1			0x08 +#define FMN_STNID_CPU2			0x10 +#define FMN_STNID_CPU3			0x18 +#define FMN_STNID_CPU4			0x20 +#define FMN_STNID_CPU5			0x28 +#define FMN_STNID_CPU6			0x30 +#define FMN_STNID_CPU7			0x38 -#define	FMN_STNID_XGS0_TX		64 -#define	FMN_STNID_XMAC0_00_TX		64 -#define	FMN_STNID_XMAC0_01_TX		65 -#define	FMN_STNID_XMAC0_02_TX		66 -#define	FMN_STNID_XMAC0_03_TX		67 -#define	FMN_STNID_XMAC0_04_TX		68 -#define	FMN_STNID_XMAC0_05_TX		69 -#define	FMN_STNID_XMAC0_06_TX		70 -#define	FMN_STNID_XMAC0_07_TX		71 -#define	FMN_STNID_XMAC0_08_TX		72 -#define	FMN_STNID_XMAC0_09_TX		73 -#define	FMN_STNID_XMAC0_10_TX		74 -#define	FMN_STNID_XMAC0_11_TX		75 -#define	FMN_STNID_XMAC0_12_TX		76 -#define	FMN_STNID_XMAC0_13_TX		77 -#define	FMN_STNID_XMAC0_14_TX		78 -#define	FMN_STNID_XMAC0_15_TX		79 +#define FMN_STNID_XGS0_TX		64 +#define FMN_STNID_XMAC0_00_TX		64 +#define FMN_STNID_XMAC0_01_TX		65 +#define FMN_STNID_XMAC0_02_TX		66 +#define FMN_STNID_XMAC0_03_TX		67 +#define FMN_STNID_XMAC0_04_TX		68 +#define FMN_STNID_XMAC0_05_TX		69 +#define FMN_STNID_XMAC0_06_TX		70 +#define FMN_STNID_XMAC0_07_TX		71 +#define FMN_STNID_XMAC0_08_TX		72 +#define FMN_STNID_XMAC0_09_TX		73 +#define FMN_STNID_XMAC0_10_TX		74 +#define FMN_STNID_XMAC0_11_TX		75 +#define FMN_STNID_XMAC0_12_TX		76 +#define FMN_STNID_XMAC0_13_TX		77 +#define FMN_STNID_XMAC0_14_TX		78 +#define FMN_STNID_XMAC0_15_TX		79 -#define	FMN_STNID_XGS1_TX		80 -#define	FMN_STNID_XMAC1_00_TX		80 -#define	FMN_STNID_XMAC1_01_TX		81 -#define	FMN_STNID_XMAC1_02_TX		82 -#define	FMN_STNID_XMAC1_03_TX		83 -#define	FMN_STNID_XMAC1_04_TX		84 -#define	FMN_STNID_XMAC1_05_TX		85 -#define	FMN_STNID_XMAC1_06_TX		86 -#define	FMN_STNID_XMAC1_07_TX		87 -#define	FMN_STNID_XMAC1_08_TX		88 -#define	FMN_STNID_XMAC1_09_TX		89 -#define	FMN_STNID_XMAC1_10_TX		90 -#define	FMN_STNID_XMAC1_11_TX		91 -#define	FMN_STNID_XMAC1_12_TX		92 -#define	FMN_STNID_XMAC1_13_TX		93 -#define	FMN_STNID_XMAC1_14_TX		94 -#define	FMN_STNID_XMAC1_15_TX		95 +#define FMN_STNID_XGS1_TX		80 +#define FMN_STNID_XMAC1_00_TX		80 +#define FMN_STNID_XMAC1_01_TX		81 +#define FMN_STNID_XMAC1_02_TX		82 +#define FMN_STNID_XMAC1_03_TX		83 +#define FMN_STNID_XMAC1_04_TX		84 +#define FMN_STNID_XMAC1_05_TX		85 +#define FMN_STNID_XMAC1_06_TX		86 +#define FMN_STNID_XMAC1_07_TX		87 +#define FMN_STNID_XMAC1_08_TX		88 +#define FMN_STNID_XMAC1_09_TX		89 +#define FMN_STNID_XMAC1_10_TX		90 +#define FMN_STNID_XMAC1_11_TX		91 +#define FMN_STNID_XMAC1_12_TX		92 +#define FMN_STNID_XMAC1_13_TX		93 +#define FMN_STNID_XMAC1_14_TX		94 +#define FMN_STNID_XMAC1_15_TX		95 -#define	FMN_STNID_GMAC			96 -#define	FMN_STNID_GMACJFR_0		96 -#define	FMN_STNID_GMACRFR_0		97 -#define	FMN_STNID_GMACTX0		98 -#define	FMN_STNID_GMACTX1		99 -#define	FMN_STNID_GMACTX2		100 -#define	FMN_STNID_GMACTX3		101 -#define	FMN_STNID_GMACJFR_1		102 -#define	FMN_STNID_GMACRFR_1		103 +#define FMN_STNID_GMAC			96 +#define FMN_STNID_GMACJFR_0		96 +#define FMN_STNID_GMACRFR_0		97 +#define FMN_STNID_GMACTX0		98 +#define FMN_STNID_GMACTX1		99 +#define FMN_STNID_GMACTX2		100 +#define FMN_STNID_GMACTX3		101 +#define FMN_STNID_GMACJFR_1		102 +#define FMN_STNID_GMACRFR_1		103 -#define	FMN_STNID_DMA			104 -#define	FMN_STNID_DMA_0			104 -#define	FMN_STNID_DMA_1			105 -#define	FMN_STNID_DMA_2			106 -#define	FMN_STNID_DMA_3			107 +#define FMN_STNID_DMA			104 +#define FMN_STNID_DMA_0			104 +#define FMN_STNID_DMA_1			105 +#define FMN_STNID_DMA_2			106 +#define FMN_STNID_DMA_3			107 -#define	FMN_STNID_XGS0FR		112 -#define	FMN_STNID_XMAC0JFR		112 -#define	FMN_STNID_XMAC0RFR		113 +#define FMN_STNID_XGS0FR		112 +#define FMN_STNID_XMAC0JFR		112 +#define FMN_STNID_XMAC0RFR		113 -#define	FMN_STNID_XGS1FR		114 -#define	FMN_STNID_XMAC1JFR		114 -#define	FMN_STNID_XMAC1RFR		115 -#define	FMN_STNID_SEC			120 -#define	FMN_STNID_SEC0			120 -#define	FMN_STNID_SEC1			121 -#define	FMN_STNID_SEC2			122 -#define	FMN_STNID_SEC3			123 -#define	FMN_STNID_PK0			124 -#define	FMN_STNID_SEC_RSA		124 -#define	FMN_STNID_SEC_RSVD0		125 -#define	FMN_STNID_SEC_RSVD1		126 -#define	FMN_STNID_SEC_RSVD2		127 +#define FMN_STNID_XGS1FR		114 +#define FMN_STNID_XMAC1JFR		114 +#define FMN_STNID_XMAC1RFR		115 +#define FMN_STNID_SEC			120 +#define FMN_STNID_SEC0			120 +#define FMN_STNID_SEC1			121 +#define FMN_STNID_SEC2			122 +#define FMN_STNID_SEC3			123 +#define FMN_STNID_PK0			124 +#define FMN_STNID_SEC_RSA		124 +#define FMN_STNID_SEC_RSVD0		125 +#define FMN_STNID_SEC_RSVD1		126 +#define FMN_STNID_SEC_RSVD2		127 -#define	FMN_STNID_GMAC1			80 -#define	FMN_STNID_GMAC1_FR_0		81 -#define	FMN_STNID_GMAC1_TX0		82 -#define	FMN_STNID_GMAC1_TX1		83 -#define	FMN_STNID_GMAC1_TX2		84 -#define	FMN_STNID_GMAC1_TX3		85 -#define	FMN_STNID_GMAC1_FR_1		87 -#define	FMN_STNID_GMAC0			96 -#define	FMN_STNID_GMAC0_FR_0		97 -#define	FMN_STNID_GMAC0_TX0		98 -#define	FMN_STNID_GMAC0_TX1		99 -#define	FMN_STNID_GMAC0_TX2		100 -#define	FMN_STNID_GMAC0_TX3		101 -#define	FMN_STNID_GMAC0_FR_1		103 -#define	FMN_STNID_CMP_0			108 -#define	FMN_STNID_CMP_1			109 -#define	FMN_STNID_CMP_2			110 -#define	FMN_STNID_CMP_3			111 -#define	FMN_STNID_PCIE_0		116 -#define	FMN_STNID_PCIE_1		117 -#define	FMN_STNID_PCIE_2		118 -#define	FMN_STNID_PCIE_3		119 -#define	FMN_STNID_XLS_PK0		121 +#define FMN_STNID_GMAC1			80 +#define FMN_STNID_GMAC1_FR_0		81 +#define FMN_STNID_GMAC1_TX0		82 +#define FMN_STNID_GMAC1_TX1		83 +#define FMN_STNID_GMAC1_TX2		84 +#define FMN_STNID_GMAC1_TX3		85 +#define FMN_STNID_GMAC1_FR_1		87 +#define FMN_STNID_GMAC0			96 +#define FMN_STNID_GMAC0_FR_0		97 +#define FMN_STNID_GMAC0_TX0		98 +#define FMN_STNID_GMAC0_TX1		99 +#define FMN_STNID_GMAC0_TX2		100 +#define FMN_STNID_GMAC0_TX3		101 +#define FMN_STNID_GMAC0_FR_1		103 +#define FMN_STNID_CMP_0			108 +#define FMN_STNID_CMP_1			109 +#define FMN_STNID_CMP_2			110 +#define FMN_STNID_CMP_3			111 +#define FMN_STNID_PCIE_0		116 +#define FMN_STNID_PCIE_1		117 +#define FMN_STNID_PCIE_2		118 +#define FMN_STNID_PCIE_3		119 +#define FMN_STNID_XLS_PK0		121  #define nlm_read_c2_cc0(s)		__read_32bit_c2_register($16, s)  #define nlm_read_c2_cc1(s)		__read_32bit_c2_register($17, s) @@ -175,25 +175,25 @@  #define nlm_write_c2_cc14(s, v)		__write_32bit_c2_register($30, s, v)  #define nlm_write_c2_cc15(s, v)		__write_32bit_c2_register($31, s, v) -#define	nlm_read_c2_status(sel)		__read_32bit_c2_register($2, 0) -#define	nlm_read_c2_config()		__read_32bit_c2_register($3, 0) -#define	nlm_write_c2_config(v)		__write_32bit_c2_register($3, 0, v) -#define	nlm_read_c2_bucksize(b)		__read_32bit_c2_register($4, b) -#define	nlm_write_c2_bucksize(b, v)	__write_32bit_c2_register($4, b, v) +#define nlm_read_c2_status(sel)		__read_32bit_c2_register($2, 0) +#define nlm_read_c2_config()		__read_32bit_c2_register($3, 0) +#define nlm_write_c2_config(v)		__write_32bit_c2_register($3, 0, v) +#define nlm_read_c2_bucksize(b)		__read_32bit_c2_register($4, b) +#define nlm_write_c2_bucksize(b, v)	__write_32bit_c2_register($4, b, v) -#define	nlm_read_c2_rx_msg0()		__read_64bit_c2_register($1, 0) -#define	nlm_read_c2_rx_msg1()		__read_64bit_c2_register($1, 1) -#define	nlm_read_c2_rx_msg2()		__read_64bit_c2_register($1, 2) -#define	nlm_read_c2_rx_msg3()		__read_64bit_c2_register($1, 3) +#define nlm_read_c2_rx_msg0()		__read_64bit_c2_register($1, 0) +#define nlm_read_c2_rx_msg1()		__read_64bit_c2_register($1, 1) +#define nlm_read_c2_rx_msg2()		__read_64bit_c2_register($1, 2) +#define nlm_read_c2_rx_msg3()		__read_64bit_c2_register($1, 3) -#define	nlm_write_c2_tx_msg0(v)		__write_64bit_c2_register($0, 0, v) -#define	nlm_write_c2_tx_msg1(v)		__write_64bit_c2_register($0, 1, v) -#define	nlm_write_c2_tx_msg2(v)		__write_64bit_c2_register($0, 2, v) -#define	nlm_write_c2_tx_msg3(v)		__write_64bit_c2_register($0, 3, v) +#define nlm_write_c2_tx_msg0(v)		__write_64bit_c2_register($0, 0, v) +#define nlm_write_c2_tx_msg1(v)		__write_64bit_c2_register($0, 1, v) +#define nlm_write_c2_tx_msg2(v)		__write_64bit_c2_register($0, 2, v) +#define nlm_write_c2_tx_msg3(v)		__write_64bit_c2_register($0, 3, v) -#define	FMN_STN_RX_QSIZE		256 -#define	FMN_NSTATIONS			128 -#define	FMN_CORE_NBUCKETS		8 +#define FMN_STN_RX_QSIZE		256 +#define FMN_NSTATIONS			128 +#define FMN_CORE_NBUCKETS		8  static inline void nlm_msgsnd(unsigned int stid)  { diff --git a/arch/mips/include/asm/netlogic/xlr/iomap.h b/arch/mips/include/asm/netlogic/xlr/iomap.h index 2e768f032e8..ff4533d6ee6 100644 --- a/arch/mips/include/asm/netlogic/xlr/iomap.h +++ b/arch/mips/include/asm/netlogic/xlr/iomap.h @@ -35,66 +35,66 @@  #ifndef _ASM_NLM_IOMAP_H  #define _ASM_NLM_IOMAP_H -#define DEFAULT_NETLOGIC_IO_BASE           CKSEG1ADDR(0x1ef00000) -#define NETLOGIC_IO_DDR2_CHN0_OFFSET       0x01000 -#define NETLOGIC_IO_DDR2_CHN1_OFFSET       0x02000 -#define NETLOGIC_IO_DDR2_CHN2_OFFSET       0x03000 -#define NETLOGIC_IO_DDR2_CHN3_OFFSET       0x04000 -#define NETLOGIC_IO_PIC_OFFSET             0x08000 -#define NETLOGIC_IO_UART_0_OFFSET          0x14000 -#define NETLOGIC_IO_UART_1_OFFSET          0x15100 +#define DEFAULT_NETLOGIC_IO_BASE	   CKSEG1ADDR(0x1ef00000) +#define NETLOGIC_IO_DDR2_CHN0_OFFSET	   0x01000 +#define NETLOGIC_IO_DDR2_CHN1_OFFSET	   0x02000 +#define NETLOGIC_IO_DDR2_CHN2_OFFSET	   0x03000 +#define NETLOGIC_IO_DDR2_CHN3_OFFSET	   0x04000 +#define NETLOGIC_IO_PIC_OFFSET		   0x08000 +#define NETLOGIC_IO_UART_0_OFFSET	   0x14000 +#define NETLOGIC_IO_UART_1_OFFSET	   0x15100 -#define NETLOGIC_IO_SIZE                   0x1000 +#define NETLOGIC_IO_SIZE		   0x1000 -#define NETLOGIC_IO_BRIDGE_OFFSET          0x00000 +#define NETLOGIC_IO_BRIDGE_OFFSET	   0x00000 -#define NETLOGIC_IO_RLD2_CHN0_OFFSET       0x05000 -#define NETLOGIC_IO_RLD2_CHN1_OFFSET       0x06000 +#define NETLOGIC_IO_RLD2_CHN0_OFFSET	   0x05000 +#define NETLOGIC_IO_RLD2_CHN1_OFFSET	   0x06000 -#define NETLOGIC_IO_SRAM_OFFSET            0x07000 +#define NETLOGIC_IO_SRAM_OFFSET		   0x07000 -#define NETLOGIC_IO_PCIX_OFFSET            0x09000 -#define NETLOGIC_IO_HT_OFFSET              0x0A000 +#define NETLOGIC_IO_PCIX_OFFSET		   0x09000 +#define NETLOGIC_IO_HT_OFFSET		   0x0A000 -#define NETLOGIC_IO_SECURITY_OFFSET        0x0B000 +#define NETLOGIC_IO_SECURITY_OFFSET	   0x0B000 -#define NETLOGIC_IO_GMAC_0_OFFSET          0x0C000 -#define NETLOGIC_IO_GMAC_1_OFFSET          0x0D000 -#define NETLOGIC_IO_GMAC_2_OFFSET          0x0E000 -#define NETLOGIC_IO_GMAC_3_OFFSET          0x0F000 +#define NETLOGIC_IO_GMAC_0_OFFSET	   0x0C000 +#define NETLOGIC_IO_GMAC_1_OFFSET	   0x0D000 +#define NETLOGIC_IO_GMAC_2_OFFSET	   0x0E000 +#define NETLOGIC_IO_GMAC_3_OFFSET	   0x0F000  /* XLS devices */ -#define NETLOGIC_IO_GMAC_4_OFFSET          0x20000 -#define NETLOGIC_IO_GMAC_5_OFFSET          0x21000 -#define NETLOGIC_IO_GMAC_6_OFFSET          0x22000 -#define NETLOGIC_IO_GMAC_7_OFFSET          0x23000 +#define NETLOGIC_IO_GMAC_4_OFFSET	   0x20000 +#define NETLOGIC_IO_GMAC_5_OFFSET	   0x21000 +#define NETLOGIC_IO_GMAC_6_OFFSET	   0x22000 +#define NETLOGIC_IO_GMAC_7_OFFSET	   0x23000 -#define NETLOGIC_IO_PCIE_0_OFFSET          0x1E000 -#define NETLOGIC_IO_PCIE_1_OFFSET          0x1F000 -#define NETLOGIC_IO_SRIO_0_OFFSET          0x1E000 -#define NETLOGIC_IO_SRIO_1_OFFSET          0x1F000 +#define NETLOGIC_IO_PCIE_0_OFFSET	   0x1E000 +#define NETLOGIC_IO_PCIE_1_OFFSET	   0x1F000 +#define NETLOGIC_IO_SRIO_0_OFFSET	   0x1E000 +#define NETLOGIC_IO_SRIO_1_OFFSET	   0x1F000 -#define NETLOGIC_IO_USB_0_OFFSET           0x24000 -#define NETLOGIC_IO_USB_1_OFFSET           0x25000 +#define NETLOGIC_IO_USB_0_OFFSET	   0x24000 +#define NETLOGIC_IO_USB_1_OFFSET	   0x25000 -#define NETLOGIC_IO_COMP_OFFSET            0x1D000 +#define NETLOGIC_IO_COMP_OFFSET		   0x1D000  /* end XLS devices */  /* XLR devices */ -#define NETLOGIC_IO_SPI4_0_OFFSET          0x10000 -#define NETLOGIC_IO_XGMAC_0_OFFSET         0x11000 -#define NETLOGIC_IO_SPI4_1_OFFSET          0x12000 -#define NETLOGIC_IO_XGMAC_1_OFFSET         0x13000 +#define NETLOGIC_IO_SPI4_0_OFFSET	   0x10000 +#define NETLOGIC_IO_XGMAC_0_OFFSET	   0x11000 +#define NETLOGIC_IO_SPI4_1_OFFSET	   0x12000 +#define NETLOGIC_IO_XGMAC_1_OFFSET	   0x13000  /* end XLR devices */ -#define NETLOGIC_IO_I2C_0_OFFSET           0x16000 -#define NETLOGIC_IO_I2C_1_OFFSET           0x17000 +#define NETLOGIC_IO_I2C_0_OFFSET	   0x16000 +#define NETLOGIC_IO_I2C_1_OFFSET	   0x17000 -#define NETLOGIC_IO_GPIO_OFFSET            0x18000 -#define NETLOGIC_IO_FLASH_OFFSET           0x19000 -#define NETLOGIC_IO_TB_OFFSET              0x1C000 +#define NETLOGIC_IO_GPIO_OFFSET		   0x18000 +#define NETLOGIC_IO_FLASH_OFFSET	   0x19000 +#define NETLOGIC_IO_TB_OFFSET		   0x1C000 -#define NETLOGIC_CPLD_OFFSET               KSEG1ADDR(0x1d840000) +#define NETLOGIC_CPLD_OFFSET		   KSEG1ADDR(0x1d840000)  /*   * Base Address (Virtual) of the PCI Config address space @@ -102,8 +102,8 @@   * Config space spans 256 (num of buses) * 256 (num functions) * 256 bytes   * ie 1<<24 = 16M   */ -#define DEFAULT_PCI_CONFIG_BASE         0x18000000 -#define DEFAULT_HT_TYPE0_CFG_BASE       0x16000000 -#define DEFAULT_HT_TYPE1_CFG_BASE       0x17000000 +#define DEFAULT_PCI_CONFIG_BASE		0x18000000 +#define DEFAULT_HT_TYPE0_CFG_BASE	0x16000000 +#define DEFAULT_HT_TYPE1_CFG_BASE	0x17000000  #endif diff --git a/arch/mips/include/asm/netlogic/xlr/msidef.h b/arch/mips/include/asm/netlogic/xlr/msidef.h index 7e39d40be4f..c95d18edf12 100644 --- a/arch/mips/include/asm/netlogic/xlr/msidef.h +++ b/arch/mips/include/asm/netlogic/xlr/msidef.h @@ -45,21 +45,21 @@   */  #define MSI_DATA_VECTOR_SHIFT		0 -#define  MSI_DATA_VECTOR_MASK		0x000000ff +#define	 MSI_DATA_VECTOR_MASK		0x000000ff  #define	 MSI_DATA_VECTOR(v)		(((v) << MSI_DATA_VECTOR_SHIFT) & \  						MSI_DATA_VECTOR_MASK)  #define MSI_DATA_DELIVERY_MODE_SHIFT	8 -#define  MSI_DATA_DELIVERY_FIXED	(0 << MSI_DATA_DELIVERY_MODE_SHIFT) -#define  MSI_DATA_DELIVERY_LOWPRI	(1 << MSI_DATA_DELIVERY_MODE_SHIFT) +#define	 MSI_DATA_DELIVERY_FIXED	(0 << MSI_DATA_DELIVERY_MODE_SHIFT) +#define	 MSI_DATA_DELIVERY_LOWPRI	(1 << MSI_DATA_DELIVERY_MODE_SHIFT)  #define MSI_DATA_LEVEL_SHIFT		14  #define	 MSI_DATA_LEVEL_DEASSERT	(0 << MSI_DATA_LEVEL_SHIFT)  #define	 MSI_DATA_LEVEL_ASSERT		(1 << MSI_DATA_LEVEL_SHIFT)  #define MSI_DATA_TRIGGER_SHIFT		15 -#define  MSI_DATA_TRIGGER_EDGE		(0 << MSI_DATA_TRIGGER_SHIFT) -#define  MSI_DATA_TRIGGER_LEVEL		(1 << MSI_DATA_TRIGGER_SHIFT) +#define	 MSI_DATA_TRIGGER_EDGE		(0 << MSI_DATA_TRIGGER_SHIFT) +#define	 MSI_DATA_TRIGGER_LEVEL		(1 << MSI_DATA_TRIGGER_SHIFT)  /*   * Shift/mask fields for msi address @@ -69,16 +69,16 @@  #define MSI_ADDR_BASE_LO		0xfee00000  #define MSI_ADDR_DEST_MODE_SHIFT	2 -#define  MSI_ADDR_DEST_MODE_PHYSICAL	(0 << MSI_ADDR_DEST_MODE_SHIFT) +#define	 MSI_ADDR_DEST_MODE_PHYSICAL	(0 << MSI_ADDR_DEST_MODE_SHIFT)  #define	 MSI_ADDR_DEST_MODE_LOGICAL	(1 << MSI_ADDR_DEST_MODE_SHIFT)  #define MSI_ADDR_REDIRECTION_SHIFT	3 -#define  MSI_ADDR_REDIRECTION_CPU	(0 << MSI_ADDR_REDIRECTION_SHIFT) -#define  MSI_ADDR_REDIRECTION_LOWPRI	(1 << MSI_ADDR_REDIRECTION_SHIFT) +#define	 MSI_ADDR_REDIRECTION_CPU	(0 << MSI_ADDR_REDIRECTION_SHIFT) +#define	 MSI_ADDR_REDIRECTION_LOWPRI	(1 << MSI_ADDR_REDIRECTION_SHIFT)  #define MSI_ADDR_DEST_ID_SHIFT		12  #define	 MSI_ADDR_DEST_ID_MASK		0x00ffff0 -#define  MSI_ADDR_DEST_ID(dest)		(((dest) << MSI_ADDR_DEST_ID_SHIFT) & \ +#define	 MSI_ADDR_DEST_ID(dest)		(((dest) << MSI_ADDR_DEST_ID_SHIFT) & \  						 MSI_ADDR_DEST_ID_MASK)  #endif /* ASM_RMI_MSIDEF_H */ diff --git a/arch/mips/include/asm/netlogic/xlr/pic.h b/arch/mips/include/asm/netlogic/xlr/pic.h index 9a691b1f91b..63c99176dff 100644 --- a/arch/mips/include/asm/netlogic/xlr/pic.h +++ b/arch/mips/include/asm/netlogic/xlr/pic.h @@ -35,10 +35,11 @@  #ifndef _ASM_NLM_XLR_PIC_H  #define _ASM_NLM_XLR_PIC_H -#define PIC_CLKS_PER_SEC		66666666ULL +#define PIC_CLK_HZ			66666666  /* PIC hardware interrupt numbers */  #define PIC_IRT_WD_INDEX		0  #define PIC_IRT_TIMER_0_INDEX		1 +#define PIC_IRT_TIMER_INDEX(i)		((i) + PIC_IRT_TIMER_0_INDEX)  #define PIC_IRT_TIMER_1_INDEX		2  #define PIC_IRT_TIMER_2_INDEX		3  #define PIC_IRT_TIMER_3_INDEX		4 @@ -99,6 +100,7 @@  /* PIC Registers */  #define PIC_CTRL			0x00 +#define PIC_CTRL_STE			8	/* timer enable start bit */  #define PIC_IPI				0x04  #define PIC_INT_ACK			0x06 @@ -116,7 +118,7 @@  #define PIC_TIMER_COUNT_0_BASE		0x120  #define PIC_TIMER_COUNT_1_BASE		0x130 -#define PIC_IRT_0(picintr)      (PIC_IRT_0_BASE + (picintr)) +#define PIC_IRT_0(picintr)	(PIC_IRT_0_BASE + (picintr))  #define PIC_IRT_1(picintr)	(PIC_IRT_1_BASE + (picintr))  #define PIC_TIMER_MAXVAL_0(i)	(PIC_TIMER_MAXVAL_0_BASE + (i)) @@ -130,9 +132,9 @@   * 8-39. This leaves the IRQ 0-7 for cpu interrupts like   * count/compare and FMN   */ -#define PIC_IRQ_BASE            8 -#define PIC_INTR_TO_IRQ(i)      (PIC_IRQ_BASE + (i)) -#define PIC_IRQ_TO_INTR(i)      ((i) - PIC_IRQ_BASE) +#define PIC_IRQ_BASE		8 +#define PIC_INTR_TO_IRQ(i)	(PIC_IRQ_BASE + (i)) +#define PIC_IRQ_TO_INTR(i)	((i) - PIC_IRQ_BASE)  #define PIC_IRT_FIRST_IRQ	PIC_IRQ_BASE  #define PIC_WD_IRQ		PIC_INTR_TO_IRQ(PIC_IRT_WD_INDEX) @@ -168,7 +170,7 @@  #define PIC_BRIDGE_AERR_IRQ	PIC_INTR_TO_IRQ(PIC_IRT_BRIDGE_AERR_INDEX)  #define PIC_BRIDGE_BERR_IRQ	PIC_INTR_TO_IRQ(PIC_IRT_BRIDGE_BERR_INDEX)  #define PIC_BRIDGE_TB_XLR_IRQ	PIC_INTR_TO_IRQ(PIC_IRT_BRIDGE_TB_XLR_INDEX) -#define PIC_BRIDGE_AERR_NMI_IRQ	PIC_INTR_TO_IRQ(PIC_IRT_BRIDGE_AERR_NMI_INDEX) +#define PIC_BRIDGE_AERR_NMI_IRQ PIC_INTR_TO_IRQ(PIC_IRT_BRIDGE_AERR_NMI_INDEX)  /* XLS defines */  #define PIC_GMAC_4_IRQ		PIC_INTR_TO_IRQ(PIC_IRT_GMAC4_INDEX)  #define PIC_GMAC_5_IRQ		PIC_INTR_TO_IRQ(PIC_IRT_GMAC5_INDEX) @@ -251,12 +253,52 @@ nlm_pic_ack(uint64_t base, int irt)  }  static inline void -nlm_pic_init_irt(uint64_t base, int irt, int irq, int hwt) +nlm_pic_init_irt(uint64_t base, int irt, int irq, int hwt, int en)  {  	nlm_write_reg(base, PIC_IRT_0(irt), (1u << hwt));  	/* local scheduling, invalid, level by default */  	nlm_write_reg(base, PIC_IRT_1(irt), -		(1 << 30) | (1 << 6) | irq); +		(en << 30) | (1 << 6) | irq); +} + +static inline uint64_t +nlm_pic_read_timer(uint64_t base, int timer) +{ +	uint32_t up1, up2, low; + +	up1 = nlm_read_reg(base, PIC_TIMER_COUNT_1(timer)); +	low = nlm_read_reg(base, PIC_TIMER_COUNT_0(timer)); +	up2 = nlm_read_reg(base, PIC_TIMER_COUNT_1(timer)); + +	if (up1 != up2) /* wrapped, get the new low */ +		low = nlm_read_reg(base, PIC_TIMER_COUNT_0(timer)); +	return ((uint64_t)up2 << 32) | low; + +} + +static inline uint32_t +nlm_pic_read_timer32(uint64_t base, int timer) +{ +	return nlm_read_reg(base, PIC_TIMER_COUNT_0(timer)); +} + +static inline void +nlm_pic_set_timer(uint64_t base, int timer, uint64_t value, int irq, int cpu) +{ +	uint32_t up, low; +	uint64_t pic_ctrl = nlm_read_reg(base, PIC_CTRL); +	int en; + +	en = (irq > 0); +	up = value >> 32; +	low = value & 0xFFFFFFFF; +	nlm_write_reg(base, PIC_TIMER_MAXVAL_0(timer), low); +	nlm_write_reg(base, PIC_TIMER_MAXVAL_1(timer), up); +	nlm_pic_init_irt(base, PIC_IRT_TIMER_INDEX(timer), irq, cpu, 0); + +	/* enable the timer */ +	pic_ctrl |= (1 << (PIC_CTRL_STE + timer)); +	nlm_write_reg(base, PIC_CTRL, pic_ctrl);  }  #endif  #endif /* _ASM_NLM_XLR_PIC_H */  |