diff options
Diffstat (limited to 'arch/arm/include')
| -rw-r--r-- | arch/arm/include/asm/flat.h | 2 | ||||
| -rw-r--r-- | arch/arm/include/asm/uaccess.h | 4 | ||||
| -rw-r--r-- | arch/arm/include/asm/xen/interface.h | 12 | ||||
| -rw-r--r-- | arch/arm/include/asm/xen/page.h | 13 | ||||
| -rw-r--r-- | arch/arm/include/debug/8250_32.S | 27 | ||||
| -rw-r--r-- | arch/arm/include/debug/picoxcell.S | 18 | ||||
| -rw-r--r-- | arch/arm/include/debug/socfpga.S | 5 | 
7 files changed, 55 insertions, 26 deletions
diff --git a/arch/arm/include/asm/flat.h b/arch/arm/include/asm/flat.h index 59426a4595c..e847d23351e 100644 --- a/arch/arm/include/asm/flat.h +++ b/arch/arm/include/asm/flat.h @@ -8,7 +8,7 @@  #define	flat_argvp_envp_on_stack()		1  #define	flat_old_ram_flag(flags)		(flags)  #define	flat_reloc_valid(reloc, size)		((reloc) <= (size)) -#define	flat_get_addr_from_rp(rp, relval, flags, persistent) get_unaligned(rp) +#define	flat_get_addr_from_rp(rp, relval, flags, persistent) ((void)persistent,get_unaligned(rp))  #define	flat_put_addr_at_rp(rp, val, relval)	put_unaligned(val,rp)  #define	flat_get_relocate_addr(rel)		(rel)  #define	flat_set_persistent(relval, p)		0 diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h index 77bd79f2ffd..7e1f76027f6 100644 --- a/arch/arm/include/asm/uaccess.h +++ b/arch/arm/include/asm/uaccess.h @@ -200,8 +200,8 @@ extern int __put_user_8(void *, unsigned long long);  #define USER_DS			KERNEL_DS  #define segment_eq(a,b)		(1) -#define __addr_ok(addr)		(1) -#define __range_ok(addr,size)	(0) +#define __addr_ok(addr)		((void)(addr),1) +#define __range_ok(addr,size)	((void)(addr),0)  #define get_fs()		(KERNEL_DS)  static inline void set_fs(mm_segment_t fs) diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h index ae05e56dd17..5000397134b 100644 --- a/arch/arm/include/asm/xen/interface.h +++ b/arch/arm/include/asm/xen/interface.h @@ -29,16 +29,22 @@  #ifndef __ASSEMBLY__  /* Explicitly size integers that represent pfns in the interface with - * Xen so that we can have one ABI that works for 32 and 64 bit guests. */ + * Xen so that we can have one ABI that works for 32 and 64 bit guests. + * Note that this means that the xen_pfn_t type may be capable of + * representing pfn's which the guest cannot represent in its own pfn + * type. However since pfn space is controlled by the guest this is + * fine since it simply wouldn't be able to create any sure pfns in + * the first place. + */  typedef uint64_t xen_pfn_t; +#define PRI_xen_pfn "llx"  typedef uint64_t xen_ulong_t; +#define PRI_xen_ulong "llx"  /* Guest handles for primitive C types. */  __DEFINE_GUEST_HANDLE(uchar, unsigned char);  __DEFINE_GUEST_HANDLE(uint,  unsigned int); -__DEFINE_GUEST_HANDLE(ulong, unsigned long);  DEFINE_GUEST_HANDLE(char);  DEFINE_GUEST_HANDLE(int); -DEFINE_GUEST_HANDLE(long);  DEFINE_GUEST_HANDLE(void);  DEFINE_GUEST_HANDLE(uint64_t);  DEFINE_GUEST_HANDLE(uint32_t); diff --git a/arch/arm/include/asm/xen/page.h b/arch/arm/include/asm/xen/page.h index 174202318df..c6b9096cef9 100644 --- a/arch/arm/include/asm/xen/page.h +++ b/arch/arm/include/asm/xen/page.h @@ -10,7 +10,7 @@  #include <xen/interface/grant_table.h>  #define pfn_to_mfn(pfn)			(pfn) -#define phys_to_machine_mapping_valid	(1) +#define phys_to_machine_mapping_valid(pfn) (1)  #define mfn_to_pfn(mfn)			(mfn)  #define mfn_to_virt(m)			(__va(mfn_to_pfn(m) << PAGE_SHIFT)) @@ -30,6 +30,8 @@ typedef struct xpaddr {  #define XMADDR(x)	((xmaddr_t) { .maddr = (x) })  #define XPADDR(x)	((xpaddr_t) { .paddr = (x) }) +#define INVALID_P2M_ENTRY      (~0UL) +  static inline xmaddr_t phys_to_machine(xpaddr_t phys)  {  	unsigned offset = phys.paddr & ~PAGE_MASK; @@ -74,9 +76,14 @@ static inline int m2p_remove_override(struct page *page, bool clear_pte)  	return 0;  } +static inline bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn) +{ +	BUG_ON(pfn != mfn && mfn != INVALID_P2M_ENTRY); +	return true; +} +  static inline bool set_phys_to_machine(unsigned long pfn, unsigned long mfn)  { -	BUG(); -	return false; +	return __set_phys_to_machine(pfn, mfn);  }  #endif /* _ASM_ARM_XEN_PAGE_H */ diff --git a/arch/arm/include/debug/8250_32.S b/arch/arm/include/debug/8250_32.S new file mode 100644 index 00000000000..8db01eeabbb --- /dev/null +++ b/arch/arm/include/debug/8250_32.S @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2011 Picochip Ltd., Jamie Iles + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * Derived from arch/arm/mach-davinci/include/mach/debug-macro.S to use 32-bit + * accesses to the 8250. + */ + +#include <linux/serial_reg.h> + +		.macro	senduart,rd,rx +		str	\rd, [\rx, #UART_TX << UART_SHIFT] +		.endm + +		.macro	busyuart,rd,rx +1002:		ldr	\rd, [\rx, #UART_LSR << UART_SHIFT] +		and	\rd, \rd, #UART_LSR_TEMT | UART_LSR_THRE +		teq	\rd, #UART_LSR_TEMT | UART_LSR_THRE +		bne	1002b +		.endm + +		/* The UART's don't have any flow control IO's wired up. */ +		.macro	waituart,rd,rx +		.endm diff --git a/arch/arm/include/debug/picoxcell.S b/arch/arm/include/debug/picoxcell.S index 7419deb1b94..bc1f07c49cd 100644 --- a/arch/arm/include/debug/picoxcell.S +++ b/arch/arm/include/debug/picoxcell.S @@ -5,10 +5,7 @@   * it under the terms of the GNU General Public License version 2 as   * published by the Free Software Foundation.   * - * Derived from arch/arm/mach-davinci/include/mach/debug-macro.S to use 32-bit - * accesses to the 8250.   */ -#include <linux/serial_reg.h>  #define UART_SHIFT 2  #define PICOXCELL_UART1_BASE		0x80230000 @@ -19,17 +16,4 @@  		ldr	\rp, =PICOXCELL_UART1_BASE  		.endm -		.macro	senduart,rd,rx -		str	\rd, [\rx, #UART_TX << UART_SHIFT] -		.endm - -		.macro	busyuart,rd,rx -1002:		ldr	\rd, [\rx, #UART_LSR << UART_SHIFT] -		and	\rd, \rd, #UART_LSR_TEMT | UART_LSR_THRE -		teq	\rd, #UART_LSR_TEMT | UART_LSR_THRE -		bne	1002b -		.endm - -		/* The UART's don't have any flow control IO's wired up. */ -		.macro	waituart,rd,rx -		.endm +#include "8250_32.S" diff --git a/arch/arm/include/debug/socfpga.S b/arch/arm/include/debug/socfpga.S index d6f26d23374..966b2f99494 100644 --- a/arch/arm/include/debug/socfpga.S +++ b/arch/arm/include/debug/socfpga.S @@ -7,6 +7,9 @@   * published by the Free Software Foundation.   */ +#define UART_SHIFT 2 +#define DEBUG_LL_UART_OFFSET	0x00002000 +  		.macro	addruart, rp, rv, tmp  		mov	\rp, #DEBUG_LL_UART_OFFSET  		orr	\rp, \rp, #0x00c00000 @@ -14,3 +17,5 @@  		orr	\rp, \rp, #0xff000000	@ physical base  		.endm +#include "8250_32.S" +  |