Merge branch 'linux-2.6' into for-2.6.22
This commit is contained in:
@@ -17,9 +17,6 @@
|
||||
# define __kernel_extbl(val, shift) __builtin_alpha_extbl(val, shift)
|
||||
# define __kernel_extwl(val, shift) __builtin_alpha_extwl(val, shift)
|
||||
# define __kernel_cmpbge(a, b) __builtin_alpha_cmpbge(a, b)
|
||||
# define __kernel_cttz(x) __builtin_ctzl(x)
|
||||
# define __kernel_ctlz(x) __builtin_clzl(x)
|
||||
# define __kernel_ctpop(x) __builtin_popcountl(x)
|
||||
#else
|
||||
# define __kernel_insbl(val, shift) \
|
||||
({ unsigned long __kir; \
|
||||
@@ -49,17 +46,39 @@
|
||||
({ unsigned long __kir; \
|
||||
__asm__("cmpbge %r2,%1,%0" : "=r"(__kir) : "rI"(b), "rJ"(a)); \
|
||||
__kir; })
|
||||
#endif
|
||||
|
||||
#ifdef __alpha_cix__
|
||||
# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4 || __GNUC__ > 3
|
||||
# define __kernel_cttz(x) __builtin_ctzl(x)
|
||||
# define __kernel_ctlz(x) __builtin_clzl(x)
|
||||
# define __kernel_ctpop(x) __builtin_popcountl(x)
|
||||
# else
|
||||
# define __kernel_cttz(x) \
|
||||
({ unsigned long __kir; \
|
||||
__asm__("cttz %1,%0" : "=r"(__kir) : "r"(x)); \
|
||||
__kir; })
|
||||
# define __kernel_ctlz(x) \
|
||||
({ unsigned long __kir; \
|
||||
__asm__("ctlz %1,%0" : "=r"(__kir) : "r"(x)); \
|
||||
__kir; })
|
||||
# define __kernel_ctpop(x) \
|
||||
({ unsigned long __kir; \
|
||||
__asm__("ctpop %1,%0" : "=r"(__kir) : "r"(x)); \
|
||||
__kir; })
|
||||
# endif
|
||||
#else
|
||||
# define __kernel_cttz(x) \
|
||||
({ unsigned long __kir; \
|
||||
__asm__("cttz %1,%0" : "=r"(__kir) : "r"(x)); \
|
||||
__asm__(".arch ev67; cttz %1,%0" : "=r"(__kir) : "r"(x)); \
|
||||
__kir; })
|
||||
# define __kernel_ctlz(x) \
|
||||
({ unsigned long __kir; \
|
||||
__asm__("ctlz %1,%0" : "=r"(__kir) : "r"(x)); \
|
||||
__asm__(".arch ev67; ctlz %1,%0" : "=r"(__kir) : "r"(x)); \
|
||||
__kir; })
|
||||
# define __kernel_ctpop(x) \
|
||||
({ unsigned long __kir; \
|
||||
__asm__("ctpop %1,%0" : "=r"(__kir) : "r"(x)); \
|
||||
__asm__(".arch ev67; ctpop %1,%0" : "=r"(__kir) : "r"(x)); \
|
||||
__kir; })
|
||||
#endif
|
||||
|
||||
@@ -78,16 +97,20 @@
|
||||
#else
|
||||
#define __kernel_ldbu(mem) \
|
||||
({ unsigned char __kir; \
|
||||
__asm__("ldbu %0,%1" : "=r"(__kir) : "m"(mem)); \
|
||||
__asm__(".arch ev56; \
|
||||
ldbu %0,%1" : "=r"(__kir) : "m"(mem)); \
|
||||
__kir; })
|
||||
#define __kernel_ldwu(mem) \
|
||||
({ unsigned short __kir; \
|
||||
__asm__("ldwu %0,%1" : "=r"(__kir) : "m"(mem)); \
|
||||
__asm__(".arch ev56; \
|
||||
ldwu %0,%1" : "=r"(__kir) : "m"(mem)); \
|
||||
__kir; })
|
||||
#define __kernel_stb(val,mem) \
|
||||
__asm__("stb %1,%0" : "=m"(mem) : "r"(val))
|
||||
#define __kernel_stw(val,mem) \
|
||||
__asm__("stw %1,%0" : "=m"(mem) : "r"(val))
|
||||
#define __kernel_stb(val,mem) \
|
||||
__asm__(".arch ev56; \
|
||||
stb %1,%0" : "=m"(mem) : "r"(val))
|
||||
#define __kernel_stw(val,mem) \
|
||||
__asm__(".arch ev56; \
|
||||
stw %1,%0" : "=m"(mem) : "r"(val))
|
||||
#endif
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
@@ -72,6 +72,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#define MCPCIA_MAX_HOSES 4
|
||||
|
||||
#define MCPCIA_MID(m) ((unsigned long)(m) << 33)
|
||||
|
||||
/* Dodge has PCI0 and PCI1 at MID 4 and 5 respectively.
|
||||
|
||||
@@ -113,6 +113,7 @@ static inline unsigned long virt_to_bus(void *address)
|
||||
unsigned long bus = phys + __direct_map_base;
|
||||
return phys <= __direct_map_size ? bus : 0;
|
||||
}
|
||||
#define isa_virt_to_bus virt_to_bus
|
||||
|
||||
static inline void *bus_to_virt(unsigned long address)
|
||||
{
|
||||
|
||||
@@ -52,6 +52,8 @@
|
||||
|
||||
#define SO_PEERSEC 30
|
||||
#define SO_PASSSEC 34
|
||||
#define SO_TIMESTAMPNS 35
|
||||
#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
|
||||
|
||||
/* Security levels - as per NRL IPv6 - don't actually do anything */
|
||||
#define SO_SECURITY_AUTHENTICATION 19
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#define SIOCSPGRP _IOW('s', 8, pid_t)
|
||||
#define SIOCGPGRP _IOR('s', 9, pid_t)
|
||||
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp - linux-specific */
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
|
||||
#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
|
||||
|
||||
#endif /* _ASM_ALPHA_SOCKIOS_H */
|
||||
|
||||
@@ -61,8 +61,6 @@ extern void * __memsetw(void *dest, unsigned short, size_t count);
|
||||
? __constant_c_memset((s),0x0001000100010001UL*(unsigned short)(c),(n)) \
|
||||
: __memsetw((s),(c),(n)))
|
||||
|
||||
extern int strcasecmp(const char *, const char *);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* __ALPHA_STRING_H__ */
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define __ASM_ARM_DIV64
|
||||
|
||||
#include <asm/system.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
/*
|
||||
* The semantics of do_div() are:
|
||||
@@ -223,4 +224,6 @@
|
||||
|
||||
#endif
|
||||
|
||||
extern uint64_t div64_64(uint64_t dividend, uint64_t divisor);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -49,5 +49,7 @@
|
||||
|
||||
#define SO_PEERSEC 31
|
||||
#define SO_PASSSEC 34
|
||||
#define SO_TIMESTAMPNS 35
|
||||
#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
|
||||
|
||||
#endif /* _ASM_SOCKET_H */
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#define FIOGETOWN 0x8903
|
||||
#define SIOCGPGRP 0x8904
|
||||
#define SIOCATMARK 0x8905
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp */
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
|
||||
#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
|
||||
|
||||
#endif
|
||||
|
||||
@@ -49,5 +49,7 @@
|
||||
|
||||
#define SO_PEERSEC 31
|
||||
#define SO_PASSSEC 34
|
||||
#define SO_TIMESTAMPNS 35
|
||||
#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
|
||||
|
||||
#endif /* _ASM_SOCKET_H */
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#define FIOGETOWN 0x8903
|
||||
#define SIOCGPGRP 0x8904
|
||||
#define SIOCATMARK 0x8905
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp */
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
|
||||
#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
#ifndef __ASM_AVR32_ARCH_AT32AP_IO_H
|
||||
#define __ASM_AVR32_ARCH_AT32AP_IO_H
|
||||
|
||||
/* For "bizarre" halfword swapping */
|
||||
#include <linux/byteorder/swabb.h>
|
||||
|
||||
#if defined(CONFIG_AP7000_32_BIT_SMC)
|
||||
# define __swizzle_addr_b(addr) (addr ^ 3UL)
|
||||
# define __swizzle_addr_w(addr) (addr ^ 2UL)
|
||||
# define __swizzle_addr_l(addr) (addr)
|
||||
# define ioswabb(a, x) (x)
|
||||
# define ioswabw(a, x) (x)
|
||||
# define ioswabl(a, x) (x)
|
||||
# define __mem_ioswabb(a, x) (x)
|
||||
# define __mem_ioswabw(a, x) swab16(x)
|
||||
# define __mem_ioswabl(a, x) swab32(x)
|
||||
#elif defined(CONFIG_AP7000_16_BIT_SMC)
|
||||
# define __swizzle_addr_b(addr) (addr ^ 1UL)
|
||||
# define __swizzle_addr_w(addr) (addr)
|
||||
# define __swizzle_addr_l(addr) (addr)
|
||||
# define ioswabb(a, x) (x)
|
||||
# define ioswabw(a, x) (x)
|
||||
# define ioswabl(a, x) swahw32(x)
|
||||
# define __mem_ioswabb(a, x) (x)
|
||||
# define __mem_ioswabw(a, x) swab16(x)
|
||||
# define __mem_ioswabl(a, x) swahb32(x)
|
||||
#else
|
||||
# define __swizzle_addr_b(addr) (addr)
|
||||
# define __swizzle_addr_w(addr) (addr)
|
||||
# define __swizzle_addr_l(addr) (addr)
|
||||
# define ioswabb(a, x) (x)
|
||||
# define ioswabw(a, x) swab16(x)
|
||||
# define ioswabl(a, x) swab32(x)
|
||||
# define __mem_ioswabb(a, x) (x)
|
||||
# define __mem_ioswabw(a, x) (x)
|
||||
# define __mem_ioswabl(a, x) (x)
|
||||
#endif
|
||||
|
||||
#endif /* __ASM_AVR32_ARCH_AT32AP_IO_H */
|
||||
@@ -47,11 +47,33 @@ struct smc_config {
|
||||
*/
|
||||
unsigned int nwe_controlled:1;
|
||||
|
||||
/*
|
||||
* 0: NWAIT is disabled
|
||||
* 1: Reserved
|
||||
* 2: NWAIT is frozen mode
|
||||
* 3: NWAIT in ready mode
|
||||
*/
|
||||
unsigned int nwait_mode:2;
|
||||
|
||||
/*
|
||||
* 0: Byte select access type
|
||||
* 1: Byte write access type
|
||||
*/
|
||||
unsigned int byte_write:1;
|
||||
|
||||
/*
|
||||
* Number of clock cycles before data is released after
|
||||
* the rising edge of the read controlling signal
|
||||
*
|
||||
* Total cycles from SMC is tdf_cycles + 1
|
||||
*/
|
||||
unsigned int tdf_cycles:4;
|
||||
|
||||
/*
|
||||
* 0: TDF optimization disabled
|
||||
* 1: TDF optimization enabled
|
||||
*/
|
||||
unsigned int tdf_mode:1;
|
||||
};
|
||||
|
||||
extern int smc_set_configuration(int cs, const struct smc_config *config);
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
/*
|
||||
* Copyright (C) 2007 Atmel Corporation
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_AVR32_ARCH_AT32AP_TIME_H
|
||||
#define _ASM_AVR32_ARCH_AT32AP_TIME_H
|
||||
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
extern struct irqaction timer_irqaction;
|
||||
extern struct platform_device at32_systc0_device;
|
||||
extern void local_timer_interrupt(int irq, void *dev_id);
|
||||
|
||||
#define TIMER_BCR 0x000000c0
|
||||
#define TIMER_BCR_SYNC 0
|
||||
#define TIMER_BMR 0x000000c4
|
||||
#define TIMER_BMR_TC0XC0S 0
|
||||
#define TIMER_BMR_TC1XC1S 2
|
||||
#define TIMER_BMR_TC2XC2S 4
|
||||
#define TIMER_CCR 0x00000000
|
||||
#define TIMER_CCR_CLKDIS 1
|
||||
#define TIMER_CCR_CLKEN 0
|
||||
#define TIMER_CCR_SWTRG 2
|
||||
#define TIMER_CMR 0x00000004
|
||||
#define TIMER_CMR_ABETRG 10
|
||||
#define TIMER_CMR_ACPA 16
|
||||
#define TIMER_CMR_ACPC 18
|
||||
#define TIMER_CMR_AEEVT 20
|
||||
#define TIMER_CMR_ASWTRG 22
|
||||
#define TIMER_CMR_BCPB 24
|
||||
#define TIMER_CMR_BCPC 26
|
||||
#define TIMER_CMR_BEEVT 28
|
||||
#define TIMER_CMR_BSWTRG 30
|
||||
#define TIMER_CMR_BURST 4
|
||||
#define TIMER_CMR_CLKI 3
|
||||
#define TIMER_CMR_CPCDIS 7
|
||||
#define TIMER_CMR_CPCSTOP 6
|
||||
#define TIMER_CMR_CPCTRG 14
|
||||
#define TIMER_CMR_EEVT 10
|
||||
#define TIMER_CMR_EEVTEDG 8
|
||||
#define TIMER_CMR_ENETRG 12
|
||||
#define TIMER_CMR_ETRGEDG 8
|
||||
#define TIMER_CMR_LDBDIS 7
|
||||
#define TIMER_CMR_LDBSTOP 6
|
||||
#define TIMER_CMR_LDRA 16
|
||||
#define TIMER_CMR_LDRB 18
|
||||
#define TIMER_CMR_TCCLKS 0
|
||||
#define TIMER_CMR_WAVE 15
|
||||
#define TIMER_CMR_WAVSEL 13
|
||||
#define TIMER_CV 0x00000010
|
||||
#define TIMER_CV_CV 0
|
||||
#define TIMER_IDR 0x00000028
|
||||
#define TIMER_IDR_COVFS 0
|
||||
#define TIMER_IDR_CPAS 2
|
||||
#define TIMER_IDR_CPBS 3
|
||||
#define TIMER_IDR_CPCS 4
|
||||
#define TIMER_IDR_ETRGS 7
|
||||
#define TIMER_IDR_LDRAS 5
|
||||
#define TIMER_IDR_LDRBS 6
|
||||
#define TIMER_IDR_LOVRS 1
|
||||
#define TIMER_IER 0x00000024
|
||||
#define TIMER_IER_COVFS 0
|
||||
#define TIMER_IER_CPAS 2
|
||||
#define TIMER_IER_CPBS 3
|
||||
#define TIMER_IER_CPCS 4
|
||||
#define TIMER_IER_ETRGS 7
|
||||
#define TIMER_IER_LDRAS 5
|
||||
#define TIMER_IER_LDRBS 6
|
||||
#define TIMER_IER_LOVRS 1
|
||||
#define TIMER_IMR 0x0000002c
|
||||
#define TIMER_IMR_COVFS 0
|
||||
#define TIMER_IMR_CPAS 2
|
||||
#define TIMER_IMR_CPBS 3
|
||||
#define TIMER_IMR_CPCS 4
|
||||
#define TIMER_IMR_ETRGS 7
|
||||
#define TIMER_IMR_LDRAS 5
|
||||
#define TIMER_IMR_LDRBS 6
|
||||
#define TIMER_IMR_LOVRS 1
|
||||
#define TIMER_RA 0x00000014
|
||||
#define TIMER_RA_RA 0
|
||||
#define TIMER_RB 0x00000018
|
||||
#define TIMER_RB_RB 0
|
||||
#define TIMER_RC 0x0000001c
|
||||
#define TIMER_RC_RC 0
|
||||
#define TIMER_SR 0x00000020
|
||||
#define TIMER_SR_CLKSTA 16
|
||||
#define TIMER_SR_COVFS 0
|
||||
#define TIMER_SR_CPAS 2
|
||||
#define TIMER_SR_CPBS 3
|
||||
#define TIMER_SR_CPCS 4
|
||||
#define TIMER_SR_ETRGS 7
|
||||
#define TIMER_SR_LDRAS 5
|
||||
#define TIMER_SR_LDRBS 6
|
||||
#define TIMER_SR_LOVRS 1
|
||||
#define TIMER_SR_MTIOA 17
|
||||
#define TIMER_SR_MTIOB 18
|
||||
|
||||
/* Bit manipulation macros */
|
||||
#define TIMER_BIT(name) (1 << TIMER_##name)
|
||||
#define TIMER_BF(name,value) ((value) << TIMER_##name)
|
||||
|
||||
/* Register access macros */
|
||||
#define timer_read(port,instance,reg) \
|
||||
__raw_readl(port + (0x40 * instance) + TIMER_##reg)
|
||||
#define timer_write(port,instance,reg,value) \
|
||||
__raw_writel((value), port + (0x40 * instance) + TIMER_##reg)
|
||||
|
||||
#endif /* _ASM_AVR32_ARCH_AT32AP_TIME_H */
|
||||
@@ -173,7 +173,7 @@ static inline int atomic_sub_if_positive(int i, atomic_t *v)
|
||||
}
|
||||
|
||||
#define atomic_xchg(v, new) (xchg(&((v)->counter), new))
|
||||
#define atomic_cmpxchg(v, o, n) ((int)cmpxchg(&((v)->counter), (o), (n)))
|
||||
#define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
|
||||
|
||||
#define atomic_sub(i, v) (void)atomic_sub_return(i, v)
|
||||
#define atomic_add(i, v) (void)atomic_add_return(i, v)
|
||||
|
||||
+40
-14
@@ -18,27 +18,53 @@
|
||||
|
||||
#ifdef CONFIG_DEBUG_BUGVERBOSE
|
||||
|
||||
#define BUG() \
|
||||
do { \
|
||||
asm volatile(".hword %0\n\t" \
|
||||
".hword %1\n\t" \
|
||||
".long %2" \
|
||||
: \
|
||||
: "n"(AVR32_BUG_OPCODE), \
|
||||
"i"(__LINE__), "X"(__FILE__)); \
|
||||
} while (0)
|
||||
#define _BUG_OR_WARN(flags) \
|
||||
asm volatile( \
|
||||
"1: .hword %0\n" \
|
||||
" .section __bug_table,\"a\",@progbits\n" \
|
||||
"2: .long 1b\n" \
|
||||
" .long %1\n" \
|
||||
" .short %2\n" \
|
||||
" .short %3\n" \
|
||||
" .org 2b + %4\n" \
|
||||
" .previous" \
|
||||
: \
|
||||
: "i"(AVR32_BUG_OPCODE), "i"(__FILE__), \
|
||||
"i"(__LINE__), "i"(flags), \
|
||||
"i"(sizeof(struct bug_entry)))
|
||||
|
||||
#else
|
||||
|
||||
#define BUG() \
|
||||
do { \
|
||||
asm volatile(".hword %0\n\t" \
|
||||
: : "n"(AVR32_BUG_OPCODE)); \
|
||||
} while (0)
|
||||
#define _BUG_OR_WARN(flags) \
|
||||
asm volatile( \
|
||||
"1: .hword %0\n" \
|
||||
" .section __bug_table,\"a\",@progbits\n" \
|
||||
"2: .long 1b\n" \
|
||||
" .short %1\n" \
|
||||
" .org 2b + %2\n" \
|
||||
" .previous" \
|
||||
: \
|
||||
: "i"(AVR32_BUG_OPCODE), "i"(flags), \
|
||||
"i"(sizeof(struct bug_entry)))
|
||||
|
||||
#endif /* CONFIG_DEBUG_BUGVERBOSE */
|
||||
|
||||
#define BUG() \
|
||||
do { \
|
||||
_BUG_OR_WARN(0); \
|
||||
for (;;); \
|
||||
} while (0)
|
||||
|
||||
#define WARN_ON(condition) \
|
||||
({ \
|
||||
typeof(condition) __ret_warn_on = (condition); \
|
||||
if (unlikely(__ret_warn_on)) \
|
||||
_BUG_OR_WARN(BUGFLAG_WARNING); \
|
||||
unlikely(__ret_warn_on); \
|
||||
})
|
||||
|
||||
#define HAVE_ARCH_BUG
|
||||
#define HAVE_ARCH_WARN_ON
|
||||
|
||||
#endif /* CONFIG_BUG */
|
||||
|
||||
|
||||
+173
-153
@@ -1,13 +1,15 @@
|
||||
#ifndef __ASM_AVR32_IO_H
|
||||
#define __ASM_AVR32_IO_H
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/string.h>
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/types.h>
|
||||
|
||||
#include <asm/addrspace.h>
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
#include <asm/arch/io.h>
|
||||
|
||||
/* virt_to_phys will only work when address is in P1 or P2 */
|
||||
static __inline__ unsigned long virt_to_phys(volatile void *address)
|
||||
{
|
||||
@@ -36,104 +38,215 @@ extern void __raw_readsb(const void __iomem *addr, void *data, int bytelen);
|
||||
extern void __raw_readsw(const void __iomem *addr, void *data, int wordlen);
|
||||
extern void __raw_readsl(const void __iomem *addr, void *data, int longlen);
|
||||
|
||||
static inline void writeb(unsigned char b, volatile void __iomem *addr)
|
||||
static inline void __raw_writeb(u8 v, volatile void __iomem *addr)
|
||||
{
|
||||
*(volatile unsigned char __force *)addr = b;
|
||||
*(volatile u8 __force *)addr = v;
|
||||
}
|
||||
static inline void writew(unsigned short b, volatile void __iomem *addr)
|
||||
static inline void __raw_writew(u16 v, volatile void __iomem *addr)
|
||||
{
|
||||
*(volatile unsigned short __force *)addr = b;
|
||||
*(volatile u16 __force *)addr = v;
|
||||
}
|
||||
static inline void writel(unsigned int b, volatile void __iomem *addr)
|
||||
static inline void __raw_writel(u32 v, volatile void __iomem *addr)
|
||||
{
|
||||
*(volatile unsigned int __force *)addr = b;
|
||||
*(volatile u32 __force *)addr = v;
|
||||
}
|
||||
#define __raw_writeb writeb
|
||||
#define __raw_writew writew
|
||||
#define __raw_writel writel
|
||||
|
||||
static inline unsigned char readb(const volatile void __iomem *addr)
|
||||
static inline u8 __raw_readb(const volatile void __iomem *addr)
|
||||
{
|
||||
return *(const volatile unsigned char __force *)addr;
|
||||
return *(const volatile u8 __force *)addr;
|
||||
}
|
||||
static inline unsigned short readw(const volatile void __iomem *addr)
|
||||
static inline u16 __raw_readw(const volatile void __iomem *addr)
|
||||
{
|
||||
return *(const volatile unsigned short __force *)addr;
|
||||
return *(const volatile u16 __force *)addr;
|
||||
}
|
||||
static inline unsigned int readl(const volatile void __iomem *addr)
|
||||
static inline u32 __raw_readl(const volatile void __iomem *addr)
|
||||
{
|
||||
return *(const volatile unsigned int __force *)addr;
|
||||
return *(const volatile u32 __force *)addr;
|
||||
}
|
||||
#define __raw_readb readb
|
||||
#define __raw_readw readw
|
||||
#define __raw_readl readl
|
||||
|
||||
#define writesb(p, d, l) __raw_writesb((unsigned int)p, d, l)
|
||||
#define writesw(p, d, l) __raw_writesw((unsigned int)p, d, l)
|
||||
#define writesl(p, d, l) __raw_writesl((unsigned int)p, d, l)
|
||||
/* Convert I/O port address to virtual address */
|
||||
#ifndef __io
|
||||
# define __io(p) ((void *)phys_to_uncached(p))
|
||||
#endif
|
||||
|
||||
#define readsb(p, d, l) __raw_readsb((unsigned int)p, d, l)
|
||||
#define readsw(p, d, l) __raw_readsw((unsigned int)p, d, l)
|
||||
#define readsl(p, d, l) __raw_readsl((unsigned int)p, d, l)
|
||||
/*
|
||||
* Not really sure about the best way to slow down I/O on
|
||||
* AVR32. Defining it as a no-op until we have an actual test case.
|
||||
*/
|
||||
#define SLOW_DOWN_IO do { } while (0)
|
||||
|
||||
#define __BUILD_MEMORY_SINGLE(pfx, bwl, type) \
|
||||
static inline void \
|
||||
pfx##write##bwl(type val, volatile void __iomem *addr) \
|
||||
{ \
|
||||
volatile type *__addr; \
|
||||
type __val; \
|
||||
\
|
||||
__addr = (void *)__swizzle_addr_##bwl((unsigned long)(addr)); \
|
||||
__val = pfx##ioswab##bwl(__addr, val); \
|
||||
\
|
||||
BUILD_BUG_ON(sizeof(type) > sizeof(unsigned long)); \
|
||||
\
|
||||
*__addr = __val; \
|
||||
} \
|
||||
\
|
||||
static inline type pfx##read##bwl(const volatile void __iomem *addr) \
|
||||
{ \
|
||||
volatile type *__addr; \
|
||||
type __val; \
|
||||
\
|
||||
__addr = (void *)__swizzle_addr_##bwl((unsigned long)(addr)); \
|
||||
\
|
||||
BUILD_BUG_ON(sizeof(type) > sizeof(unsigned long)); \
|
||||
\
|
||||
__val = *__addr; \
|
||||
return pfx##ioswab##bwl(__addr, __val); \
|
||||
}
|
||||
|
||||
#define __BUILD_IOPORT_SINGLE(pfx, bwl, type, p, slow) \
|
||||
static inline void pfx##out##bwl##p(type val, unsigned long port) \
|
||||
{ \
|
||||
volatile type *__addr; \
|
||||
type __val; \
|
||||
\
|
||||
__addr = __io(__swizzle_addr_##bwl(port)); \
|
||||
__val = pfx##ioswab##bwl(__addr, val); \
|
||||
\
|
||||
BUILD_BUG_ON(sizeof(type) > sizeof(unsigned long)); \
|
||||
\
|
||||
*__addr = __val; \
|
||||
slow; \
|
||||
} \
|
||||
\
|
||||
static inline type pfx##in##bwl##p(unsigned long port) \
|
||||
{ \
|
||||
volatile type *__addr; \
|
||||
type __val; \
|
||||
\
|
||||
__addr = __io(__swizzle_addr_##bwl(port)); \
|
||||
\
|
||||
BUILD_BUG_ON(sizeof(type) > sizeof(unsigned long)); \
|
||||
\
|
||||
__val = *__addr; \
|
||||
slow; \
|
||||
\
|
||||
return pfx##ioswab##bwl(__addr, __val); \
|
||||
}
|
||||
|
||||
#define __BUILD_MEMORY_PFX(bus, bwl, type) \
|
||||
__BUILD_MEMORY_SINGLE(bus, bwl, type)
|
||||
|
||||
#define BUILDIO_MEM(bwl, type) \
|
||||
__BUILD_MEMORY_PFX(, bwl, type) \
|
||||
__BUILD_MEMORY_PFX(__mem_, bwl, type)
|
||||
|
||||
#define __BUILD_IOPORT_PFX(bus, bwl, type) \
|
||||
__BUILD_IOPORT_SINGLE(bus, bwl, type, ,) \
|
||||
__BUILD_IOPORT_SINGLE(bus, bwl, type, _p, SLOW_DOWN_IO)
|
||||
|
||||
#define BUILDIO_IOPORT(bwl, type) \
|
||||
__BUILD_IOPORT_PFX(, bwl, type) \
|
||||
__BUILD_IOPORT_PFX(__mem_, bwl, type)
|
||||
|
||||
BUILDIO_MEM(b, u8)
|
||||
BUILDIO_MEM(w, u16)
|
||||
BUILDIO_MEM(l, u32)
|
||||
|
||||
BUILDIO_IOPORT(b, u8)
|
||||
BUILDIO_IOPORT(w, u16)
|
||||
BUILDIO_IOPORT(l, u32)
|
||||
|
||||
#define readb_relaxed readb
|
||||
#define readw_relaxed readw
|
||||
#define readl_relaxed readl
|
||||
|
||||
#define __BUILD_MEMORY_STRING(bwl, type) \
|
||||
static inline void writes##bwl(volatile void __iomem *addr, \
|
||||
const void *data, unsigned int count) \
|
||||
{ \
|
||||
const type *__data = data; \
|
||||
\
|
||||
while (count--) \
|
||||
__mem_write##bwl(*__data++, addr); \
|
||||
} \
|
||||
\
|
||||
static inline void reads##bwl(const volatile void __iomem *addr, \
|
||||
void *data, unsigned int count) \
|
||||
{ \
|
||||
type *__data = data; \
|
||||
\
|
||||
while (count--) \
|
||||
*__data++ = __mem_read##bwl(addr); \
|
||||
}
|
||||
|
||||
#define __BUILD_IOPORT_STRING(bwl, type) \
|
||||
static inline void outs##bwl(unsigned long port, const void *data, \
|
||||
unsigned int count) \
|
||||
{ \
|
||||
const type *__data = data; \
|
||||
\
|
||||
while (count--) \
|
||||
__mem_out##bwl(*__data++, port); \
|
||||
} \
|
||||
\
|
||||
static inline void ins##bwl(unsigned long port, void *data, \
|
||||
unsigned int count) \
|
||||
{ \
|
||||
type *__data = data; \
|
||||
\
|
||||
while (count--) \
|
||||
*__data++ = __mem_in##bwl(port); \
|
||||
}
|
||||
|
||||
#define BUILDSTRING(bwl, type) \
|
||||
__BUILD_MEMORY_STRING(bwl, type) \
|
||||
__BUILD_IOPORT_STRING(bwl, type)
|
||||
|
||||
BUILDSTRING(b, u8)
|
||||
BUILDSTRING(w, u16)
|
||||
BUILDSTRING(l, u32)
|
||||
|
||||
/*
|
||||
* io{read,write}{8,16,32} macros in both le (for PCI style consumers) and native be
|
||||
*/
|
||||
#ifndef ioread8
|
||||
|
||||
#define ioread8(p) ({ unsigned int __v = __raw_readb(p); __v; })
|
||||
#define ioread8(p) ((unsigned int)readb(p))
|
||||
|
||||
#define ioread16(p) ({ unsigned int __v = le16_to_cpu(__raw_readw(p)); __v; })
|
||||
#define ioread16be(p) ({ unsigned int __v = be16_to_cpu(__raw_readw(p)); __v; })
|
||||
#define ioread16(p) ((unsigned int)readw(p))
|
||||
#define ioread16be(p) ((unsigned int)__raw_readw(p))
|
||||
|
||||
#define ioread32(p) ({ unsigned int __v = le32_to_cpu(__raw_readl(p)); __v; })
|
||||
#define ioread32be(p) ({ unsigned int __v = be32_to_cpu(__raw_readl(p)); __v; })
|
||||
#define ioread32(p) ((unsigned int)readl(p))
|
||||
#define ioread32be(p) ((unsigned int)__raw_readl(p))
|
||||
|
||||
#define iowrite8(v,p) __raw_writeb(v, p)
|
||||
#define iowrite8(v,p) writeb(v, p)
|
||||
|
||||
#define iowrite16(v,p) __raw_writew(cpu_to_le16(v), p)
|
||||
#define iowrite16be(v,p) __raw_writew(cpu_to_be16(v), p)
|
||||
#define iowrite16(v,p) writew(v, p)
|
||||
#define iowrite16be(v,p) __raw_writew(v, p)
|
||||
|
||||
#define iowrite32(v,p) __raw_writel(cpu_to_le32(v), p)
|
||||
#define iowrite32be(v,p) __raw_writel(cpu_to_be32(v), p)
|
||||
#define iowrite32(v,p) writel(v, p)
|
||||
#define iowrite32be(v,p) __raw_writel(v, p)
|
||||
|
||||
#define ioread8_rep(p,d,c) __raw_readsb(p,d,c)
|
||||
#define ioread16_rep(p,d,c) __raw_readsw(p,d,c)
|
||||
#define ioread32_rep(p,d,c) __raw_readsl(p,d,c)
|
||||
#define ioread8_rep(p,d,c) readsb(p,d,c)
|
||||
#define ioread16_rep(p,d,c) readsw(p,d,c)
|
||||
#define ioread32_rep(p,d,c) readsl(p,d,c)
|
||||
|
||||
#define iowrite8_rep(p,s,c) __raw_writesb(p,s,c)
|
||||
#define iowrite16_rep(p,s,c) __raw_writesw(p,s,c)
|
||||
#define iowrite32_rep(p,s,c) __raw_writesl(p,s,c)
|
||||
#define iowrite8_rep(p,s,c) writesb(p,s,c)
|
||||
#define iowrite16_rep(p,s,c) writesw(p,s,c)
|
||||
#define iowrite32_rep(p,s,c) writesl(p,s,c)
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* These two are only here because ALSA _thinks_ it needs them...
|
||||
*/
|
||||
static inline void memcpy_fromio(void * to, const volatile void __iomem *from,
|
||||
unsigned long count)
|
||||
{
|
||||
char *p = to;
|
||||
while (count) {
|
||||
count--;
|
||||
*p = readb(from);
|
||||
p++;
|
||||
from++;
|
||||
}
|
||||
memcpy(to, (const void __force *)from, count);
|
||||
}
|
||||
|
||||
static inline void memcpy_toio(volatile void __iomem *to, const void * from,
|
||||
unsigned long count)
|
||||
{
|
||||
const char *p = from;
|
||||
while (count) {
|
||||
count--;
|
||||
writeb(*p, to);
|
||||
p++;
|
||||
to++;
|
||||
}
|
||||
memcpy((void __force *)to, from, count);
|
||||
}
|
||||
|
||||
static inline void memset_io(volatile void __iomem *addr, unsigned char val,
|
||||
@@ -142,99 +255,8 @@ static inline void memset_io(volatile void __iomem *addr, unsigned char val,
|
||||
memset((void __force *)addr, val, count);
|
||||
}
|
||||
|
||||
/*
|
||||
* Bad read/write accesses...
|
||||
*/
|
||||
extern void __readwrite_bug(const char *fn);
|
||||
|
||||
#define IO_SPACE_LIMIT 0xffffffff
|
||||
|
||||
/* Convert I/O port address to virtual address */
|
||||
#define __io(p) ((void __iomem *)phys_to_uncached(p))
|
||||
|
||||
/*
|
||||
* IO port access primitives
|
||||
* -------------------------
|
||||
*
|
||||
* The AVR32 doesn't have special IO access instructions; all IO is memory
|
||||
* mapped. Note that these are defined to perform little endian accesses
|
||||
* only. Their primary purpose is to access PCI and ISA peripherals.
|
||||
*
|
||||
* Note that for a big endian machine, this implies that the following
|
||||
* big endian mode connectivity is in place.
|
||||
*
|
||||
* The machine specific io.h include defines __io to translate an "IO"
|
||||
* address to a memory address.
|
||||
*
|
||||
* Note that we prevent GCC re-ordering or caching values in expressions
|
||||
* by introducing sequence points into the in*() definitions. Note that
|
||||
* __raw_* do not guarantee this behaviour.
|
||||
*
|
||||
* The {in,out}[bwl] macros are for emulating x86-style PCI/ISA IO space.
|
||||
*/
|
||||
#define outb(v, p) __raw_writeb(v, __io(p))
|
||||
#define outw(v, p) __raw_writew(cpu_to_le16(v), __io(p))
|
||||
#define outl(v, p) __raw_writel(cpu_to_le32(v), __io(p))
|
||||
|
||||
#define inb(p) __raw_readb(__io(p))
|
||||
#define inw(p) le16_to_cpu(__raw_readw(__io(p)))
|
||||
#define inl(p) le32_to_cpu(__raw_readl(__io(p)))
|
||||
|
||||
static inline void __outsb(unsigned long port, void *addr, unsigned int count)
|
||||
{
|
||||
while (count--) {
|
||||
outb(*(u8 *)addr, port);
|
||||
addr++;
|
||||
}
|
||||
}
|
||||
|
||||
static inline void __insb(unsigned long port, void *addr, unsigned int count)
|
||||
{
|
||||
while (count--) {
|
||||
*(u8 *)addr = inb(port);
|
||||
addr++;
|
||||
}
|
||||
}
|
||||
|
||||
static inline void __outsw(unsigned long port, void *addr, unsigned int count)
|
||||
{
|
||||
while (count--) {
|
||||
outw(*(u16 *)addr, port);
|
||||
addr += 2;
|
||||
}
|
||||
}
|
||||
|
||||
static inline void __insw(unsigned long port, void *addr, unsigned int count)
|
||||
{
|
||||
while (count--) {
|
||||
*(u16 *)addr = inw(port);
|
||||
addr += 2;
|
||||
}
|
||||
}
|
||||
|
||||
static inline void __outsl(unsigned long port, void *addr, unsigned int count)
|
||||
{
|
||||
while (count--) {
|
||||
outl(*(u32 *)addr, port);
|
||||
addr += 4;
|
||||
}
|
||||
}
|
||||
|
||||
static inline void __insl(unsigned long port, void *addr, unsigned int count)
|
||||
{
|
||||
while (count--) {
|
||||
*(u32 *)addr = inl(port);
|
||||
addr += 4;
|
||||
}
|
||||
}
|
||||
|
||||
#define outsb(port, addr, count) __outsb(port, addr, count)
|
||||
#define insb(port, addr, count) __insb(port, addr, count)
|
||||
#define outsw(port, addr, count) __outsw(port, addr, count)
|
||||
#define insw(port, addr, count) __insw(port, addr, count)
|
||||
#define outsl(port, addr, count) __outsl(port, addr, count)
|
||||
#define insl(port, addr, count) __insl(port, addr, count)
|
||||
|
||||
extern void __iomem *__ioremap(unsigned long offset, size_t size,
|
||||
unsigned long flags);
|
||||
extern void __iounmap(void __iomem *addr);
|
||||
@@ -292,6 +314,4 @@ extern void __iounmap(void __iomem *addr);
|
||||
*/
|
||||
#define xlate_dev_kmem_ptr(p) p
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* __ASM_AVR32_IO_H */
|
||||
|
||||
@@ -40,6 +40,14 @@ enum tlb_config {
|
||||
TLB_INVALID
|
||||
};
|
||||
|
||||
#define AVR32_FEATURE_RMW (1 << 0)
|
||||
#define AVR32_FEATURE_DSP (1 << 1)
|
||||
#define AVR32_FEATURE_SIMD (1 << 2)
|
||||
#define AVR32_FEATURE_OCD (1 << 3)
|
||||
#define AVR32_FEATURE_PCTR (1 << 4)
|
||||
#define AVR32_FEATURE_JAVA (1 << 5)
|
||||
#define AVR32_FEATURE_FPU (1 << 6)
|
||||
|
||||
struct avr32_cpuinfo {
|
||||
struct clk *clk;
|
||||
unsigned long loops_per_jiffy;
|
||||
@@ -48,6 +56,7 @@ struct avr32_cpuinfo {
|
||||
unsigned short arch_revision;
|
||||
unsigned short cpu_revision;
|
||||
enum tlb_config tlb_config;
|
||||
unsigned long features;
|
||||
|
||||
struct cache_info icache;
|
||||
struct cache_info dcache;
|
||||
@@ -125,10 +134,10 @@ extern int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags);
|
||||
#define thread_saved_pc(tsk) ((tsk)->thread.cpu_context.pc)
|
||||
|
||||
struct pt_regs;
|
||||
void show_trace(struct task_struct *task, unsigned long *stack,
|
||||
struct pt_regs *regs);
|
||||
|
||||
extern unsigned long get_wchan(struct task_struct *p);
|
||||
extern void show_regs_log_lvl(struct pt_regs *regs, const char *log_lvl);
|
||||
extern void show_stack_log_lvl(struct task_struct *tsk, unsigned long sp,
|
||||
struct pt_regs *regs, const char *log_lvl);
|
||||
|
||||
#define KSTK_EIP(tsk) ((tsk)->thread.cpu_context.pc)
|
||||
#define KSTK_ESP(tsk) ((tsk)->thread.cpu_context.ksp)
|
||||
|
||||
@@ -124,19 +124,12 @@ struct tagtable {
|
||||
#define for_each_tag(t,base) \
|
||||
for (t = base; t->hdr.size; t = tag_next(t))
|
||||
|
||||
extern struct tag_mem_range *mem_phys;
|
||||
extern struct tag_mem_range *mem_reserved;
|
||||
extern struct tag_mem_range *mem_ramdisk;
|
||||
|
||||
extern struct tag *bootloader_tags;
|
||||
|
||||
extern void setup_bootmem(void);
|
||||
extern void setup_processor(void);
|
||||
extern void board_setup_fbmem(unsigned long fbmem_start,
|
||||
unsigned long fbmem_size);
|
||||
extern resource_size_t fbmem_start;
|
||||
extern resource_size_t fbmem_size;
|
||||
|
||||
/* Chip-specific hook to enable the use of SDRAM */
|
||||
void chip_enable_sdram(void);
|
||||
void setup_processor(void);
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
|
||||
@@ -49,5 +49,7 @@
|
||||
|
||||
#define SO_PEERSEC 31
|
||||
#define SO_PASSSEC 34
|
||||
#define SO_TIMESTAMPNS 35
|
||||
#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
|
||||
|
||||
#endif /* __ASM_AVR32_SOCKET_H */
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#define FIOGETOWN 0x8903
|
||||
#define SIOCGPGRP 0x8904
|
||||
#define SIOCATMARK 0x8905
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp */
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
|
||||
#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
|
||||
|
||||
#endif /* __ASM_AVR32_SOCKIOS_H */
|
||||
|
||||
+249
-294
@@ -7,326 +7,281 @@
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
#ifndef __ASM_AVR32_SYSREG_H__
|
||||
#define __ASM_AVR32_SYSREG_H__
|
||||
#ifndef __ASM_AVR32_SYSREG_H
|
||||
#define __ASM_AVR32_SYSREG_H
|
||||
|
||||
/* sysreg register offsets */
|
||||
#define SYSREG_SR 0x0000
|
||||
#define SYSREG_EVBA 0x0004
|
||||
#define SYSREG_ACBA 0x0008
|
||||
#define SYSREG_CPUCR 0x000c
|
||||
#define SYSREG_ECR 0x0010
|
||||
#define SYSREG_RSR_SUP 0x0014
|
||||
#define SYSREG_RSR_INT0 0x0018
|
||||
#define SYSREG_RSR_INT1 0x001c
|
||||
#define SYSREG_RSR_INT2 0x0020
|
||||
#define SYSREG_RSR_INT3 0x0024
|
||||
#define SYSREG_RSR_EX 0x0028
|
||||
#define SYSREG_RSR_NMI 0x002c
|
||||
#define SYSREG_RSR_DBG 0x0030
|
||||
#define SYSREG_RAR_SUP 0x0034
|
||||
#define SYSREG_RAR_INT0 0x0038
|
||||
#define SYSREG_RAR_INT1 0x003c
|
||||
#define SYSREG_RAR_INT2 0x0040
|
||||
#define SYSREG_RAR_INT3 0x0044
|
||||
#define SYSREG_RAR_EX 0x0048
|
||||
#define SYSREG_RAR_NMI 0x004c
|
||||
#define SYSREG_RAR_DBG 0x0050
|
||||
#define SYSREG_JECR 0x0054
|
||||
#define SYSREG_JOSP 0x0058
|
||||
#define SYSREG_JAVA_LV0 0x005c
|
||||
#define SYSREG_JAVA_LV1 0x0060
|
||||
#define SYSREG_JAVA_LV2 0x0064
|
||||
#define SYSREG_JAVA_LV3 0x0068
|
||||
#define SYSREG_JAVA_LV4 0x006c
|
||||
#define SYSREG_JAVA_LV5 0x0070
|
||||
#define SYSREG_JAVA_LV6 0x0074
|
||||
#define SYSREG_JAVA_LV7 0x0078
|
||||
#define SYSREG_JTBA 0x007c
|
||||
#define SYSREG_JBCR 0x0080
|
||||
#define SYSREG_CONFIG0 0x0100
|
||||
#define SYSREG_CONFIG1 0x0104
|
||||
#define SYSREG_COUNT 0x0108
|
||||
#define SYSREG_COMPARE 0x010c
|
||||
#define SYSREG_TLBEHI 0x0110
|
||||
#define SYSREG_TLBELO 0x0114
|
||||
#define SYSREG_PTBR 0x0118
|
||||
#define SYSREG_TLBEAR 0x011c
|
||||
#define SYSREG_MMUCR 0x0120
|
||||
#define SYSREG_TLBARLO 0x0124
|
||||
#define SYSREG_TLBARHI 0x0128
|
||||
#define SYSREG_PCCNT 0x012c
|
||||
#define SYSREG_PCNT0 0x0130
|
||||
#define SYSREG_PCNT1 0x0134
|
||||
#define SYSREG_PCCR 0x0138
|
||||
#define SYSREG_BEAR 0x013c
|
||||
#define SYSREG_SR 0x0000
|
||||
#define SYSREG_EVBA 0x0004
|
||||
#define SYSREG_ACBA 0x0008
|
||||
#define SYSREG_CPUCR 0x000c
|
||||
#define SYSREG_ECR 0x0010
|
||||
#define SYSREG_RSR_SUP 0x0014
|
||||
#define SYSREG_RSR_INT0 0x0018
|
||||
#define SYSREG_RSR_INT1 0x001c
|
||||
#define SYSREG_RSR_INT2 0x0020
|
||||
#define SYSREG_RSR_INT3 0x0024
|
||||
#define SYSREG_RSR_EX 0x0028
|
||||
#define SYSREG_RSR_NMI 0x002c
|
||||
#define SYSREG_RSR_DBG 0x0030
|
||||
#define SYSREG_RAR_SUP 0x0034
|
||||
#define SYSREG_RAR_INT0 0x0038
|
||||
#define SYSREG_RAR_INT1 0x003c
|
||||
#define SYSREG_RAR_INT2 0x0040
|
||||
#define SYSREG_RAR_INT3 0x0044
|
||||
#define SYSREG_RAR_EX 0x0048
|
||||
#define SYSREG_RAR_NMI 0x004c
|
||||
#define SYSREG_RAR_DBG 0x0050
|
||||
#define SYSREG_JECR 0x0054
|
||||
#define SYSREG_JOSP 0x0058
|
||||
#define SYSREG_JAVA_LV0 0x005c
|
||||
#define SYSREG_JAVA_LV1 0x0060
|
||||
#define SYSREG_JAVA_LV2 0x0064
|
||||
#define SYSREG_JAVA_LV3 0x0068
|
||||
#define SYSREG_JAVA_LV4 0x006c
|
||||
#define SYSREG_JAVA_LV5 0x0070
|
||||
#define SYSREG_JAVA_LV6 0x0074
|
||||
#define SYSREG_JAVA_LV7 0x0078
|
||||
#define SYSREG_JTBA 0x007c
|
||||
#define SYSREG_JBCR 0x0080
|
||||
#define SYSREG_CONFIG0 0x0100
|
||||
#define SYSREG_CONFIG1 0x0104
|
||||
#define SYSREG_COUNT 0x0108
|
||||
#define SYSREG_COMPARE 0x010c
|
||||
#define SYSREG_TLBEHI 0x0110
|
||||
#define SYSREG_TLBELO 0x0114
|
||||
#define SYSREG_PTBR 0x0118
|
||||
#define SYSREG_TLBEAR 0x011c
|
||||
#define SYSREG_MMUCR 0x0120
|
||||
#define SYSREG_TLBARLO 0x0124
|
||||
#define SYSREG_TLBARHI 0x0128
|
||||
#define SYSREG_PCCNT 0x012c
|
||||
#define SYSREG_PCNT0 0x0130
|
||||
#define SYSREG_PCNT1 0x0134
|
||||
#define SYSREG_PCCR 0x0138
|
||||
#define SYSREG_BEAR 0x013c
|
||||
#define SYSREG_SABAL 0x0300
|
||||
#define SYSREG_SABAH 0x0304
|
||||
#define SYSREG_SABD 0x0308
|
||||
|
||||
/* Bitfields in SR */
|
||||
#define SYSREG_SR_C_OFFSET 0
|
||||
#define SYSREG_SR_C_SIZE 1
|
||||
#define SYSREG_Z_OFFSET 1
|
||||
#define SYSREG_Z_SIZE 1
|
||||
#define SYSREG_SR_N_OFFSET 2
|
||||
#define SYSREG_SR_N_SIZE 1
|
||||
#define SYSREG_SR_V_OFFSET 3
|
||||
#define SYSREG_SR_V_SIZE 1
|
||||
#define SYSREG_Q_OFFSET 4
|
||||
#define SYSREG_Q_SIZE 1
|
||||
#define SYSREG_GM_OFFSET 16
|
||||
#define SYSREG_GM_SIZE 1
|
||||
#define SYSREG_I0M_OFFSET 17
|
||||
#define SYSREG_I0M_SIZE 1
|
||||
#define SYSREG_I1M_OFFSET 18
|
||||
#define SYSREG_I1M_SIZE 1
|
||||
#define SYSREG_I2M_OFFSET 19
|
||||
#define SYSREG_I2M_SIZE 1
|
||||
#define SYSREG_I3M_OFFSET 20
|
||||
#define SYSREG_I3M_SIZE 1
|
||||
#define SYSREG_EM_OFFSET 21
|
||||
#define SYSREG_EM_SIZE 1
|
||||
#define SYSREG_M0_OFFSET 22
|
||||
#define SYSREG_M0_SIZE 1
|
||||
#define SYSREG_M1_OFFSET 23
|
||||
#define SYSREG_M1_SIZE 1
|
||||
#define SYSREG_M2_OFFSET 24
|
||||
#define SYSREG_M2_SIZE 1
|
||||
#define SYSREG_SR_D_OFFSET 26
|
||||
#define SYSREG_SR_D_SIZE 1
|
||||
#define SYSREG_DM_OFFSET 27
|
||||
#define SYSREG_DM_SIZE 1
|
||||
#define SYSREG_SR_J_OFFSET 28
|
||||
#define SYSREG_SR_J_SIZE 1
|
||||
#define SYSREG_R_OFFSET 29
|
||||
#define SYSREG_R_SIZE 1
|
||||
#define SYSREG_H_OFFSET 30
|
||||
#define SYSREG_H_SIZE 1
|
||||
|
||||
/* Bitfields in EVBA */
|
||||
|
||||
/* Bitfields in ACBA */
|
||||
#define SYSREG_SR_C_OFFSET 0
|
||||
#define SYSREG_SR_C_SIZE 1
|
||||
#define SYSREG_Z_OFFSET 1
|
||||
#define SYSREG_Z_SIZE 1
|
||||
#define SYSREG_SR_N_OFFSET 2
|
||||
#define SYSREG_SR_N_SIZE 1
|
||||
#define SYSREG_SR_V_OFFSET 3
|
||||
#define SYSREG_SR_V_SIZE 1
|
||||
#define SYSREG_Q_OFFSET 4
|
||||
#define SYSREG_Q_SIZE 1
|
||||
#define SYSREG_L_OFFSET 5
|
||||
#define SYSREG_L_SIZE 1
|
||||
#define SYSREG_T_OFFSET 14
|
||||
#define SYSREG_T_SIZE 1
|
||||
#define SYSREG_SR_R_OFFSET 15
|
||||
#define SYSREG_SR_R_SIZE 1
|
||||
#define SYSREG_GM_OFFSET 16
|
||||
#define SYSREG_GM_SIZE 1
|
||||
#define SYSREG_I0M_OFFSET 17
|
||||
#define SYSREG_I0M_SIZE 1
|
||||
#define SYSREG_I1M_OFFSET 18
|
||||
#define SYSREG_I1M_SIZE 1
|
||||
#define SYSREG_I2M_OFFSET 19
|
||||
#define SYSREG_I2M_SIZE 1
|
||||
#define SYSREG_I3M_OFFSET 20
|
||||
#define SYSREG_I3M_SIZE 1
|
||||
#define SYSREG_EM_OFFSET 21
|
||||
#define SYSREG_EM_SIZE 1
|
||||
#define SYSREG_M0_OFFSET 22
|
||||
#define SYSREG_M0_SIZE 1
|
||||
#define SYSREG_M1_OFFSET 23
|
||||
#define SYSREG_M1_SIZE 1
|
||||
#define SYSREG_M2_OFFSET 24
|
||||
#define SYSREG_M2_SIZE 1
|
||||
#define SYSREG_SR_D_OFFSET 26
|
||||
#define SYSREG_SR_D_SIZE 1
|
||||
#define SYSREG_DM_OFFSET 27
|
||||
#define SYSREG_DM_SIZE 1
|
||||
#define SYSREG_SR_J_OFFSET 28
|
||||
#define SYSREG_SR_J_SIZE 1
|
||||
#define SYSREG_H_OFFSET 29
|
||||
#define SYSREG_H_SIZE 1
|
||||
|
||||
/* Bitfields in CPUCR */
|
||||
#define SYSREG_BI_OFFSET 0
|
||||
#define SYSREG_BI_SIZE 1
|
||||
#define SYSREG_BE_OFFSET 1
|
||||
#define SYSREG_BE_SIZE 1
|
||||
#define SYSREG_FE_OFFSET 2
|
||||
#define SYSREG_FE_SIZE 1
|
||||
#define SYSREG_RE_OFFSET 3
|
||||
#define SYSREG_RE_SIZE 1
|
||||
#define SYSREG_IBE_OFFSET 4
|
||||
#define SYSREG_IBE_SIZE 1
|
||||
#define SYSREG_IEE_OFFSET 5
|
||||
#define SYSREG_IEE_SIZE 1
|
||||
|
||||
/* Bitfields in ECR */
|
||||
#define SYSREG_ECR_OFFSET 0
|
||||
#define SYSREG_ECR_SIZE 32
|
||||
|
||||
/* Bitfields in RSR_SUP */
|
||||
|
||||
/* Bitfields in RSR_INT0 */
|
||||
|
||||
/* Bitfields in RSR_INT1 */
|
||||
|
||||
/* Bitfields in RSR_INT2 */
|
||||
|
||||
/* Bitfields in RSR_INT3 */
|
||||
|
||||
/* Bitfields in RSR_EX */
|
||||
|
||||
/* Bitfields in RSR_NMI */
|
||||
|
||||
/* Bitfields in RSR_DBG */
|
||||
|
||||
/* Bitfields in RAR_SUP */
|
||||
|
||||
/* Bitfields in RAR_INT0 */
|
||||
|
||||
/* Bitfields in RAR_INT1 */
|
||||
|
||||
/* Bitfields in RAR_INT2 */
|
||||
|
||||
/* Bitfields in RAR_INT3 */
|
||||
|
||||
/* Bitfields in RAR_EX */
|
||||
|
||||
/* Bitfields in RAR_NMI */
|
||||
|
||||
/* Bitfields in RAR_DBG */
|
||||
|
||||
/* Bitfields in JECR */
|
||||
|
||||
/* Bitfields in JOSP */
|
||||
|
||||
/* Bitfields in JAVA_LV0 */
|
||||
|
||||
/* Bitfields in JAVA_LV1 */
|
||||
|
||||
/* Bitfields in JAVA_LV2 */
|
||||
|
||||
/* Bitfields in JAVA_LV3 */
|
||||
|
||||
/* Bitfields in JAVA_LV4 */
|
||||
|
||||
/* Bitfields in JAVA_LV5 */
|
||||
|
||||
/* Bitfields in JAVA_LV6 */
|
||||
|
||||
/* Bitfields in JAVA_LV7 */
|
||||
|
||||
/* Bitfields in JTBA */
|
||||
|
||||
/* Bitfields in JBCR */
|
||||
#define SYSREG_BI_OFFSET 0
|
||||
#define SYSREG_BI_SIZE 1
|
||||
#define SYSREG_BE_OFFSET 1
|
||||
#define SYSREG_BE_SIZE 1
|
||||
#define SYSREG_FE_OFFSET 2
|
||||
#define SYSREG_FE_SIZE 1
|
||||
#define SYSREG_RE_OFFSET 3
|
||||
#define SYSREG_RE_SIZE 1
|
||||
#define SYSREG_IBE_OFFSET 4
|
||||
#define SYSREG_IBE_SIZE 1
|
||||
#define SYSREG_IEE_OFFSET 5
|
||||
#define SYSREG_IEE_SIZE 1
|
||||
|
||||
/* Bitfields in CONFIG0 */
|
||||
#define SYSREG_CONFIG0_D_OFFSET 1
|
||||
#define SYSREG_CONFIG0_D_SIZE 1
|
||||
#define SYSREG_CONFIG0_S_OFFSET 2
|
||||
#define SYSREG_CONFIG0_S_SIZE 1
|
||||
#define SYSREG_O_OFFSET 3
|
||||
#define SYSREG_O_SIZE 1
|
||||
#define SYSREG_P_OFFSET 4
|
||||
#define SYSREG_P_SIZE 1
|
||||
#define SYSREG_CONFIG0_J_OFFSET 5
|
||||
#define SYSREG_CONFIG0_J_SIZE 1
|
||||
#define SYSREG_F_OFFSET 6
|
||||
#define SYSREG_F_SIZE 1
|
||||
#define SYSREG_MMUT_OFFSET 7
|
||||
#define SYSREG_MMUT_SIZE 3
|
||||
#define SYSREG_AR_OFFSET 10
|
||||
#define SYSREG_AR_SIZE 3
|
||||
#define SYSREG_AT_OFFSET 13
|
||||
#define SYSREG_AT_SIZE 3
|
||||
#define SYSREG_PROCESSORREVISION_OFFSET 16
|
||||
#define SYSREG_PROCESSORREVISION_SIZE 8
|
||||
#define SYSREG_PROCESSORID_OFFSET 24
|
||||
#define SYSREG_PROCESSORID_SIZE 8
|
||||
#define SYSREG_CONFIG0_R_OFFSET 0
|
||||
#define SYSREG_CONFIG0_R_SIZE 1
|
||||
#define SYSREG_CONFIG0_D_OFFSET 1
|
||||
#define SYSREG_CONFIG0_D_SIZE 1
|
||||
#define SYSREG_CONFIG0_S_OFFSET 2
|
||||
#define SYSREG_CONFIG0_S_SIZE 1
|
||||
#define SYSREG_CONFIG0_O_OFFSET 3
|
||||
#define SYSREG_CONFIG0_O_SIZE 1
|
||||
#define SYSREG_CONFIG0_P_OFFSET 4
|
||||
#define SYSREG_CONFIG0_P_SIZE 1
|
||||
#define SYSREG_CONFIG0_J_OFFSET 5
|
||||
#define SYSREG_CONFIG0_J_SIZE 1
|
||||
#define SYSREG_CONFIG0_F_OFFSET 6
|
||||
#define SYSREG_CONFIG0_F_SIZE 1
|
||||
#define SYSREG_MMUT_OFFSET 7
|
||||
#define SYSREG_MMUT_SIZE 3
|
||||
#define SYSREG_AR_OFFSET 10
|
||||
#define SYSREG_AR_SIZE 3
|
||||
#define SYSREG_AT_OFFSET 13
|
||||
#define SYSREG_AT_SIZE 3
|
||||
#define SYSREG_PROCESSORREVISION_OFFSET 16
|
||||
#define SYSREG_PROCESSORREVISION_SIZE 8
|
||||
#define SYSREG_PROCESSORID_OFFSET 24
|
||||
#define SYSREG_PROCESSORID_SIZE 8
|
||||
|
||||
/* Bitfields in CONFIG1 */
|
||||
#define SYSREG_DASS_OFFSET 0
|
||||
#define SYSREG_DASS_SIZE 3
|
||||
#define SYSREG_DLSZ_OFFSET 3
|
||||
#define SYSREG_DLSZ_SIZE 3
|
||||
#define SYSREG_DSET_OFFSET 6
|
||||
#define SYSREG_DSET_SIZE 4
|
||||
#define SYSREG_IASS_OFFSET 10
|
||||
#define SYSREG_IASS_SIZE 2
|
||||
#define SYSREG_ILSZ_OFFSET 13
|
||||
#define SYSREG_ILSZ_SIZE 3
|
||||
#define SYSREG_ISET_OFFSET 16
|
||||
#define SYSREG_ISET_SIZE 4
|
||||
#define SYSREG_DMMUSZ_OFFSET 20
|
||||
#define SYSREG_DMMUSZ_SIZE 6
|
||||
#define SYSREG_IMMUSZ_OFFSET 26
|
||||
#define SYSREG_IMMUSZ_SIZE 6
|
||||
|
||||
/* Bitfields in COUNT */
|
||||
|
||||
/* Bitfields in COMPARE */
|
||||
#define SYSREG_DASS_OFFSET 0
|
||||
#define SYSREG_DASS_SIZE 3
|
||||
#define SYSREG_DLSZ_OFFSET 3
|
||||
#define SYSREG_DLSZ_SIZE 3
|
||||
#define SYSREG_DSET_OFFSET 6
|
||||
#define SYSREG_DSET_SIZE 4
|
||||
#define SYSREG_IASS_OFFSET 10
|
||||
#define SYSREG_IASS_SIZE 3
|
||||
#define SYSREG_ILSZ_OFFSET 13
|
||||
#define SYSREG_ILSZ_SIZE 3
|
||||
#define SYSREG_ISET_OFFSET 16
|
||||
#define SYSREG_ISET_SIZE 4
|
||||
#define SYSREG_DMMUSZ_OFFSET 20
|
||||
#define SYSREG_DMMUSZ_SIZE 6
|
||||
#define SYSREG_IMMUSZ_OFFSET 26
|
||||
#define SYSREG_IMMUSZ_SIZE 6
|
||||
|
||||
/* Bitfields in TLBEHI */
|
||||
#define SYSREG_ASID_OFFSET 0
|
||||
#define SYSREG_ASID_SIZE 8
|
||||
#define SYSREG_TLBEHI_I_OFFSET 8
|
||||
#define SYSREG_TLBEHI_I_SIZE 1
|
||||
#define SYSREG_TLBEHI_V_OFFSET 9
|
||||
#define SYSREG_TLBEHI_V_SIZE 1
|
||||
#define SYSREG_VPN_OFFSET 10
|
||||
#define SYSREG_VPN_SIZE 22
|
||||
#define SYSREG_ASID_OFFSET 0
|
||||
#define SYSREG_ASID_SIZE 8
|
||||
#define SYSREG_TLBEHI_I_OFFSET 8
|
||||
#define SYSREG_TLBEHI_I_SIZE 1
|
||||
#define SYSREG_TLBEHI_V_OFFSET 9
|
||||
#define SYSREG_TLBEHI_V_SIZE 1
|
||||
#define SYSREG_VPN_OFFSET 10
|
||||
#define SYSREG_VPN_SIZE 22
|
||||
|
||||
/* Bitfields in TLBELO */
|
||||
#define SYSREG_W_OFFSET 0
|
||||
#define SYSREG_W_SIZE 1
|
||||
#define SYSREG_TLBELO_D_OFFSET 1
|
||||
#define SYSREG_TLBELO_D_SIZE 1
|
||||
#define SYSREG_SZ_OFFSET 2
|
||||
#define SYSREG_SZ_SIZE 2
|
||||
#define SYSREG_AP_OFFSET 4
|
||||
#define SYSREG_AP_SIZE 3
|
||||
#define SYSREG_B_OFFSET 7
|
||||
#define SYSREG_B_SIZE 1
|
||||
#define SYSREG_G_OFFSET 8
|
||||
#define SYSREG_G_SIZE 1
|
||||
#define SYSREG_TLBELO_C_OFFSET 9
|
||||
#define SYSREG_TLBELO_C_SIZE 1
|
||||
#define SYSREG_PFN_OFFSET 10
|
||||
#define SYSREG_PFN_SIZE 22
|
||||
|
||||
/* Bitfields in PTBR */
|
||||
|
||||
/* Bitfields in TLBEAR */
|
||||
#define SYSREG_W_OFFSET 0
|
||||
#define SYSREG_W_SIZE 1
|
||||
#define SYSREG_TLBELO_D_OFFSET 1
|
||||
#define SYSREG_TLBELO_D_SIZE 1
|
||||
#define SYSREG_SZ_OFFSET 2
|
||||
#define SYSREG_SZ_SIZE 2
|
||||
#define SYSREG_AP_OFFSET 4
|
||||
#define SYSREG_AP_SIZE 3
|
||||
#define SYSREG_B_OFFSET 7
|
||||
#define SYSREG_B_SIZE 1
|
||||
#define SYSREG_G_OFFSET 8
|
||||
#define SYSREG_G_SIZE 1
|
||||
#define SYSREG_TLBELO_C_OFFSET 9
|
||||
#define SYSREG_TLBELO_C_SIZE 1
|
||||
#define SYSREG_PFN_OFFSET 10
|
||||
#define SYSREG_PFN_SIZE 22
|
||||
|
||||
/* Bitfields in MMUCR */
|
||||
#define SYSREG_E_OFFSET 0
|
||||
#define SYSREG_E_SIZE 1
|
||||
#define SYSREG_M_OFFSET 1
|
||||
#define SYSREG_M_SIZE 1
|
||||
#define SYSREG_MMUCR_I_OFFSET 2
|
||||
#define SYSREG_MMUCR_I_SIZE 1
|
||||
#define SYSREG_MMUCR_N_OFFSET 3
|
||||
#define SYSREG_MMUCR_N_SIZE 1
|
||||
#define SYSREG_MMUCR_S_OFFSET 4
|
||||
#define SYSREG_MMUCR_S_SIZE 1
|
||||
#define SYSREG_DLA_OFFSET 8
|
||||
#define SYSREG_DLA_SIZE 6
|
||||
#define SYSREG_DRP_OFFSET 14
|
||||
#define SYSREG_DRP_SIZE 6
|
||||
#define SYSREG_ILA_OFFSET 20
|
||||
#define SYSREG_ILA_SIZE 6
|
||||
#define SYSREG_IRP_OFFSET 26
|
||||
#define SYSREG_IRP_SIZE 6
|
||||
|
||||
/* Bitfields in TLBARLO */
|
||||
|
||||
/* Bitfields in TLBARHI */
|
||||
|
||||
/* Bitfields in PCCNT */
|
||||
|
||||
/* Bitfields in PCNT0 */
|
||||
|
||||
/* Bitfields in PCNT1 */
|
||||
#define SYSREG_E_OFFSET 0
|
||||
#define SYSREG_E_SIZE 1
|
||||
#define SYSREG_M_OFFSET 1
|
||||
#define SYSREG_M_SIZE 1
|
||||
#define SYSREG_MMUCR_I_OFFSET 2
|
||||
#define SYSREG_MMUCR_I_SIZE 1
|
||||
#define SYSREG_MMUCR_N_OFFSET 3
|
||||
#define SYSREG_MMUCR_N_SIZE 1
|
||||
#define SYSREG_MMUCR_S_OFFSET 4
|
||||
#define SYSREG_MMUCR_S_SIZE 1
|
||||
#define SYSREG_DLA_OFFSET 8
|
||||
#define SYSREG_DLA_SIZE 6
|
||||
#define SYSREG_DRP_OFFSET 14
|
||||
#define SYSREG_DRP_SIZE 6
|
||||
#define SYSREG_ILA_OFFSET 20
|
||||
#define SYSREG_ILA_SIZE 6
|
||||
#define SYSREG_IRP_OFFSET 26
|
||||
#define SYSREG_IRP_SIZE 6
|
||||
|
||||
/* Bitfields in PCCR */
|
||||
|
||||
/* Bitfields in BEAR */
|
||||
#define SYSREG_PCCR_R_OFFSET 1
|
||||
#define SYSREG_PCCR_R_SIZE 1
|
||||
#define SYSREG_PCCR_C_OFFSET 2
|
||||
#define SYSREG_PCCR_C_SIZE 1
|
||||
#define SYSREG_PCCR_S_OFFSET 3
|
||||
#define SYSREG_PCCR_S_SIZE 1
|
||||
#define SYSREG_IEC_OFFSET 4
|
||||
#define SYSREG_IEC_SIZE 1
|
||||
#define SYSREG_IE0_OFFSET 5
|
||||
#define SYSREG_IE0_SIZE 1
|
||||
#define SYSREG_IE1_OFFSET 6
|
||||
#define SYSREG_IE1_SIZE 1
|
||||
#define SYSREG_FC_OFFSET 8
|
||||
#define SYSREG_FC_SIZE 1
|
||||
#define SYSREG_F0_OFFSET 9
|
||||
#define SYSREG_F0_SIZE 1
|
||||
#define SYSREG_F1_OFFSET 10
|
||||
#define SYSREG_F1_SIZE 1
|
||||
#define SYSREG_CONF0_OFFSET 12
|
||||
#define SYSREG_CONF0_SIZE 6
|
||||
#define SYSREG_CONF1_OFFSET 18
|
||||
#define SYSREG_CONF1_SIZE 6
|
||||
|
||||
/* Constants for ECR */
|
||||
#define ECR_UNRECOVERABLE 0
|
||||
#define ECR_TLB_MULTIPLE 1
|
||||
#define ECR_BUS_ERROR_WRITE 2
|
||||
#define ECR_BUS_ERROR_READ 3
|
||||
#define ECR_NMI 4
|
||||
#define ECR_ADDR_ALIGN_X 5
|
||||
#define ECR_PROTECTION_X 6
|
||||
#define ECR_DEBUG 7
|
||||
#define ECR_ILLEGAL_OPCODE 8
|
||||
#define ECR_UNIMPL_INSTRUCTION 9
|
||||
#define ECR_PRIVILEGE_VIOLATION 10
|
||||
#define ECR_FPE 11
|
||||
#define ECR_COPROC_ABSENT 12
|
||||
#define ECR_ADDR_ALIGN_R 13
|
||||
#define ECR_ADDR_ALIGN_W 14
|
||||
#define ECR_PROTECTION_R 15
|
||||
#define ECR_PROTECTION_W 16
|
||||
#define ECR_DTLB_MODIFIED 17
|
||||
#define ECR_TLB_MISS_X 20
|
||||
#define ECR_TLB_MISS_R 24
|
||||
#define ECR_TLB_MISS_W 28
|
||||
#define ECR_UNRECOVERABLE 0
|
||||
#define ECR_TLB_MULTIPLE 1
|
||||
#define ECR_BUS_ERROR_WRITE 2
|
||||
#define ECR_BUS_ERROR_READ 3
|
||||
#define ECR_NMI 4
|
||||
#define ECR_ADDR_ALIGN_X 5
|
||||
#define ECR_PROTECTION_X 6
|
||||
#define ECR_DEBUG 7
|
||||
#define ECR_ILLEGAL_OPCODE 8
|
||||
#define ECR_UNIMPL_INSTRUCTION 9
|
||||
#define ECR_PRIVILEGE_VIOLATION 10
|
||||
#define ECR_FPE 11
|
||||
#define ECR_COPROC_ABSENT 12
|
||||
#define ECR_ADDR_ALIGN_R 13
|
||||
#define ECR_ADDR_ALIGN_W 14
|
||||
#define ECR_PROTECTION_R 15
|
||||
#define ECR_PROTECTION_W 16
|
||||
#define ECR_DTLB_MODIFIED 17
|
||||
#define ECR_TLB_MISS_X 20
|
||||
#define ECR_TLB_MISS_R 24
|
||||
#define ECR_TLB_MISS_W 28
|
||||
|
||||
/* Bit manipulation macros */
|
||||
#define SYSREG_BIT(name) (1 << SYSREG_##name##_OFFSET)
|
||||
#define SYSREG_BF(name,value) (((value) & ((1 << SYSREG_##name##_SIZE) - 1)) << SYSREG_##name##_OFFSET)
|
||||
#define SYSREG_BFEXT(name,value) (((value) >> SYSREG_##name##_OFFSET) & ((1 << SYSREG_##name##_SIZE) - 1))
|
||||
#define SYSREG_BFINS(name,value,old) (((old) & ~(((1 << SYSREG_##name##_SIZE) - 1) << SYSREG_##name##_OFFSET)) | SYSREG_BF(name,value))
|
||||
#define SYSREG_BIT(name) \
|
||||
(1 << SYSREG_##name##_OFFSET)
|
||||
#define SYSREG_BF(name,value) \
|
||||
(((value) & ((1 << SYSREG_##name##_SIZE) - 1)) \
|
||||
<< SYSREG_##name##_OFFSET)
|
||||
#define SYSREG_BFEXT(name,value)\
|
||||
(((value) >> SYSREG_##name##_OFFSET) \
|
||||
& ((1 << SYSREG_##name##_SIZE) - 1))
|
||||
#define SYSREG_BFINS(name,value,old) \
|
||||
(((old) & ~(((1 << SYSREG_##name##_SIZE) - 1) \
|
||||
<< SYSREG_##name##_OFFSET)) \
|
||||
| SYSREG_BF(name,value))
|
||||
|
||||
/* Register access macros */
|
||||
#ifdef __CHECKER__
|
||||
extern unsigned long __builtin_mfsr(unsigned long reg);
|
||||
extern void __builtin_mtsr(unsigned long reg, unsigned long value);
|
||||
#endif
|
||||
|
||||
/* Register access macros */
|
||||
#define sysreg_read(reg) __builtin_mfsr(SYSREG_##reg)
|
||||
#define sysreg_write(reg, value) __builtin_mtsr(SYSREG_##reg, value)
|
||||
#define sysreg_read(reg) __builtin_mfsr(SYSREG_##reg)
|
||||
#define sysreg_write(reg, value) __builtin_mtsr(SYSREG_##reg, value)
|
||||
|
||||
#endif /* __ASM_AVR32_SYSREG_H__ */
|
||||
#endif /* __ASM_AVR32_SYSREG_H */
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#define __ASM_AVR32_SYSTEM_H
|
||||
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include <asm/ptrace.h>
|
||||
@@ -140,15 +141,9 @@ static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
|
||||
sizeof(*(ptr))))
|
||||
|
||||
struct pt_regs;
|
||||
extern void __die(const char *, struct pt_regs *, unsigned long,
|
||||
const char *, const char *, unsigned long);
|
||||
extern void __die_if_kernel(const char *, struct pt_regs *, unsigned long,
|
||||
const char *, const char *, unsigned long);
|
||||
|
||||
#define die(msg, regs, err) \
|
||||
__die(msg, regs, err, __FILE__ ":", __FUNCTION__, __LINE__)
|
||||
#define die_if_kernel(msg, regs, err) \
|
||||
__die_if_kernel(msg, regs, err, __FILE__ ":", __FUNCTION__, __LINE__)
|
||||
void NORET_TYPE die(const char *str, struct pt_regs *regs, long err);
|
||||
void _exception(long signr, struct pt_regs *regs, int code,
|
||||
unsigned long addr);
|
||||
|
||||
#define arch_align_stack(x) (x)
|
||||
|
||||
|
||||
@@ -83,6 +83,7 @@ static inline struct thread_info *current_thread_info(void)
|
||||
#define TIF_SINGLE_STEP 6 /* single step after next break */
|
||||
#define TIF_MEMDIE 7
|
||||
#define TIF_RESTORE_SIGMASK 8 /* restore signal mask in do_signal */
|
||||
#define TIF_CPU_GOING_TO_SLEEP 9 /* CPU is entering sleep 0 mode */
|
||||
#define TIF_USERSPACE 31 /* true if FS sets userspace */
|
||||
|
||||
#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
|
||||
@@ -94,6 +95,7 @@ static inline struct thread_info *current_thread_info(void)
|
||||
#define _TIF_SINGLE_STEP (1 << TIF_SINGLE_STEP)
|
||||
#define _TIF_MEMDIE (1 << TIF_MEMDIE)
|
||||
#define _TIF_RESTORE_SIGMASK (1 << TIF_RESTORE_SIGMASK)
|
||||
#define _TIF_CPU_GOING_TO_SLEEP (1 << TIF_CPU_GOING_TO_SLEEP)
|
||||
|
||||
/* XXX: These two masks must never span more than 16 bits! */
|
||||
/* work to do on interrupt/exception return */
|
||||
|
||||
@@ -181,24 +181,23 @@ extern int __put_user_bad(void);
|
||||
|
||||
#define __get_user_nocheck(x, ptr, size) \
|
||||
({ \
|
||||
typeof(*(ptr)) __gu_val = (typeof(*(ptr)) __force)0; \
|
||||
unsigned long __gu_val = 0; \
|
||||
int __gu_err = 0; \
|
||||
\
|
||||
switch (size) { \
|
||||
case 1: __get_user_asm("ub", __gu_val, ptr, __gu_err); break; \
|
||||
case 2: __get_user_asm("uh", __gu_val, ptr, __gu_err); break; \
|
||||
case 4: __get_user_asm("w", __gu_val, ptr, __gu_err); break; \
|
||||
case 8: __get_user_asm("d", __gu_val, ptr, __gu_err); break; \
|
||||
default: __gu_err = __get_user_bad(); break; \
|
||||
} \
|
||||
\
|
||||
x = __gu_val; \
|
||||
x = (typeof(*(ptr)))__gu_val; \
|
||||
__gu_err; \
|
||||
})
|
||||
|
||||
#define __get_user_check(x, ptr, size) \
|
||||
({ \
|
||||
typeof(*(ptr)) __gu_val = (typeof(*(ptr)) __force)0; \
|
||||
unsigned long __gu_val = 0; \
|
||||
const typeof(*(ptr)) __user * __gu_addr = (ptr); \
|
||||
int __gu_err = 0; \
|
||||
\
|
||||
@@ -216,10 +215,6 @@ extern int __put_user_bad(void);
|
||||
__get_user_asm("w", __gu_val, __gu_addr, \
|
||||
__gu_err); \
|
||||
break; \
|
||||
case 8: \
|
||||
__get_user_asm("d", __gu_val, __gu_addr, \
|
||||
__gu_err); \
|
||||
break; \
|
||||
default: \
|
||||
__gu_err = __get_user_bad(); \
|
||||
break; \
|
||||
@@ -227,7 +222,7 @@ extern int __put_user_bad(void);
|
||||
} else { \
|
||||
__gu_err = -EFAULT; \
|
||||
} \
|
||||
x = __gu_val; \
|
||||
x = (typeof(*(ptr)))__gu_val; \
|
||||
__gu_err; \
|
||||
})
|
||||
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
|
||||
#define SO_PEERSEC 31
|
||||
#define SO_PASSSEC 34
|
||||
#define SO_TIMESTAMPNS 35
|
||||
#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
|
||||
|
||||
#endif /* _ASM_SOCKET_H */
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#define FIOGETOWN 0x8903
|
||||
#define SIOCGPGRP 0x8904
|
||||
#define SIOCATMARK 0x8905
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp */
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
|
||||
#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
|
||||
|
||||
#endif
|
||||
|
||||
@@ -49,6 +49,8 @@
|
||||
|
||||
#define SO_PEERSEC 31
|
||||
#define SO_PASSSEC 34
|
||||
#define SO_TIMESTAMPNS 35
|
||||
#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
|
||||
|
||||
#endif /* _ASM_SOCKET_H */
|
||||
|
||||
|
||||
@@ -7,7 +7,8 @@
|
||||
#define FIOGETOWN 0x8903
|
||||
#define SIOCGPGRP 0x8904
|
||||
#define SIOCATMARK 0x8905
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp */
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
|
||||
#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
|
||||
|
||||
#endif /* _ASM_SOCKIOS__ */
|
||||
|
||||
|
||||
@@ -30,6 +30,11 @@
|
||||
__rem; \
|
||||
})
|
||||
|
||||
static inline uint64_t div64_64(uint64_t dividend, uint64_t divisor)
|
||||
{
|
||||
return dividend / divisor;
|
||||
}
|
||||
|
||||
#elif BITS_PER_LONG == 32
|
||||
|
||||
extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor);
|
||||
@@ -49,6 +54,8 @@ extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor);
|
||||
__rem; \
|
||||
})
|
||||
|
||||
extern uint64_t div64_64(uint64_t dividend, uint64_t divisor);
|
||||
|
||||
#else /* BITS_PER_LONG == ?? */
|
||||
|
||||
# error do_div() does not yet support the C64
|
||||
|
||||
@@ -139,8 +139,15 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addres
|
||||
#define pte_same(A,B) (pte_val(A) == pte_val(B))
|
||||
#endif
|
||||
|
||||
#ifndef __HAVE_ARCH_PAGE_TEST_AND_CLEAR_DIRTY
|
||||
#define page_test_and_clear_dirty(page) (0)
|
||||
#ifndef __HAVE_ARCH_PAGE_TEST_DIRTY
|
||||
#define page_test_dirty(page) (0)
|
||||
#endif
|
||||
|
||||
#ifndef __HAVE_ARCH_PAGE_CLEAR_DIRTY
|
||||
#define page_clear_dirty(page) do { } while (0)
|
||||
#endif
|
||||
|
||||
#ifndef __HAVE_ARCH_PAGE_TEST_DIRTY
|
||||
#define pte_maybe_dirty(pte) pte_dirty(pte)
|
||||
#else
|
||||
#define pte_maybe_dirty(pte) (1)
|
||||
|
||||
@@ -49,5 +49,7 @@
|
||||
|
||||
#define SO_PEERSEC 31
|
||||
#define SO_PASSSEC 34
|
||||
#define SO_TIMESTAMPNS 35
|
||||
#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
|
||||
|
||||
#endif /* _ASM_SOCKET_H */
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#define FIOGETOWN 0x8903
|
||||
#define SIOCGPGRP 0x8904
|
||||
#define SIOCATMARK 0x8905
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp */
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
|
||||
#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
|
||||
|
||||
#endif /* __ARCH_H8300_SOCKIOS__ */
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef __I386_DIV64
|
||||
#define __I386_DIV64
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/*
|
||||
* do_div() is NOT a C function. It wants to return
|
||||
* two values (the quotient and the remainder), but
|
||||
@@ -45,4 +47,6 @@ div_ll_X_l_rem(long long divs, long div, long *rem)
|
||||
return dum2;
|
||||
|
||||
}
|
||||
|
||||
extern uint64_t div64_64(uint64_t dividend, uint64_t divisor);
|
||||
#endif
|
||||
|
||||
@@ -49,5 +49,7 @@
|
||||
|
||||
#define SO_PEERSEC 31
|
||||
#define SO_PASSSEC 34
|
||||
#define SO_TIMESTAMPNS 35
|
||||
#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
|
||||
|
||||
#endif /* _ASM_SOCKET_H */
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#define FIOGETOWN 0x8903
|
||||
#define SIOCGPGRP 0x8904
|
||||
#define SIOCATMARK 0x8905
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp */
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
|
||||
#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
|
||||
|
||||
#endif
|
||||
|
||||
@@ -58,5 +58,7 @@
|
||||
|
||||
#define SO_PEERSEC 31
|
||||
#define SO_PASSSEC 34
|
||||
#define SO_TIMESTAMPNS 35
|
||||
#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
|
||||
|
||||
#endif /* _ASM_IA64_SOCKET_H */
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#define FIOGETOWN 0x8903
|
||||
#define SIOCGPGRP 0x8904
|
||||
#define SIOCATMARK 0x8905
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp */
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
|
||||
#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
|
||||
|
||||
#endif /* _ASM_IA64_SOCKIOS_H */
|
||||
|
||||
@@ -49,5 +49,7 @@
|
||||
|
||||
#define SO_PEERSEC 31
|
||||
#define SO_PASSSEC 34
|
||||
#define SO_TIMESTAMPNS 35
|
||||
#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
|
||||
|
||||
#endif /* _ASM_M32R_SOCKET_H */
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#define FIOGETOWN 0x8903
|
||||
#define SIOCGPGRP 0x8904
|
||||
#define SIOCATMARK 0x8905
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp */
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
|
||||
#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
|
||||
|
||||
#endif /* _ASM_M32R_SOCKIOS_H */
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef _M68K_DIV64_H
|
||||
#define _M68K_DIV64_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/* n = n / base; return rem; */
|
||||
|
||||
#define do_div(n, base) ({ \
|
||||
@@ -23,4 +25,5 @@
|
||||
__rem; \
|
||||
})
|
||||
|
||||
extern uint64_t div64_64(uint64_t dividend, uint64_t divisor);
|
||||
#endif /* _M68K_DIV64_H */
|
||||
|
||||
@@ -49,5 +49,7 @@
|
||||
|
||||
#define SO_PEERSEC 31
|
||||
#define SO_PASSSEC 34
|
||||
#define SO_TIMESTAMPNS 35
|
||||
#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
|
||||
|
||||
#endif /* _ASM_SOCKET_H */
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#define FIOGETOWN 0x8903
|
||||
#define SIOCGPGRP 0x8904
|
||||
#define SIOCATMARK 0x8905
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp */
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
|
||||
#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
|
||||
|
||||
#endif /* __ARCH_M68K_SOCKIOS__ */
|
||||
|
||||
@@ -18,7 +18,8 @@ do { \
|
||||
|
||||
#define BUG_ON(condition) \
|
||||
do { \
|
||||
__asm__ __volatile__("tne $0, %0" : : "r" (condition)); \
|
||||
__asm__ __volatile__("tne $0, %0, %1" \
|
||||
: : "r" (condition), "i" (BRK_BUG)); \
|
||||
} while (0)
|
||||
|
||||
#define HAVE_ARCH_BUG_ON
|
||||
|
||||
@@ -96,6 +96,6 @@ extern void (*flush_data_cache_page)(unsigned long addr);
|
||||
unsigned long __init run_uncached(void *func);
|
||||
|
||||
extern void *kmap_coherent(struct page *page, unsigned long addr);
|
||||
extern void kunmap_coherent(struct page *page);
|
||||
extern void kunmap_coherent(void);
|
||||
|
||||
#endif /* _ASM_CACHEFLUSH_H */
|
||||
|
||||
@@ -166,7 +166,7 @@ static inline __wsum csum_tcpudp_nofold(__be32 saddr,
|
||||
#else
|
||||
"r" (proto + len),
|
||||
#endif
|
||||
"r" (sum));
|
||||
"r" ((__force unsigned long)sum));
|
||||
|
||||
return sum;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (C) 2000, 2004 Maciej W. Rozycki
|
||||
* Copyright (C) 2003 Ralf Baechle
|
||||
* Copyright (C) 2003, 07 Ralf Baechle (ralf@linux-mips.org)
|
||||
*
|
||||
* 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
|
||||
@@ -9,6 +9,8 @@
|
||||
#ifndef _ASM_DIV64_H
|
||||
#define _ASM_DIV64_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#if (_MIPS_SZLONG == 32)
|
||||
|
||||
#include <asm/compiler.h>
|
||||
@@ -78,6 +80,8 @@
|
||||
__quot = __quot << 32 | __low; \
|
||||
(n) = __quot; \
|
||||
__mod; })
|
||||
|
||||
extern uint64_t div64_64(uint64_t dividend, uint64_t divisor);
|
||||
#endif /* (_MIPS_SZLONG == 32) */
|
||||
|
||||
#if (_MIPS_SZLONG == 64)
|
||||
@@ -101,6 +105,11 @@
|
||||
(n) = __quot; \
|
||||
__mod; })
|
||||
|
||||
static inline uint64_t div64_64(uint64_t dividend, uint64_t divisor)
|
||||
{
|
||||
return dividend / divisor;
|
||||
}
|
||||
|
||||
#endif /* (_MIPS_SZLONG == 64) */
|
||||
|
||||
#endif /* _ASM_DIV64_H */
|
||||
|
||||
+7
-18
@@ -68,8 +68,6 @@ do { \
|
||||
/* We don't care about the c0 hazard here */ \
|
||||
} while (0)
|
||||
|
||||
#define __fpu_enabled() (read_c0_status() & ST0_CU1)
|
||||
|
||||
#define enable_fpu() \
|
||||
do { \
|
||||
if (cpu_has_fpu) \
|
||||
@@ -102,14 +100,19 @@ static inline void __own_fpu(void)
|
||||
set_thread_flag(TIF_USEDFPU);
|
||||
}
|
||||
|
||||
static inline void own_fpu(int restore)
|
||||
static inline void own_fpu_inatomic(int restore)
|
||||
{
|
||||
preempt_disable();
|
||||
if (cpu_has_fpu && !__is_fpu_owner()) {
|
||||
__own_fpu();
|
||||
if (restore)
|
||||
_restore_fp(current);
|
||||
}
|
||||
}
|
||||
|
||||
static inline void own_fpu(int restore)
|
||||
{
|
||||
preempt_disable();
|
||||
own_fpu_inatomic(restore);
|
||||
preempt_enable();
|
||||
}
|
||||
|
||||
@@ -162,18 +165,4 @@ static inline fpureg_t *get_fpu_regs(struct task_struct *tsk)
|
||||
return tsk->thread.fpu.fpr;
|
||||
}
|
||||
|
||||
static inline void enable_fp_in_kernel(void)
|
||||
{
|
||||
set_thread_flag(TIF_ALLOW_FP_IN_KERNEL);
|
||||
/* make sure CU1 and FPU ownership are consistent */
|
||||
if (!__is_fpu_owner() && __fpu_enabled())
|
||||
__disable_fpu();
|
||||
}
|
||||
|
||||
static inline void disable_fp_in_kernel(void)
|
||||
{
|
||||
BUG_ON(!__is_fpu_owner() && __fpu_enabled());
|
||||
clear_thread_flag(TIF_ALLOW_FP_IN_KERNEL);
|
||||
}
|
||||
|
||||
#endif /* _ASM_FPU_H */
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
/*
|
||||
* linux/include/asm-mips/tx3927/irq.h
|
||||
*
|
||||
* 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) 2001 Toshiba Corporation
|
||||
*/
|
||||
#ifndef __ASM_TX3927_IRQ_H
|
||||
#define __ASM_TX3927_IRQ_H
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <asm/irq.h>
|
||||
|
||||
struct tb_irq_space {
|
||||
struct tb_irq_space* next;
|
||||
int start_irqno;
|
||||
int nr_irqs;
|
||||
void (*mask_func)(int irq_nr, int space_id);
|
||||
void (*unmask_func)(int irq_no, int space_id);
|
||||
const char *name;
|
||||
int space_id;
|
||||
int can_share;
|
||||
};
|
||||
extern struct tb_irq_space* tb_irq_spaces;
|
||||
|
||||
static __inline__ void add_tb_irq_space(struct tb_irq_space* sp)
|
||||
{
|
||||
sp->next = tb_irq_spaces;
|
||||
tb_irq_spaces = sp;
|
||||
}
|
||||
|
||||
|
||||
struct pt_regs;
|
||||
extern void
|
||||
toshibaboards_spurious(struct pt_regs *regs, int irq);
|
||||
extern void
|
||||
toshibaboards_irqdispatch(struct pt_regs *regs, int irq);
|
||||
|
||||
extern struct irqaction *
|
||||
toshibaboards_get_irq_action(int irq);
|
||||
extern int
|
||||
toshibaboards_setup_irq(int irq, struct irqaction * new);
|
||||
|
||||
|
||||
extern int (*toshibaboards_gen_iack)(void);
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
#define NR_ISA_IRQS 16
|
||||
#define TB_IRQ_IS_ISA(irq) \
|
||||
(0 <= (irq) && (irq) < NR_ISA_IRQS)
|
||||
#define TB_IRQ_TO_ISA_IRQ(irq) (irq)
|
||||
|
||||
#endif /* __ASM_TX3927_IRQ_H */
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Defines for the TJSYS JMR-TX3927/JMI-3927IO2/JMY-1394IF.
|
||||
* Defines for the TJSYS JMR-TX3927
|
||||
*
|
||||
* 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
|
||||
@@ -12,10 +12,7 @@
|
||||
|
||||
#include <asm/jmr3927/tx3927.h>
|
||||
#include <asm/addrspace.h>
|
||||
#include <asm/jmr3927/irq.h>
|
||||
#ifndef __ASSEMBLY__
|
||||
#include <asm/system.h>
|
||||
#endif
|
||||
|
||||
/* CS */
|
||||
#define JMR3927_ROMCE0 0x1fc00000 /* 4M */
|
||||
@@ -35,28 +32,10 @@
|
||||
#define JMR3927_SDRAM_SIZE 0x02000000 /* 32M */
|
||||
#define JMR3927_PORT_BASE KSEG1
|
||||
|
||||
/* select indirect initiator access per errata */
|
||||
#define JMR3927_INIT_INDIRECT_PCI
|
||||
#define PCI_ISTAT_IDICC 0x1000
|
||||
#define PCI_IPCIBE_IBE_LONG 0
|
||||
#define PCI_IPCIBE_ICMD_IOREAD 2
|
||||
#define PCI_IPCIBE_ICMD_IOWRITE 3
|
||||
#define PCI_IPCIBE_ICMD_MEMREAD 6
|
||||
#define PCI_IPCIBE_ICMD_MEMWRITE 7
|
||||
#define PCI_IPCIBE_ICMD_SHIFT 4
|
||||
|
||||
/* Address map (virtual address) */
|
||||
#define JMR3927_ROM0_BASE (KSEG1 + JMR3927_ROMCE0)
|
||||
#define JMR3927_ROM1_BASE (KSEG1 + JMR3927_ROMCE1)
|
||||
#define JMR3927_IOC_BASE (KSEG1 + JMR3927_ROMCE2)
|
||||
#define JMR3927_IOB_BASE (KSEG1 + JMR3927_ROMCE3)
|
||||
#define JMR3927_ISAMEM_BASE (JMR3927_IOB_BASE)
|
||||
#define JMR3927_ISAIO_BASE (JMR3927_IOB_BASE + 0x01000000)
|
||||
#define JMR3927_ISAC_BASE (JMR3927_IOB_BASE + 0x02000000)
|
||||
#define JMR3927_LCDVGA_REG_BASE (JMR3927_IOB_BASE + 0x03000000)
|
||||
#define JMR3927_LCDVGA_MEM_BASE (JMR3927_IOB_BASE + 0x03800000)
|
||||
#define JMR3927_JMY1394_BASE (KSEG1 + JMR3927_ROMCE5)
|
||||
#define JMR3927_PREMIER3_BASE (JMR3927_JMY1394_BASE + 0x00100000)
|
||||
#define JMR3927_PCIMEM_BASE (KSEG1 + JMR3927_PCIMEM)
|
||||
#define JMR3927_PCIIO_BASE (KSEG1 + JMR3927_PCIIO)
|
||||
|
||||
@@ -72,25 +51,14 @@
|
||||
#define JMR3927_IOC_INTP_ADDR (JMR3927_IOC_BASE + 0x000b0000)
|
||||
#define JMR3927_IOC_RESET_ADDR (JMR3927_IOC_BASE + 0x000f0000)
|
||||
|
||||
#define JMR3927_ISAC_REV_ADDR (JMR3927_ISAC_BASE + 0x00000000)
|
||||
#define JMR3927_ISAC_EINTS_ADDR (JMR3927_ISAC_BASE + 0x00200000)
|
||||
#define JMR3927_ISAC_EINTM_ADDR (JMR3927_ISAC_BASE + 0x00300000)
|
||||
#define JMR3927_ISAC_NMI_ADDR (JMR3927_ISAC_BASE + 0x00400000)
|
||||
#define JMR3927_ISAC_LED_ADDR (JMR3927_ISAC_BASE + 0x00500000)
|
||||
#define JMR3927_ISAC_INTP_ADDR (JMR3927_ISAC_BASE + 0x00800000)
|
||||
#define JMR3927_ISAC_INTS1_ADDR (JMR3927_ISAC_BASE + 0x00900000)
|
||||
#define JMR3927_ISAC_INTS2_ADDR (JMR3927_ISAC_BASE + 0x00a00000)
|
||||
#define JMR3927_ISAC_INTM_ADDR (JMR3927_ISAC_BASE + 0x00b00000)
|
||||
|
||||
/* Flash ROM */
|
||||
#define JMR3927_FLASH_BASE (JMR3927_ROM0_BASE)
|
||||
#define JMR3927_FLASH_SIZE 0x00400000
|
||||
|
||||
/* bits for IOC_REV/IOC_BREV/ISAC_REV (high byte) */
|
||||
/* bits for IOC_REV/IOC_BREV (high byte) */
|
||||
#define JMR3927_IDT_MASK 0xfc
|
||||
#define JMR3927_REV_MASK 0x03
|
||||
#define JMR3927_IOC_IDT 0xe0
|
||||
#define JMR3927_ISAC_IDT 0x20
|
||||
|
||||
/* bits for IOC_INTS1/IOC_INTS2/IOC_INTM/IOC_INTP (high byte) */
|
||||
#define JMR3927_IOC_INTB_PCIA 0
|
||||
@@ -114,40 +82,6 @@
|
||||
#define JMR3927_IOC_RESET_CPU 1
|
||||
#define JMR3927_IOC_RESET_PCI 2
|
||||
|
||||
/* bits for ISAC_EINTS/ISAC_EINTM (high byte) */
|
||||
#define JMR3927_ISAC_EINTB_IOCHK 2
|
||||
#define JMR3927_ISAC_EINTB_BWTH 4
|
||||
#define JMR3927_ISAC_EINTF_IOCHK (1 << JMR3927_ISAC_EINTB_IOCHK)
|
||||
#define JMR3927_ISAC_EINTF_BWTH (1 << JMR3927_ISAC_EINTB_BWTH)
|
||||
|
||||
/* bits for ISAC_LED (high byte) */
|
||||
#define JMR3927_ISAC_LED_ISALED 0x01
|
||||
#define JMR3927_ISAC_LED_USRLED 0x02
|
||||
|
||||
/* bits for ISAC_INTS/ISAC_INTM/ISAC_INTP (high byte) */
|
||||
#define JMR3927_ISAC_INTB_IRQ5 0
|
||||
#define JMR3927_ISAC_INTB_IRQKB 1
|
||||
#define JMR3927_ISAC_INTB_IRQMOUSE 2
|
||||
#define JMR3927_ISAC_INTB_IRQ4 3
|
||||
#define JMR3927_ISAC_INTB_IRQ12 4
|
||||
#define JMR3927_ISAC_INTB_IRQ3 5
|
||||
#define JMR3927_ISAC_INTB_IRQ10 6
|
||||
#define JMR3927_ISAC_INTB_ISAER 7
|
||||
#define JMR3927_ISAC_INTF_IRQ5 (1 << JMR3927_ISAC_INTB_IRQ5)
|
||||
#define JMR3927_ISAC_INTF_IRQKB (1 << JMR3927_ISAC_INTB_IRQKB)
|
||||
#define JMR3927_ISAC_INTF_IRQMOUSE (1 << JMR3927_ISAC_INTB_IRQMOUSE)
|
||||
#define JMR3927_ISAC_INTF_IRQ4 (1 << JMR3927_ISAC_INTB_IRQ4)
|
||||
#define JMR3927_ISAC_INTF_IRQ12 (1 << JMR3927_ISAC_INTB_IRQ12)
|
||||
#define JMR3927_ISAC_INTF_IRQ3 (1 << JMR3927_ISAC_INTB_IRQ3)
|
||||
#define JMR3927_ISAC_INTF_IRQ10 (1 << JMR3927_ISAC_INTB_IRQ10)
|
||||
#define JMR3927_ISAC_INTF_ISAER (1 << JMR3927_ISAC_INTB_ISAER)
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#if 0
|
||||
#define jmr3927_ioc_reg_out(d, a) ((*(volatile unsigned short *)(a)) = (d) << 8)
|
||||
#define jmr3927_ioc_reg_in(a) (((*(volatile unsigned short *)(a)) >> 8) & 0xff)
|
||||
#else
|
||||
#if defined(__BIG_ENDIAN)
|
||||
#define jmr3927_ioc_reg_out(d, a) ((*(volatile unsigned char *)(a)) = (d))
|
||||
#define jmr3927_ioc_reg_in(a) (*(volatile unsigned char *)(a))
|
||||
@@ -157,31 +91,9 @@
|
||||
#else
|
||||
#error "No Endian"
|
||||
#endif
|
||||
#endif
|
||||
#define jmr3927_isac_reg_out(d, a) ((*(volatile unsigned char *)(a)) = (d))
|
||||
#define jmr3927_isac_reg_in(a) (*(volatile unsigned char *)(a))
|
||||
|
||||
static inline int jmr3927_have_isac(void)
|
||||
{
|
||||
unsigned char idt;
|
||||
unsigned long flags;
|
||||
unsigned long romcr3;
|
||||
|
||||
local_irq_save(flags);
|
||||
romcr3 = tx3927_romcptr->cr[3];
|
||||
tx3927_romcptr->cr[3] &= 0xffffefff; /* do not wait infinitely */
|
||||
idt = jmr3927_isac_reg_in(JMR3927_ISAC_REV_ADDR) & JMR3927_IDT_MASK;
|
||||
tx3927_romcptr->cr[3] = romcr3;
|
||||
local_irq_restore(flags);
|
||||
|
||||
return idt == JMR3927_ISAC_IDT;
|
||||
}
|
||||
#define jmr3927_have_nvram() \
|
||||
((jmr3927_ioc_reg_in(JMR3927_IOC_REV_ADDR) & JMR3927_IDT_MASK) == JMR3927_IOC_IDT)
|
||||
|
||||
/* LED macro */
|
||||
#define jmr3927_led_set(n/*0-16*/) jmr3927_ioc_reg_out(~(n), JMR3927_IOC_LED_ADDR)
|
||||
#define jmr3927_io_led_set(n/*0-3*/) jmr3927_isac_reg_out((n), JMR3927_ISAC_LED_ADDR)
|
||||
|
||||
#define jmr3927_led_and_set(n/*0-16*/) jmr3927_ioc_reg_out((~(n)) & jmr3927_ioc_reg_in(JMR3927_IOC_LED_ADDR), JMR3927_IOC_LED_ADDR)
|
||||
|
||||
@@ -190,10 +102,6 @@ static inline int jmr3927_have_isac(void)
|
||||
#define jmr3927_dipsw2() ((tx3927_pioptr->din & (1 << 10)) == 0)
|
||||
#define jmr3927_dipsw3() ((jmr3927_ioc_reg_in(JMR3927_IOC_DIPSW_ADDR) & 2) == 0)
|
||||
#define jmr3927_dipsw4() ((jmr3927_ioc_reg_in(JMR3927_IOC_DIPSW_ADDR) & 1) == 0)
|
||||
#define jmr3927_io_dipsw() (jmr3927_isac_reg_in(JMR3927_ISAC_LED_ADDR) >> 4)
|
||||
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
/*
|
||||
* IRQ mappings
|
||||
@@ -206,16 +114,10 @@ static inline int jmr3927_have_isac(void)
|
||||
*/
|
||||
#define JMR3927_NR_IRQ_IRC 16 /* On-Chip IRC */
|
||||
#define JMR3927_NR_IRQ_IOC 8 /* PCI/MODEM/INT[6:7] */
|
||||
#define JMR3927_NR_IRQ_ISAC 8 /* ISA */
|
||||
|
||||
|
||||
#define JMR3927_IRQ_IRC NR_ISA_IRQS
|
||||
#define JMR3927_IRQ_IRC 16
|
||||
#define JMR3927_IRQ_IOC (JMR3927_IRQ_IRC + JMR3927_NR_IRQ_IRC)
|
||||
#define JMR3927_IRQ_ISAC (JMR3927_IRQ_IOC + JMR3927_NR_IRQ_IOC)
|
||||
#define JMR3927_IRQ_END (JMR3927_IRQ_ISAC + JMR3927_NR_IRQ_ISAC)
|
||||
#define JMR3927_IRQ_IS_IRC(irq) (JMR3927_IRQ_IRC <= (irq) && (irq) < JMR3927_IRQ_IOC)
|
||||
#define JMR3927_IRQ_IS_IOC(irq) (JMR3927_IRQ_IOC <= (irq) && (irq) < JMR3927_IRQ_ISAC)
|
||||
#define JMR3927_IRQ_IS_ISAC(irq) (JMR3927_IRQ_ISAC <= (irq) && (irq) < JMR3927_IRQ_END)
|
||||
#define JMR3927_IRQ_END (JMR3927_IRQ_IOC + JMR3927_NR_IRQ_IOC)
|
||||
|
||||
#define JMR3927_IRQ_IRC_INT0 (JMR3927_IRQ_IRC + TX3927_IR_INT0)
|
||||
#define JMR3927_IRQ_IRC_INT1 (JMR3927_IRQ_IRC + TX3927_IR_INT1)
|
||||
@@ -240,37 +142,13 @@ static inline int jmr3927_have_isac(void)
|
||||
#define JMR3927_IRQ_IOC_INT6 (JMR3927_IRQ_IOC + JMR3927_IOC_INTB_INT6)
|
||||
#define JMR3927_IRQ_IOC_INT7 (JMR3927_IRQ_IOC + JMR3927_IOC_INTB_INT7)
|
||||
#define JMR3927_IRQ_IOC_SOFT (JMR3927_IRQ_IOC + JMR3927_IOC_INTB_SOFT)
|
||||
#define JMR3927_IRQ_ISAC_IRQ5 (JMR3927_IRQ_ISAC + JMR3927_ISAC_INTB_IRQ5)
|
||||
#define JMR3927_IRQ_ISAC_IRQKB (JMR3927_IRQ_ISAC + JMR3927_ISAC_INTB_IRQKB)
|
||||
#define JMR3927_IRQ_ISAC_IRQMOUSE (JMR3927_IRQ_ISAC + JMR3927_ISAC_INTB_IRQMOUSE)
|
||||
#define JMR3927_IRQ_ISAC_IRQ4 (JMR3927_IRQ_ISAC + JMR3927_ISAC_INTB_IRQ4)
|
||||
#define JMR3927_IRQ_ISAC_IRQ12 (JMR3927_IRQ_ISAC + JMR3927_ISAC_INTB_IRQ12)
|
||||
#define JMR3927_IRQ_ISAC_IRQ3 (JMR3927_IRQ_ISAC + JMR3927_ISAC_INTB_IRQ3)
|
||||
#define JMR3927_IRQ_ISAC_IRQ10 (JMR3927_IRQ_ISAC + JMR3927_ISAC_INTB_IRQ10)
|
||||
#define JMR3927_IRQ_ISAC_ISAER (JMR3927_IRQ_ISAC + JMR3927_ISAC_INTB_ISAER)
|
||||
|
||||
#if 0 /* auto detect */
|
||||
/* RTL8019AS 10M Ether (JMI-3927IO2:JPW2:1-2 Short) */
|
||||
#define JMR3927_IRQ_ETHER1 JMR3927_IRQ_IRC_INT0
|
||||
#endif
|
||||
/* IOC (PCI, MODEM) */
|
||||
#define JMR3927_IRQ_IOCINT JMR3927_IRQ_IRC_INT1
|
||||
/* ISAC (ISA, PCMCIA, KEYBOARD, MOUSE) */
|
||||
#define JMR3927_IRQ_ISACINT JMR3927_IRQ_IRC_INT2
|
||||
/* TC35815 100M Ether (JMR-TX3912:JPW4:2-3 Short) */
|
||||
#define JMR3927_IRQ_ETHER0 JMR3927_IRQ_IRC_INT3
|
||||
/* Clock Tick (10ms) */
|
||||
#define JMR3927_IRQ_TICK JMR3927_IRQ_IRC_TMR0
|
||||
#define JMR3927_IRQ_IDE JMR3927_IRQ_ISAC_IRQ12
|
||||
|
||||
/* IEEE1394 (Note that this may conflicts with RTL8019AS 10M Ether...) */
|
||||
#define JMR3927_IRQ_PREMIER3 JMR3927_IRQ_IRC_INT0
|
||||
|
||||
/* I/O Ports */
|
||||
/* RTL8019AS 10M Ether */
|
||||
#define JMR3927_ETHER1_PORT (JMR3927_ISAIO_BASE - JMR3927_PORT_BASE + 0x280)
|
||||
#define JMR3927_KBD_PORT (JMR3927_ISAIO_BASE - JMR3927_PORT_BASE + 0x00800060)
|
||||
#define JMR3927_IDE_PORT (JMR3927_ISAIO_BASE - JMR3927_PORT_BASE + 0x001001f0)
|
||||
|
||||
/* Clocks */
|
||||
#define JMR3927_CORECLK 132710400 /* 132.7MHz */
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
#define TX3927_SIO_REG(ch) (0xfffef300 + (ch) * 0x100)
|
||||
#define TX3927_PIO_REG 0xfffef500
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
struct tx3927_sdramc_reg {
|
||||
volatile unsigned long cr[8];
|
||||
volatile unsigned long tr[3];
|
||||
@@ -164,8 +162,6 @@ struct tx3927_ccfg_reg {
|
||||
volatile unsigned long pdcr;
|
||||
};
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
/*
|
||||
* SDRAMC
|
||||
*/
|
||||
@@ -348,8 +344,6 @@ struct tx3927_ccfg_reg {
|
||||
#define TX3927_PCFG_SELDMA_ALL 0x0000000f
|
||||
#define TX3927_PCFG_SELDMA(ch) (0x00000001<<(ch))
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#define tx3927_sdramcptr ((struct tx3927_sdramc_reg *)TX3927_SDRAMC_REG)
|
||||
#define tx3927_romcptr ((struct tx3927_romc_reg *)TX3927_ROMC_REG)
|
||||
#define tx3927_dmaptr ((struct tx3927_dma_reg *)TX3927_DMA_REG)
|
||||
@@ -360,6 +354,4 @@ struct tx3927_ccfg_reg {
|
||||
#define tx3927_sioptr(ch) ((struct txx927_sio_reg *)TX3927_SIO_REG(ch))
|
||||
#define tx3927_pioptr ((struct txx927_pio_reg *)TX3927_PIO_REG)
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
#endif /* __ASM_TX3927_H */
|
||||
|
||||
@@ -10,8 +10,6 @@
|
||||
#ifndef __ASM_TXX927_H
|
||||
#define __ASM_TXX927_H
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
struct txx927_tmr_reg {
|
||||
volatile unsigned long tcr;
|
||||
volatile unsigned long tisr;
|
||||
@@ -52,9 +50,6 @@ struct txx927_pio_reg {
|
||||
volatile unsigned long maskext;
|
||||
};
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
|
||||
/*
|
||||
* TMR
|
||||
*/
|
||||
|
||||
@@ -34,7 +34,7 @@ struct __large_pstruct { unsigned long buf[100]; };
|
||||
#define __get_dbe(x,ptr,size) \
|
||||
({ \
|
||||
long __gu_err; \
|
||||
__typeof(*(ptr)) __gu_val; \
|
||||
__typeof__(*(ptr)) __gu_val; \
|
||||
unsigned long __gu_addr; \
|
||||
__asm__("":"=r" (__gu_val)); \
|
||||
__gu_addr = (unsigned long) (ptr); \
|
||||
|
||||
@@ -206,7 +206,7 @@ struct hpc3_regs {
|
||||
#define HPC3_GIOMISC_ERTIME 0x1 /* Enable external timer real time. */
|
||||
#define HPC3_GIOMISC_DENDIAN 0x2 /* dma descriptor endian, 1=lit 0=big */
|
||||
|
||||
volatile u32 eeprom; /* EEPROM data reg. */
|
||||
u32 eeprom; /* EEPROM data reg. */
|
||||
#define HPC3_EEPROM_EPROT 0x01 /* Protect register enable */
|
||||
#define HPC3_EEPROM_CSEL 0x02 /* Chip select */
|
||||
#define HPC3_EEPROM_ECLK 0x04 /* EEPROM clock */
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
|
||||
#define ip22_is_fullhouse() (sgioc->sysid & SGIOC_SYSID_FULLHOUSE)
|
||||
|
||||
extern unsigned short ip22_eeprom_read(volatile unsigned int *ctrl, int reg);
|
||||
extern unsigned short ip22_eeprom_read(unsigned int *ctrl, int reg);
|
||||
extern unsigned short ip22_nvram_read(int reg);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -57,7 +57,7 @@ struct sgimc_regs {
|
||||
volatile u32 divider; /* Divider reg for RPSS */
|
||||
|
||||
u32 _unused5;
|
||||
volatile u32 eeprom; /* EEPROM byte reg for r4k */
|
||||
u32 eeprom; /* EEPROM byte reg for r4k */
|
||||
#define SGIMC_EEPROM_PRE 0x00000001 /* eeprom chip PRE pin assertion */
|
||||
#define SGIMC_EEPROM_CSEL 0x00000002 /* Active high, eeprom chip select */
|
||||
#define SGIMC_EEPROM_SECLOCK 0x00000004 /* EEPROM serial clock */
|
||||
|
||||
@@ -157,6 +157,7 @@
|
||||
* Mask values for each interrupt
|
||||
*/
|
||||
|
||||
#define _BCM1480_INT_MASK(w,n) _SB_MAKEMASK(w,((n) & 0x3F))
|
||||
#define _BCM1480_INT_MASK1(n) _SB_MAKEMASK1(((n) & 0x3F))
|
||||
#define _BCM1480_INT_OFFSET(n) (((n) & 0x40) << 6)
|
||||
|
||||
@@ -195,6 +196,7 @@
|
||||
#define M_BCM1480_INT_PMI_HIGH _BCM1480_INT_MASK1(K_BCM1480_INT_PMI_HIGH)
|
||||
#define M_BCM1480_INT_PMO_LOW _BCM1480_INT_MASK1(K_BCM1480_INT_PMO_LOW)
|
||||
#define M_BCM1480_INT_PMO_HIGH _BCM1480_INT_MASK1(K_BCM1480_INT_PMO_HIGH)
|
||||
#define M_BCM1480_INT_MBOX_ALL _BCM1480_INT_MASK(8,K_BCM1480_INT_MBOX_0_0)
|
||||
#define M_BCM1480_INT_MBOX_0_0 _BCM1480_INT_MASK1(K_BCM1480_INT_MBOX_0_0)
|
||||
#define M_BCM1480_INT_MBOX_0_1 _BCM1480_INT_MASK1(K_BCM1480_INT_MBOX_0_1)
|
||||
#define M_BCM1480_INT_MBOX_0_2 _BCM1480_INT_MASK1(K_BCM1480_INT_MBOX_0_2)
|
||||
|
||||
@@ -382,6 +382,10 @@
|
||||
#define M_BCM1480_MC_CS6 _SB_MAKEMASK1(10)
|
||||
#define M_BCM1480_MC_CS7 _SB_MAKEMASK1(11)
|
||||
|
||||
#define M_BCM1480_MC_CS _SB_MAKEMASK(8,S_BCM1480_MC_CS0)
|
||||
#define V_BCM1480_MC_CS(x) _SB_MAKEVALUE(x,S_BCM1480_MC_CS0)
|
||||
#define G_BCM1480_MC_CS(x) _SB_GETVALUE(x,S_BCM1480_MC_CS0,M_BCM1480_MC_CS0)
|
||||
|
||||
#define M_BCM1480_MC_CMD_ACTIVE _SB_MAKEMASK1(16)
|
||||
|
||||
/*
|
||||
@@ -412,6 +416,8 @@
|
||||
#define K_BCM1480_MC_DRAM_TYPE_DDR2 2
|
||||
#endif
|
||||
|
||||
#define K_BCM1480_MC_DRAM_TYPE_DDR2_PASS1 0
|
||||
|
||||
#define V_BCM1480_MC_DRAM_TYPE_JEDEC V_BCM1480_MC_DRAM_TYPE(K_BCM1480_MC_DRAM_TYPE_JEDEC)
|
||||
#define V_BCM1480_MC_DRAM_TYPE_FCRAM V_BCM1480_MC_DRAM_TYPE(K_BCM1480_MC_DRAM_TYPE_FCRAM)
|
||||
|
||||
@@ -511,6 +517,22 @@
|
||||
#define M_BCM1480_MC_WR_ODT6_CS6 _SB_MAKEMASK1(31)
|
||||
|
||||
#define M_BCM1480_MC_CS_ODD_ODT_EN _SB_MAKEMASK1(32)
|
||||
|
||||
#define S_BCM1480_MC_ODT0 0
|
||||
#define M_BCM1480_MC_ODT0 _SB_MAKEMASK(8,S_BCM1480_MC_ODT0)
|
||||
#define V_BCM1480_MC_ODT0(x) _SB_MAKEVALUE(x,S_BCM1480_MC_ODT0)
|
||||
|
||||
#define S_BCM1480_MC_ODT2 8
|
||||
#define M_BCM1480_MC_ODT2 _SB_MAKEMASK(8,S_BCM1480_MC_ODT2)
|
||||
#define V_BCM1480_MC_ODT2(x) _SB_MAKEVALUE(x,S_BCM1480_MC_ODT2)
|
||||
|
||||
#define S_BCM1480_MC_ODT4 16
|
||||
#define M_BCM1480_MC_ODT4 _SB_MAKEMASK(8,S_BCM1480_MC_ODT4)
|
||||
#define V_BCM1480_MC_ODT4(x) _SB_MAKEVALUE(x,S_BCM1480_MC_ODT4)
|
||||
|
||||
#define S_BCM1480_MC_ODT6 24
|
||||
#define M_BCM1480_MC_ODT6 _SB_MAKEMASK(8,S_BCM1480_MC_ODT6)
|
||||
#define V_BCM1480_MC_ODT6(x) _SB_MAKEVALUE(x,S_BCM1480_MC_ODT6)
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -588,11 +610,11 @@
|
||||
#define M_BCM1480_MC_DQO_SHIFT _SB_MAKEMASK1(47)
|
||||
#endif
|
||||
|
||||
#define S_BCM1480_MC_DLL_DEFAULT 48
|
||||
#define M_BCM1480_MC_DLL_DEFAULT _SB_MAKEMASK(6,S_BCM1480_MC_DLL_DEFAULT)
|
||||
#define V_BCM1480_MC_DLL_DEFAULT(x) _SB_MAKEVALUE(x,S_BCM1480_MC_DLL_DEFAULT)
|
||||
#define G_BCM1480_MC_DLL_DEFAULT(x) _SB_GETVALUE(x,S_BCM1480_MC_DLL_DEFAULT,M_BCM1480_MC_DLL_DEFAULT)
|
||||
#define V_BCM1480_MC_DLL_DEFAULT_DEFAULT V_BCM1480_MC_DLL_DEFAULT(0x10)
|
||||
#define S_BCM1480_MC_DLL_DEFAULT 48
|
||||
#define M_BCM1480_MC_DLL_DEFAULT _SB_MAKEMASK(6,S_BCM1480_MC_DLL_DEFAULT)
|
||||
#define V_BCM1480_MC_DLL_DEFAULT(x) _SB_MAKEVALUE(x,S_BCM1480_MC_DLL_DEFAULT)
|
||||
#define G_BCM1480_MC_DLL_DEFAULT(x) _SB_GETVALUE(x,S_BCM1480_MC_DLL_DEFAULT,M_BCM1480_MC_DLL_DEFAULT)
|
||||
#define V_BCM1480_MC_DLL_DEFAULT_DEFAULT V_BCM1480_MC_DLL_DEFAULT(0x10)
|
||||
|
||||
#if SIBYTE_HDR_FEATURE(1480, PASS2)
|
||||
#define S_BCM1480_MC_DLL_REGCTRL 54
|
||||
|
||||
@@ -230,6 +230,7 @@
|
||||
|
||||
#define A_BCM1480_DUART_IMRREG(chan) (A_BCM1480_DUART(chan) + R_BCM1480_DUART_IMRREG(chan))
|
||||
#define A_BCM1480_DUART_ISRREG(chan) (A_BCM1480_DUART(chan) + R_BCM1480_DUART_ISRREG(chan))
|
||||
#define A_BCM1480_DUART_IN_PORT(chan) (A_BCM1480_DUART(chan) + R_DUART_INP_ORT)
|
||||
|
||||
/*
|
||||
* These constants are the absolute addresses.
|
||||
@@ -404,6 +405,21 @@
|
||||
#define R_BCM1480_IMR_ALIAS_MAILBOX_0 0x0000 /* 0x0x0 */
|
||||
#define R_BCM1480_IMR_ALIAS_MAILBOX_0_SET 0x0008 /* 0x0x8 */
|
||||
|
||||
/*
|
||||
* these macros work together to build the address of a mailbox
|
||||
* register, e.g., A_BCM1480_MAILBOX_REGISTER(0,R_BCM1480_IMR_MAILBOX_SET,2)
|
||||
* for mbox_0_set_cpu2 returns 0x00100240C8
|
||||
*/
|
||||
#define R_BCM1480_IMR_MAILBOX_CPU 0x00
|
||||
#define R_BCM1480_IMR_MAILBOX_SET 0x08
|
||||
#define R_BCM1480_IMR_MAILBOX_CLR 0x10
|
||||
#define R_BCM1480_IMR_MAILBOX_NUM_SPACING 0x20
|
||||
#define A_BCM1480_MAILBOX_REGISTER(num,reg,cpu) \
|
||||
(A_BCM1480_IMR_CPU0_BASE + \
|
||||
(num * R_BCM1480_IMR_MAILBOX_NUM_SPACING) + \
|
||||
(cpu * BCM1480_IMR_REGISTER_SPACING) + \
|
||||
(R_BCM1480_IMR_MAILBOX_0_CPU + reg))
|
||||
|
||||
/* *********************************************************************
|
||||
* System Performance Counter Registers (Section 4.7)
|
||||
********************************************************************* */
|
||||
@@ -428,6 +444,10 @@
|
||||
#define A_BCM1480_SCD_PERF_CNT_6 0x0010020500
|
||||
#define A_BCM1480_SCD_PERF_CNT_7 0x0010020508
|
||||
|
||||
#define BCM1480_SCD_NUM_PERF_CNT 8
|
||||
#define BCM1480_SCD_PERF_CNT_SPACING 8
|
||||
#define A_BCM1480_SCD_PERF_CNT(n) (A_SCD_PERF_CNT_0+(n*BCM1480_SCD_PERF_CNT_SPACING))
|
||||
|
||||
/* *********************************************************************
|
||||
* System Bus Watcher Registers (Section 4.8)
|
||||
********************************************************************* */
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
*
|
||||
*********************************************************************
|
||||
*
|
||||
* Copyright 2000,2001,2002,2003
|
||||
* Copyright 2000,2001,2002,2003,2004,2005
|
||||
* Broadcom Corporation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
@@ -78,6 +78,7 @@
|
||||
#define K_SYS_PART_BCM1280 0x1206
|
||||
#define K_SYS_PART_BCM1455 0x1407
|
||||
#define K_SYS_PART_BCM1255 0x1257
|
||||
#define K_SYS_PART_BCM1158 0x1156
|
||||
|
||||
/*
|
||||
* Manufacturing Information Register (Table 14)
|
||||
@@ -237,58 +238,42 @@
|
||||
* System Performance Counter Configuration Register (Table 31)
|
||||
* Register: PERF_CNT_CFG_0
|
||||
*
|
||||
* Since the clear/enable bits are moved compared to the
|
||||
* 1250 and there are more fields, this register will be BCM1480 specific.
|
||||
* SPC_CFG_SRC[0-3] is the same as the 1250.
|
||||
* SPC_CFG_SRC[4-7] only exist on the 1480
|
||||
* The clear/enable bits are in different locations on the 1250 and 1480.
|
||||
*/
|
||||
|
||||
#define S_BCM1480_SPC_CFG_SRC0 0
|
||||
#define M_BCM1480_SPC_CFG_SRC0 _SB_MAKEMASK(8,S_BCM1480_SPC_CFG_SRC0)
|
||||
#define V_BCM1480_SPC_CFG_SRC0(x) _SB_MAKEVALUE(x,S_BCM1480_SPC_CFG_SRC0)
|
||||
#define G_BCM1480_SPC_CFG_SRC0(x) _SB_GETVALUE(x,S_BCM1480_SPC_CFG_SRC0,M_BCM1480_SPC_CFG_SRC0)
|
||||
#define S_SPC_CFG_SRC4 32
|
||||
#define M_SPC_CFG_SRC4 _SB_MAKEMASK(8,S_SPC_CFG_SRC4)
|
||||
#define V_SPC_CFG_SRC4(x) _SB_MAKEVALUE(x,S_SPC_CFG_SRC4)
|
||||
#define G_SPC_CFG_SRC4(x) _SB_GETVALUE(x,S_SPC_CFG_SRC4,M_SPC_CFG_SRC4)
|
||||
|
||||
#define S_BCM1480_SPC_CFG_SRC1 8
|
||||
#define M_BCM1480_SPC_CFG_SRC1 _SB_MAKEMASK(8,S_BCM1480_SPC_CFG_SRC1)
|
||||
#define V_BCM1480_SPC_CFG_SRC1(x) _SB_MAKEVALUE(x,S_BCM1480_SPC_CFG_SRC1)
|
||||
#define G_BCM1480_SPC_CFG_SRC1(x) _SB_GETVALUE(x,S_BCM1480_SPC_CFG_SRC1,M_BCM1480_SPC_CFG_SRC1)
|
||||
#define S_SPC_CFG_SRC5 40
|
||||
#define M_SPC_CFG_SRC5 _SB_MAKEMASK(8,S_SPC_CFG_SRC5)
|
||||
#define V_SPC_CFG_SRC5(x) _SB_MAKEVALUE(x,S_SPC_CFG_SRC5)
|
||||
#define G_SPC_CFG_SRC5(x) _SB_GETVALUE(x,S_SPC_CFG_SRC5,M_SPC_CFG_SRC5)
|
||||
|
||||
#define S_BCM1480_SPC_CFG_SRC2 16
|
||||
#define M_BCM1480_SPC_CFG_SRC2 _SB_MAKEMASK(8,S_BCM1480_SPC_CFG_SRC2)
|
||||
#define V_BCM1480_SPC_CFG_SRC2(x) _SB_MAKEVALUE(x,S_BCM1480_SPC_CFG_SRC2)
|
||||
#define G_BCM1480_SPC_CFG_SRC2(x) _SB_GETVALUE(x,S_BCM1480_SPC_CFG_SRC2,M_BCM1480_SPC_CFG_SRC2)
|
||||
#define S_SPC_CFG_SRC6 48
|
||||
#define M_SPC_CFG_SRC6 _SB_MAKEMASK(8,S_SPC_CFG_SRC6)
|
||||
#define V_SPC_CFG_SRC6(x) _SB_MAKEVALUE(x,S_SPC_CFG_SRC6)
|
||||
#define G_SPC_CFG_SRC6(x) _SB_GETVALUE(x,S_SPC_CFG_SRC6,M_SPC_CFG_SRC6)
|
||||
|
||||
#define S_BCM1480_SPC_CFG_SRC3 24
|
||||
#define M_BCM1480_SPC_CFG_SRC3 _SB_MAKEMASK(8,S_BCM1480_SPC_CFG_SRC3)
|
||||
#define V_BCM1480_SPC_CFG_SRC3(x) _SB_MAKEVALUE(x,S_BCM1480_SPC_CFG_SRC3)
|
||||
#define G_BCM1480_SPC_CFG_SRC3(x) _SB_GETVALUE(x,S_BCM1480_SPC_CFG_SRC3,M_BCM1480_SPC_CFG_SRC3)
|
||||
|
||||
#define S_BCM1480_SPC_CFG_SRC4 32
|
||||
#define M_BCM1480_SPC_CFG_SRC4 _SB_MAKEMASK(8,S_BCM1480_SPC_CFG_SRC4)
|
||||
#define V_BCM1480_SPC_CFG_SRC4(x) _SB_MAKEVALUE(x,S_BCM1480_SPC_CFG_SRC4)
|
||||
#define G_BCM1480_SPC_CFG_SRC4(x) _SB_GETVALUE(x,S_BCM1480_SPC_CFG_SRC4,M_BCM1480_SPC_CFG_SRC4)
|
||||
|
||||
#define S_BCM1480_SPC_CFG_SRC5 40
|
||||
#define M_BCM1480_SPC_CFG_SRC5 _SB_MAKEMASK(8,S_BCM1480_SPC_CFG_SRC5)
|
||||
#define V_BCM1480_SPC_CFG_SRC5(x) _SB_MAKEVALUE(x,S_BCM1480_SPC_CFG_SRC5)
|
||||
#define G_BCM1480_SPC_CFG_SRC5(x) _SB_GETVALUE(x,S_BCM1480_SPC_CFG_SRC5,M_BCM1480_SPC_CFG_SRC5)
|
||||
|
||||
#define S_BCM1480_SPC_CFG_SRC6 48
|
||||
#define M_BCM1480_SPC_CFG_SRC6 _SB_MAKEMASK(8,S_BCM1480_SPC_CFG_SRC6)
|
||||
#define V_BCM1480_SPC_CFG_SRC6(x) _SB_MAKEVALUE(x,S_BCM1480_SPC_CFG_SRC6)
|
||||
#define G_BCM1480_SPC_CFG_SRC6(x) _SB_GETVALUE(x,S_BCM1480_SPC_CFG_SRC6,M_BCM1480_SPC_CFG_SRC6)
|
||||
|
||||
#define S_BCM1480_SPC_CFG_SRC7 56
|
||||
#define M_BCM1480_SPC_CFG_SRC7 _SB_MAKEMASK(8,S_BCM1480_SPC_CFG_SRC7)
|
||||
#define V_BCM1480_SPC_CFG_SRC7(x) _SB_MAKEVALUE(x,S_BCM1480_SPC_CFG_SRC7)
|
||||
#define G_BCM1480_SPC_CFG_SRC7(x) _SB_GETVALUE(x,S_BCM1480_SPC_CFG_SRC7,M_BCM1480_SPC_CFG_SRC7)
|
||||
#define S_SPC_CFG_SRC7 56
|
||||
#define M_SPC_CFG_SRC7 _SB_MAKEMASK(8,S_SPC_CFG_SRC7)
|
||||
#define V_SPC_CFG_SRC7(x) _SB_MAKEVALUE(x,S_SPC_CFG_SRC7)
|
||||
#define G_SPC_CFG_SRC7(x) _SB_GETVALUE(x,S_SPC_CFG_SRC7,M_SPC_CFG_SRC7)
|
||||
|
||||
/*
|
||||
* System Performance Counter Control Register (Table 32)
|
||||
* Register: PERF_CNT_CFG_1
|
||||
* BCM1480 specific
|
||||
*/
|
||||
|
||||
#define M_BCM1480_SPC_CFG_CLEAR _SB_MAKEMASK1(0)
|
||||
#define M_BCM1480_SPC_CFG_ENABLE _SB_MAKEMASK1(1)
|
||||
#define M_BCM1480_SPC_CFG_CLEAR _SB_MAKEMASK1(0)
|
||||
#define M_BCM1480_SPC_CFG_ENABLE _SB_MAKEMASK1(1)
|
||||
#if SIBYTE_HDR_FEATURE_CHIP(1480)
|
||||
#define M_SPC_CFG_CLEAR M_BCM1480_SPC_CFG_CLEAR
|
||||
#define M_SPC_CFG_ENABLE M_BCM1480_SPC_CFG_ENABLE
|
||||
#endif
|
||||
|
||||
/*
|
||||
* System Performance Counters (Table 33)
|
||||
@@ -405,20 +390,10 @@
|
||||
* Trace Control Register (Table 49)
|
||||
* Register: TRACE_CFG
|
||||
*
|
||||
* Bits 0..8 are the same as the BCM1250, rest are different.
|
||||
* Entire register is redefined below.
|
||||
* BCM1480 changes to this register (other than location of the CUR_ADDR field)
|
||||
* are defined below.
|
||||
*/
|
||||
|
||||
#define M_BCM1480_SCD_TRACE_CFG_RESET _SB_MAKEMASK1(0)
|
||||
#define M_BCM1480_SCD_TRACE_CFG_START_READ _SB_MAKEMASK1(1)
|
||||
#define M_BCM1480_SCD_TRACE_CFG_START _SB_MAKEMASK1(2)
|
||||
#define M_BCM1480_SCD_TRACE_CFG_STOP _SB_MAKEMASK1(3)
|
||||
#define M_BCM1480_SCD_TRACE_CFG_FREEZE _SB_MAKEMASK1(4)
|
||||
#define M_BCM1480_SCD_TRACE_CFG_FREEZE_FULL _SB_MAKEMASK1(5)
|
||||
#define M_BCM1480_SCD_TRACE_CFG_DEBUG_FULL _SB_MAKEMASK1(6)
|
||||
#define M_BCM1480_SCD_TRACE_CFG_FULL _SB_MAKEMASK1(7)
|
||||
#define M_BCM1480_SCD_TRACE_CFG_FORCE_CNT _SB_MAKEMASK1(8)
|
||||
|
||||
#define S_BCM1480_SCD_TRACE_CFG_MODE 16
|
||||
#define M_BCM1480_SCD_TRACE_CFG_MODE _SB_MAKEMASK(2,S_BCM1480_SCD_TRACE_CFG_MODE)
|
||||
#define V_BCM1480_SCD_TRACE_CFG_MODE(x) _SB_MAKEVALUE(x,S_BCM1480_SCD_TRACE_CFG_MODE)
|
||||
@@ -428,9 +403,4 @@
|
||||
#define K_BCM1480_SCD_TRACE_CFG_MODE_BYTEEN_INT 1
|
||||
#define K_BCM1480_SCD_TRACE_CFG_MODE_FLOW_ID 2
|
||||
|
||||
#define S_BCM1480_SCD_TRACE_CFG_CUR_ADDR 24
|
||||
#define M_BCM1480_SCD_TRACE_CFG_CUR_ADDR _SB_MAKEMASK(8,S_BCM1480_SCD_TRACE_CFG_CUR_ADDR)
|
||||
#define V_BCM1480_SCD_TRACE_CFG_CUR_ADDR(x) _SB_MAKEVALUE(x,S_BCM1480_SCD_TRACE_CFG_CUR_ADDR)
|
||||
#define G_BCM1480_SCD_TRACE_CFG_CUR_ADDR(x) _SB_GETVALUE(x,S_BCM1480_SCD_TRACE_CFG_CUR_ADDR,M_BCM1480_SCD_TRACE_CFG_CUR_ADDR)
|
||||
|
||||
#endif /* _BCM1480_SCD_H */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2000, 2001, 2002, 2003 Broadcom Corporation
|
||||
* Copyright (C) 2000,2001,2002,2003,2004 Broadcom Corporation
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
@@ -19,8 +19,8 @@
|
||||
#ifndef _SIBYTE_BOARD_H
|
||||
#define _SIBYTE_BOARD_H
|
||||
|
||||
|
||||
#if defined(CONFIG_SIBYTE_SWARM) || defined(CONFIG_SIBYTE_PTSWARM) || \
|
||||
defined(CONFIG_SIBYTE_PT1120) || defined(CONFIG_SIBYTE_PT1125) || \
|
||||
defined(CONFIG_SIBYTE_CRHONE) || defined(CONFIG_SIBYTE_CRHINE) || \
|
||||
defined(CONFIG_SIBYTE_LITTLESUR)
|
||||
#include <asm/sibyte/swarm.h>
|
||||
@@ -55,6 +55,16 @@
|
||||
#define setleds(t0,t1,c0,c1,c2,c3)
|
||||
#endif /* LEDS_PHYS */
|
||||
|
||||
#else
|
||||
|
||||
void swarm_setup(void);
|
||||
|
||||
#ifdef LEDS_PHYS
|
||||
extern void setleds(char *str);
|
||||
#else
|
||||
#define setleds(s) do { } while (0)
|
||||
#endif /* LEDS_PHYS */
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif /* _SIBYTE_BOARD_H */
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
#ifndef __ASM_SIBYTE_CARMEL_H
|
||||
#define __ASM_SIBYTE_CARMEL_H
|
||||
|
||||
|
||||
#include <asm/sibyte/sb1250.h>
|
||||
#include <asm/sibyte/sb1250_int.h>
|
||||
|
||||
|
||||
@@ -45,8 +45,6 @@
|
||||
* First, the interrupt numbers.
|
||||
*/
|
||||
|
||||
#if SIBYTE_HDR_FEATURE_1250_112x
|
||||
|
||||
#define K_INT_SOURCES 64
|
||||
|
||||
#define K_INT_WATCHDOG_TIMER_0 0
|
||||
@@ -152,6 +150,7 @@
|
||||
#define M_INT_MBOX_1 _SB_MAKEMASK1(K_INT_MBOX_1)
|
||||
#define M_INT_MBOX_2 _SB_MAKEMASK1(K_INT_MBOX_2)
|
||||
#define M_INT_MBOX_3 _SB_MAKEMASK1(K_INT_MBOX_3)
|
||||
#define M_INT_MBOX_ALL _SB_MAKEMASK(4,K_INT_MBOX_0)
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
|
||||
#define M_INT_CYCLE_CP0_INT _SB_MAKEMASK1(K_INT_CYCLE_CP0_INT)
|
||||
#define M_INT_CYCLE_CP1_INT _SB_MAKEMASK1(K_INT_CYCLE_CP1_INT)
|
||||
@@ -247,5 +246,3 @@
|
||||
|
||||
|
||||
#endif /* 1250/112x */
|
||||
|
||||
#endif
|
||||
|
||||
@@ -129,9 +129,9 @@
|
||||
#define M_MAC_BYPASS_16 _SB_MAKEMASK1(42)
|
||||
#define M_MAC_BYPASS_FCS_CHK _SB_MAKEMASK1(43)
|
||||
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
|
||||
#define M_MAC_RX_CH_SEL_MSB _SB_MAKEMASK1(44)
|
||||
#endif /* 1250 PASS2 || 112x PASS1 */
|
||||
#endif /* 1250 PASS2 || 112x PASS1 || 1480*/
|
||||
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
|
||||
#define M_MAC_SPLIT_CH_SEL _SB_MAKEMASK1(45)
|
||||
@@ -223,9 +223,9 @@
|
||||
/* XXX: Can't enable, as it has the same name as a pass2+ define below. */
|
||||
/* #define M_MAC_TX_WR_THRSH _SB_MAKEMASK(6,S_MAC_TX_WR_THRSH) */
|
||||
#endif /* up to 1250 PASS1 */
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
|
||||
#define M_MAC_TX_WR_THRSH _SB_MAKEMASK(7,S_MAC_TX_WR_THRSH)
|
||||
#endif /* 1250 PASS2 || 112x PASS1 */
|
||||
#endif /* 1250 PASS2 || 112x PASS1 || 1480 */
|
||||
#define V_MAC_TX_WR_THRSH(x) _SB_MAKEVALUE(x,S_MAC_TX_WR_THRSH)
|
||||
#define G_MAC_TX_WR_THRSH(x) _SB_GETVALUE(x,S_MAC_TX_WR_THRSH,M_MAC_TX_WR_THRSH)
|
||||
|
||||
@@ -234,9 +234,9 @@
|
||||
/* XXX: Can't enable, as it has the same name as a pass2+ define below. */
|
||||
/* #define M_MAC_TX_RD_THRSH _SB_MAKEMASK(6,S_MAC_TX_RD_THRSH) */
|
||||
#endif /* up to 1250 PASS1 */
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
|
||||
#define M_MAC_TX_RD_THRSH _SB_MAKEMASK(7,S_MAC_TX_RD_THRSH)
|
||||
#endif /* 1250 PASS2 || 112x PASS1 */
|
||||
#endif /* 1250 PASS2 || 112x PASS1 || 1480 */
|
||||
#define V_MAC_TX_RD_THRSH(x) _SB_MAKEVALUE(x,S_MAC_TX_RD_THRSH)
|
||||
#define G_MAC_TX_RD_THRSH(x) _SB_GETVALUE(x,S_MAC_TX_RD_THRSH,M_MAC_TX_RD_THRSH)
|
||||
|
||||
@@ -260,12 +260,12 @@
|
||||
#define V_MAC_RX_RL_THRSH(x) _SB_MAKEVALUE(x,S_MAC_RX_RL_THRSH)
|
||||
#define G_MAC_RX_RL_THRSH(x) _SB_GETVALUE(x,S_MAC_RX_RL_THRSH,M_MAC_RX_RL_THRSH)
|
||||
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
|
||||
#define S_MAC_ENC_FC_THRSH _SB_MAKE64(56)
|
||||
#define M_MAC_ENC_FC_THRSH _SB_MAKEMASK(6,S_MAC_ENC_FC_THRSH)
|
||||
#define V_MAC_ENC_FC_THRSH(x) _SB_MAKEVALUE(x,S_MAC_ENC_FC_THRSH)
|
||||
#define G_MAC_ENC_FC_THRSH(x) _SB_GETVALUE(x,S_MAC_ENC_FC_THRSH,M_MAC_ENC_FC_THRSH)
|
||||
#endif /* 1250 PASS2 || 112x PASS1 */
|
||||
#endif /* 1250 PASS2 || 112x PASS1 || 1480 */
|
||||
|
||||
/*
|
||||
* MAC Frame Configuration Registers (Table 9-15)
|
||||
@@ -462,9 +462,9 @@
|
||||
#define M_MAC_LTCOL_ERR _SB_MAKEMASK1(44)
|
||||
#define M_MAC_EXCOL_ERR _SB_MAKEMASK1(45)
|
||||
#define M_MAC_CNTR_OVRFL_ERR _SB_MAKEMASK1(46)
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
|
||||
#define M_MAC_SPLIT_EN _SB_MAKEMASK1(47) /* interrupt mask only */
|
||||
#endif /* 1250 PASS2 || 112x PASS1 */
|
||||
#endif /* 1250 PASS2 || 112x PASS1 || 1480 */
|
||||
|
||||
#define S_MAC_COUNTER_ADDR _SB_MAKE64(47)
|
||||
#define M_MAC_COUNTER_ADDR _SB_MAKEMASK(5,S_MAC_COUNTER_ADDR)
|
||||
@@ -598,9 +598,9 @@
|
||||
#define M_MAC_MCAST_INV _SB_MAKEMASK1(4)
|
||||
#define M_MAC_BCAST_EN _SB_MAKEMASK1(5)
|
||||
#define M_MAC_DIRECT_INV _SB_MAKEMASK1(6)
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
|
||||
#define M_MAC_ALLMCAST_EN _SB_MAKEMASK1(7)
|
||||
#endif /* 1250 PASS2 || 112x PASS1 */
|
||||
#endif /* 1250 PASS2 || 112x PASS1 || 1480 */
|
||||
|
||||
#define S_MAC_IPHDR_OFFSET _SB_MAKE64(8)
|
||||
#define M_MAC_IPHDR_OFFSET _SB_MAKEMASK(8,S_MAC_IPHDR_OFFSET)
|
||||
|
||||
@@ -295,7 +295,7 @@
|
||||
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1)
|
||||
#define M_MC_PRE_ON_A8 _SB_MAKEMASK1(36)
|
||||
#define M_MC_RAM_WITH_A13 _SB_MAKEMASK1(38)
|
||||
#define M_MC_RAM_WITH_A13 _SB_MAKEMASK1(37)
|
||||
#endif /* 1250 PASS3 || 112x PASS1 */
|
||||
|
||||
|
||||
|
||||
@@ -131,6 +131,7 @@
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/* *********************************************************************
|
||||
* PCI Interface Registers
|
||||
********************************************************************* */
|
||||
@@ -239,14 +240,14 @@
|
||||
#define R_MAC_VLANTAG 0x00000110
|
||||
#define R_MAC_FRAMECFG 0x00000118
|
||||
#define R_MAC_EOPCNT 0x00000120
|
||||
#define R_MAC_FIFO_PTRS 0x00000130
|
||||
#define R_MAC_FIFO_PTRS 0x00000128
|
||||
#define R_MAC_ADFILTER_CFG 0x00000200
|
||||
#define R_MAC_ETHERNET_ADDR 0x00000208
|
||||
#define R_MAC_PKT_TYPE 0x00000210
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1)
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
|
||||
#define R_MAC_ADMASK0 0x00000218
|
||||
#define R_MAC_ADMASK1 0x00000220
|
||||
#endif /* 1250 PASS3 || 112x PASS1 */
|
||||
#endif /* 1250 PASS3 || 112x PASS1 || 1480 */
|
||||
#define R_MAC_HASH_BASE 0x00000240
|
||||
#define R_MAC_ADDR_BASE 0x00000280
|
||||
#define R_MAC_CHLO0_BASE 0x00000300
|
||||
@@ -256,9 +257,9 @@
|
||||
#define R_MAC_INT_MASK 0x00000410
|
||||
#define R_MAC_TXD_CTL 0x00000420
|
||||
#define R_MAC_MDIO 0x00000428
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
|
||||
#define R_MAC_STATUS1 0x00000430
|
||||
#endif /* 1250 PASS2 || 112x PASS1 */
|
||||
#endif /* 1250 PASS2 || 112x PASS1 || 1480 */
|
||||
#define R_MAC_DEBUG_STATUS 0x00000448
|
||||
|
||||
#define MAC_HASH_COUNT 8
|
||||
@@ -289,11 +290,11 @@
|
||||
#define R_DUART_RX_HOLD 0x160
|
||||
#define R_DUART_TX_HOLD 0x170
|
||||
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
|
||||
#define R_DUART_FULL_CTL 0x140
|
||||
#define R_DUART_OPCR_X 0x180
|
||||
#define R_DUART_AUXCTL_X 0x190
|
||||
#endif /* 1250 PASS2 || 112x PASS1 */
|
||||
#endif /* 1250 PASS2 || 112x PASS1 || 1480*/
|
||||
|
||||
|
||||
/*
|
||||
@@ -308,6 +309,7 @@
|
||||
#define R_DUART_IMR_B 0x350
|
||||
#define R_DUART_OUT_PORT 0x360
|
||||
#define R_DUART_OPCR 0x370
|
||||
#define R_DUART_IN_PORT 0x380
|
||||
|
||||
#define R_DUART_SET_OPR 0x3B0
|
||||
#define R_DUART_CLEAR_OPR 0x3C0
|
||||
@@ -685,12 +687,17 @@
|
||||
#define A_ADDR_TRAP_REG_DEBUG 0x0010020460
|
||||
#endif /* 1250 PASS2 || 112x PASS1 || 1480 */
|
||||
|
||||
#define ADDR_TRAP_SPACING 8
|
||||
#define NUM_ADDR_TRAP 4
|
||||
#define A_ADDR_TRAP_UP(n) (A_ADDR_TRAP_UP_0 + ((n) * ADDR_TRAP_SPACING))
|
||||
#define A_ADDR_TRAP_DOWN(n) (A_ADDR_TRAP_DOWN_0 + ((n) * ADDR_TRAP_SPACING))
|
||||
#define A_ADDR_TRAP_CFG(n) (A_ADDR_TRAP_CFG_0 + ((n) * ADDR_TRAP_SPACING))
|
||||
|
||||
|
||||
/* *********************************************************************
|
||||
* System Interrupt Mapper Registers
|
||||
********************************************************************* */
|
||||
|
||||
#if SIBYTE_HDR_FEATURE_1250_112x
|
||||
#define A_IMR_CPU0_BASE 0x0010020000
|
||||
#define A_IMR_CPU1_BASE 0x0010022000
|
||||
#define IMR_REGISTER_SPACING 0x2000
|
||||
@@ -700,6 +707,7 @@
|
||||
#define A_IMR_REGISTER(cpu,reg) (A_IMR_MAPPER(cpu)+(reg))
|
||||
|
||||
#define R_IMR_INTERRUPT_DIAG 0x0010
|
||||
#define R_IMR_INTERRUPT_LDT 0x0018
|
||||
#define R_IMR_INTERRUPT_MASK 0x0028
|
||||
#define R_IMR_INTERRUPT_TRACE 0x0038
|
||||
#define R_IMR_INTERRUPT_SOURCE_STATUS 0x0040
|
||||
@@ -715,7 +723,14 @@
|
||||
#define R_IMR_INTERRUPT_STATUS_COUNT 7
|
||||
#define R_IMR_INTERRUPT_MAP_BASE 0x0200
|
||||
#define R_IMR_INTERRUPT_MAP_COUNT 64
|
||||
#endif /* 1250/112x */
|
||||
|
||||
/*
|
||||
* these macros work together to build the address of a mailbox
|
||||
* register, e.g., A_MAILBOX_REGISTER(R_IMR_MAILBOX_SET_CPU,1)
|
||||
* for mbox_0_set_cpu2 returns 0x00100240C8
|
||||
*/
|
||||
#define A_MAILBOX_REGISTER(reg,cpu) \
|
||||
(A_IMR_CPU0_BASE + (cpu * IMR_REGISTER_SPACING) + reg)
|
||||
|
||||
/* *********************************************************************
|
||||
* System Performance Counter Registers
|
||||
@@ -727,6 +742,10 @@
|
||||
#define A_SCD_PERF_CNT_2 0x00100204E0
|
||||
#define A_SCD_PERF_CNT_3 0x00100204E8
|
||||
|
||||
#define SCD_NUM_PERF_CNT 4
|
||||
#define SCD_PERF_CNT_SPACING 8
|
||||
#define A_SCD_PERF_CNT(n) (A_SCD_PERF_CNT_0+(n*SCD_PERF_CNT_SPACING))
|
||||
|
||||
/* *********************************************************************
|
||||
* System Bus Watcher Registers
|
||||
********************************************************************* */
|
||||
@@ -772,6 +791,15 @@
|
||||
#define A_SCD_TRACE_SEQUENCE_6 0x0010020A90
|
||||
#define A_SCD_TRACE_SEQUENCE_7 0x0010020A98
|
||||
|
||||
#define TRACE_REGISTER_SPACING 8
|
||||
#define TRACE_NUM_REGISTERS 8
|
||||
#define A_SCD_TRACE_EVENT(n) (((n) & 4) ? \
|
||||
(A_SCD_TRACE_EVENT_4 + (((n) & 3) * TRACE_REGISTER_SPACING)) : \
|
||||
(A_SCD_TRACE_EVENT_0 + ((n) * TRACE_REGISTER_SPACING)))
|
||||
#define A_SCD_TRACE_SEQUENCE(n) (((n) & 4) ? \
|
||||
(A_SCD_TRACE_SEQUENCE_4 + (((n) & 3) * TRACE_REGISTER_SPACING)) : \
|
||||
(A_SCD_TRACE_SEQUENCE_0 + ((n) * TRACE_REGISTER_SPACING)))
|
||||
|
||||
/* *********************************************************************
|
||||
* System Generic DMA Registers
|
||||
********************************************************************* */
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
*
|
||||
*********************************************************************
|
||||
*
|
||||
* Copyright 2000,2001,2002,2003
|
||||
* Copyright 2000,2001,2002,2003,2004,2005
|
||||
* Broadcom Corporation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
@@ -84,6 +84,7 @@
|
||||
#define K_SYS_REVISION_BCM112x_A2 0x21
|
||||
#define K_SYS_REVISION_BCM112x_A3 0x22
|
||||
#define K_SYS_REVISION_BCM112x_A4 0x23
|
||||
#define K_SYS_REVISION_BCM112x_B0 0x30
|
||||
|
||||
#define K_SYS_REVISION_BCM1480_S0 0x01
|
||||
#define K_SYS_REVISION_BCM1480_A1 0x02
|
||||
@@ -149,7 +150,7 @@
|
||||
* (For the assembler version, sysrev and dest may be the same register.
|
||||
* Also, it clobbers AT.)
|
||||
*/
|
||||
#ifdef __ASSEMBLY__
|
||||
#ifdef __ASSEMBLER__
|
||||
#define SYS_SOC_TYPE(dest, sysrev) \
|
||||
.set push ; \
|
||||
.set reorder ; \
|
||||
@@ -213,6 +214,7 @@
|
||||
#define G_SYS_YPOS(x) _SB_GETVALUE(x,S_SYS_YPOS,M_SYS_YPOS)
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* System Config Register (Table 4-2)
|
||||
* Register: SCD_SYSTEM_CFG
|
||||
@@ -359,13 +361,13 @@
|
||||
*/
|
||||
|
||||
#define V_SCD_TIMER_FREQ 1000000
|
||||
#define V_SCD_TIMER_WIDTH 23
|
||||
|
||||
#define S_SCD_TIMER_INIT 0
|
||||
#define M_SCD_TIMER_INIT _SB_MAKEMASK(V_SCD_TIMER_WIDTH,S_SCD_TIMER_INIT)
|
||||
#define M_SCD_TIMER_INIT _SB_MAKEMASK(23,S_SCD_TIMER_INIT)
|
||||
#define V_SCD_TIMER_INIT(x) _SB_MAKEVALUE(x,S_SCD_TIMER_INIT)
|
||||
#define G_SCD_TIMER_INIT(x) _SB_GETVALUE(x,S_SCD_TIMER_INIT,M_SCD_TIMER_INIT)
|
||||
|
||||
#define V_SCD_TIMER_WIDTH 23
|
||||
#define S_SCD_TIMER_CNT 0
|
||||
#define M_SCD_TIMER_CNT _SB_MAKEMASK(V_SCD_TIMER_WIDTH,S_SCD_TIMER_CNT)
|
||||
#define V_SCD_TIMER_CNT(x) _SB_MAKEVALUE(x,S_SCD_TIMER_CNT)
|
||||
@@ -379,7 +381,6 @@
|
||||
* System Performance Counters
|
||||
*/
|
||||
|
||||
#if SIBYTE_HDR_FEATURE_1250_112x
|
||||
#define S_SPC_CFG_SRC0 0
|
||||
#define M_SPC_CFG_SRC0 _SB_MAKEMASK(8,S_SPC_CFG_SRC0)
|
||||
#define V_SPC_CFG_SRC0(x) _SB_MAKEVALUE(x,S_SPC_CFG_SRC0)
|
||||
@@ -400,6 +401,7 @@
|
||||
#define V_SPC_CFG_SRC3(x) _SB_MAKEVALUE(x,S_SPC_CFG_SRC3)
|
||||
#define G_SPC_CFG_SRC3(x) _SB_GETVALUE(x,S_SPC_CFG_SRC3,M_SPC_CFG_SRC3)
|
||||
|
||||
#if SIBYTE_HDR_FEATURE_1250_112x
|
||||
#define M_SPC_CFG_CLEAR _SB_MAKEMASK1(32)
|
||||
#define M_SPC_CFG_ENABLE _SB_MAKEMASK1(33)
|
||||
#endif
|
||||
@@ -515,8 +517,6 @@
|
||||
* Trace Buffer Config register
|
||||
*/
|
||||
|
||||
#if SIBYTE_HDR_FEATURE_1250_112x
|
||||
|
||||
#define M_SCD_TRACE_CFG_RESET _SB_MAKEMASK1(0)
|
||||
#define M_SCD_TRACE_CFG_START_READ _SB_MAKEMASK1(1)
|
||||
#define M_SCD_TRACE_CFG_START _SB_MAKEMASK1(2)
|
||||
@@ -525,17 +525,26 @@
|
||||
#define M_SCD_TRACE_CFG_FREEZE_FULL _SB_MAKEMASK1(5)
|
||||
#define M_SCD_TRACE_CFG_DEBUG_FULL _SB_MAKEMASK1(6)
|
||||
#define M_SCD_TRACE_CFG_FULL _SB_MAKEMASK1(7)
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
|
||||
#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
|
||||
#define M_SCD_TRACE_CFG_FORCECNT _SB_MAKEMASK1(8)
|
||||
#endif /* 1250 PASS2 || 112x PASS1 */
|
||||
#endif /* 1250 PASS2 || 112x PASS1 || 1480 */
|
||||
|
||||
/*
|
||||
* This field is the same on the 1250/112x and 1480, just located in
|
||||
* a slightly different place in the register.
|
||||
*/
|
||||
#if SIBYTE_HDR_FEATURE_1250_112x
|
||||
#define S_SCD_TRACE_CFG_CUR_ADDR 10
|
||||
#else
|
||||
#if SIBYTE_HDR_FEATURE_CHIP(1480)
|
||||
#define S_SCD_TRACE_CFG_CUR_ADDR 24
|
||||
#endif /* 1480 */
|
||||
#endif /* 1250/112x */
|
||||
|
||||
#define M_SCD_TRACE_CFG_CUR_ADDR _SB_MAKEMASK(8,S_SCD_TRACE_CFG_CUR_ADDR)
|
||||
#define V_SCD_TRACE_CFG_CUR_ADDR(x) _SB_MAKEVALUE(x,S_SCD_TRACE_CFG_CUR_ADDR)
|
||||
#define G_SCD_TRACE_CFG_CUR_ADDR(x) _SB_GETVALUE(x,S_SCD_TRACE_CFG_CUR_ADDR,M_SCD_TRACE_CFG_CUR_ADDR)
|
||||
|
||||
#endif /* 1250/112x */
|
||||
|
||||
/*
|
||||
* Trace Event registers
|
||||
*/
|
||||
|
||||
@@ -32,6 +32,18 @@
|
||||
#define SIBYTE_HAVE_IDE 1
|
||||
#define SIBYTE_DEFAULT_CONSOLE "ttyS0,115200"
|
||||
#endif
|
||||
#ifdef CONFIG_SIBYTE_PT1120
|
||||
#define SIBYTE_BOARD_NAME "PT1120"
|
||||
#define SIBYTE_HAVE_PCMCIA 1
|
||||
#define SIBYTE_HAVE_IDE 1
|
||||
#define SIBYTE_DEFAULT_CONSOLE "ttyS0,115200"
|
||||
#endif
|
||||
#ifdef CONFIG_SIBYTE_PT1125
|
||||
#define SIBYTE_BOARD_NAME "PT1125"
|
||||
#define SIBYTE_HAVE_PCMCIA 1
|
||||
#define SIBYTE_HAVE_IDE 1
|
||||
#define SIBYTE_DEFAULT_CONSOLE "ttyS0,115200"
|
||||
#endif
|
||||
#ifdef CONFIG_SIBYTE_LITTLESUR
|
||||
#define SIBYTE_BOARD_NAME "BCM91250C2 (LittleSur)"
|
||||
#define SIBYTE_HAVE_PCMCIA 0
|
||||
|
||||
@@ -70,6 +70,8 @@ To add: #define SO_REUSEPORT 0x0200 /* Allow local address and port reuse. */
|
||||
#define SO_SNDBUFFORCE 31
|
||||
#define SO_RCVBUFFORCE 33
|
||||
#define SO_PASSSEC 34
|
||||
#define SO_TIMESTAMPNS 35
|
||||
#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#define SIOCSPGRP _IOW('s', 8, pid_t)
|
||||
#define SIOCGPGRP _IOR('s', 9, pid_t)
|
||||
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp - linux-specific */
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
|
||||
#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
|
||||
|
||||
#endif /* _ASM_SOCKIOS_H */
|
||||
|
||||
@@ -119,7 +119,6 @@ register struct thread_info *__current_thread_info __asm__("$28");
|
||||
#define TIF_POLLING_NRFLAG 17 /* true if poll_idle() is polling TIF_NEED_RESCHED */
|
||||
#define TIF_MEMDIE 18
|
||||
#define TIF_FREEZE 19
|
||||
#define TIF_ALLOW_FP_IN_KERNEL 20
|
||||
#define TIF_SYSCALL_TRACE 31 /* syscall trace active */
|
||||
|
||||
#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
|
||||
|
||||
@@ -33,6 +33,8 @@
|
||||
#define SO_PEERCRED 0x4011
|
||||
#define SO_TIMESTAMP 0x4012
|
||||
#define SCM_TIMESTAMP SO_TIMESTAMP
|
||||
#define SO_TIMESTAMPNS 0x4013
|
||||
#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
|
||||
|
||||
/* Security levels - as per NRL IPv6 - don't actually do anything */
|
||||
#define SO_SECURITY_AUTHENTICATION 0x4016
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#define FIOGETOWN 0x8903
|
||||
#define SIOCGPGRP 0x8904
|
||||
#define SIOCATMARK 0x8905
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp */
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
|
||||
#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
|
||||
|
||||
#endif
|
||||
|
||||
@@ -56,5 +56,7 @@
|
||||
|
||||
#define SO_PEERSEC 31
|
||||
#define SO_PASSSEC 34
|
||||
#define SO_TIMESTAMPNS 35
|
||||
#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
|
||||
|
||||
#endif /* _ASM_POWERPC_SOCKET_H */
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#define FIOGETOWN 0x8903
|
||||
#define SIOCGPGRP 0x8904
|
||||
#define SIOCATMARK 0x8905
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp */
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
|
||||
#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
|
||||
|
||||
#endif /* _ASM_POWERPC_SOCKIOS_H */
|
||||
|
||||
@@ -14,8 +14,6 @@
|
||||
#define __HAVE_ARCH_MEMCMP
|
||||
#define __HAVE_ARCH_MEMCHR
|
||||
|
||||
extern int strcasecmp(const char *, const char *);
|
||||
extern int strncasecmp(const char *, const char *, __kernel_size_t);
|
||||
extern char * strcpy(char *,const char *);
|
||||
extern char * strncpy(char *,const char *, __kernel_size_t);
|
||||
extern __kernel_size_t strlen(const char *);
|
||||
|
||||
@@ -288,7 +288,7 @@ COMPAT_SYS(ppoll)
|
||||
SYSCALL_SPU(unshare)
|
||||
SYSCALL_SPU(splice)
|
||||
SYSCALL_SPU(tee)
|
||||
SYSCALL_SPU(vmsplice)
|
||||
COMPAT_SYS_SPU(vmsplice)
|
||||
COMPAT_SYS_SPU(openat)
|
||||
SYSCALL_SPU(mkdirat)
|
||||
SYSCALL_SPU(mknodat)
|
||||
|
||||
+56
-13
@@ -1,27 +1,70 @@
|
||||
#ifndef _S390_BUG_H
|
||||
#define _S390_BUG_H
|
||||
#ifndef _ASM_S390_BUG_H
|
||||
#define _ASM_S390_BUG_H
|
||||
|
||||
#include <linux/kernel.h>
|
||||
|
||||
#ifdef CONFIG_BUG
|
||||
|
||||
static inline __attribute__((noreturn)) void __do_illegal_op(void)
|
||||
{
|
||||
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)
|
||||
__builtin_trap();
|
||||
#ifdef CONFIG_64BIT
|
||||
#define S390_LONG ".quad"
|
||||
#else
|
||||
asm volatile(".long 0");
|
||||
#define S390_LONG ".long"
|
||||
#endif
|
||||
}
|
||||
|
||||
#define BUG() do { \
|
||||
printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \
|
||||
__do_illegal_op(); \
|
||||
#ifdef CONFIG_DEBUG_BUGVERBOSE
|
||||
|
||||
#define __EMIT_BUG(x) do { \
|
||||
asm volatile( \
|
||||
"0: j 0b+2\n" \
|
||||
"1:\n" \
|
||||
".section .rodata.str,\"aMS\",@progbits,1\n" \
|
||||
"2: .asciz \""__FILE__"\"\n" \
|
||||
".previous\n" \
|
||||
".section __bug_table,\"a\"\n" \
|
||||
"3:\t" S390_LONG "\t1b,2b\n" \
|
||||
" .short %0,%1\n" \
|
||||
" .org 3b+%2\n" \
|
||||
".previous\n" \
|
||||
: : "i" (__LINE__), \
|
||||
"i" (x), \
|
||||
"i" (sizeof(struct bug_entry))); \
|
||||
} while (0)
|
||||
|
||||
#else /* CONFIG_DEBUG_BUGVERBOSE */
|
||||
|
||||
#define __EMIT_BUG(x) do { \
|
||||
asm volatile( \
|
||||
"0: j 0b+2\n" \
|
||||
"1:\n" \
|
||||
".section __bug_table,\"a\"\n" \
|
||||
"2:\t" S390_LONG "\t1b\n" \
|
||||
" .short %0\n" \
|
||||
" .org 2b+%1\n" \
|
||||
".previous\n" \
|
||||
: : "i" (x), \
|
||||
"i" (sizeof(struct bug_entry))); \
|
||||
} while (0)
|
||||
|
||||
#endif /* CONFIG_DEBUG_BUGVERBOSE */
|
||||
|
||||
#define BUG() __EMIT_BUG(0)
|
||||
|
||||
#define WARN_ON(x) ({ \
|
||||
typeof(x) __ret_warn_on = (x); \
|
||||
if (__builtin_constant_p(__ret_warn_on)) { \
|
||||
if (__ret_warn_on) \
|
||||
__EMIT_BUG(BUGFLAG_WARNING); \
|
||||
} else { \
|
||||
if (unlikely(__ret_warn_on)) \
|
||||
__EMIT_BUG(BUGFLAG_WARNING); \
|
||||
} \
|
||||
unlikely(__ret_warn_on); \
|
||||
})
|
||||
|
||||
#define HAVE_ARCH_BUG
|
||||
#endif
|
||||
#define HAVE_ARCH_WARN_ON
|
||||
#endif /* CONFIG_BUG */
|
||||
|
||||
#include <asm-generic/bug.h>
|
||||
|
||||
#endif
|
||||
#endif /* _ASM_S390_BUG_H */
|
||||
|
||||
@@ -11,6 +11,7 @@ struct ccwgroup_device {
|
||||
CCWGROUP_ONLINE,
|
||||
} state;
|
||||
atomic_t onoff;
|
||||
struct mutex reg_mutex;
|
||||
unsigned int count; /* number of attached slave devices */
|
||||
struct device dev; /* master device */
|
||||
struct ccw_device *cdev[0]; /* variable number, allocate as needed */
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* drivers/s390/cio/chpid.h
|
||||
*
|
||||
* Copyright IBM Corp. 2007
|
||||
* Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
|
||||
*/
|
||||
|
||||
#ifndef _ASM_S390_CHPID_H
|
||||
#define _ASM_S390_CHPID_H _ASM_S390_CHPID_H
|
||||
|
||||
#include <linux/string.h>
|
||||
#include <asm/types.h>
|
||||
#include <asm/cio.h>
|
||||
|
||||
#define __MAX_CHPID 255
|
||||
|
||||
struct chp_id {
|
||||
u8 reserved1;
|
||||
u8 cssid;
|
||||
u8 reserved2;
|
||||
u8 id;
|
||||
} __attribute__((packed));
|
||||
|
||||
static inline void chp_id_init(struct chp_id *chpid)
|
||||
{
|
||||
memset(chpid, 0, sizeof(struct chp_id));
|
||||
}
|
||||
|
||||
static inline int chp_id_is_equal(struct chp_id *a, struct chp_id *b)
|
||||
{
|
||||
return (a->id == b->id) && (a->cssid == b->cssid);
|
||||
}
|
||||
|
||||
static inline void chp_id_next(struct chp_id *chpid)
|
||||
{
|
||||
if (chpid->id < __MAX_CHPID)
|
||||
chpid->id++;
|
||||
else {
|
||||
chpid->id = 0;
|
||||
chpid->cssid++;
|
||||
}
|
||||
}
|
||||
|
||||
static inline int chp_id_is_valid(struct chp_id *chpid)
|
||||
{
|
||||
return (chpid->cssid <= __MAX_CSSID);
|
||||
}
|
||||
|
||||
|
||||
#define chp_id_for_each(c) \
|
||||
for (chp_id_init(c); chp_id_is_valid(c); chp_id_next(c))
|
||||
|
||||
#endif /* _ASM_S390_CHPID_H */
|
||||
@@ -13,6 +13,7 @@
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#define LPM_ANYPATH 0xff
|
||||
#define __MAX_CSSID 0
|
||||
|
||||
/*
|
||||
* subchannel status word
|
||||
@@ -292,6 +293,13 @@ extern void css_schedule_reprobe(void);
|
||||
|
||||
extern void reipl_ccw_dev(struct ccw_dev_id *id);
|
||||
|
||||
struct cio_iplinfo {
|
||||
u16 devno;
|
||||
int is_qdio;
|
||||
};
|
||||
|
||||
extern int cio_get_iplinfo(struct cio_iplinfo *iplinfo);
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
+33
-2
@@ -8,6 +8,8 @@
|
||||
#define _ASM_S390_IPL_H
|
||||
|
||||
#include <asm/types.h>
|
||||
#include <asm/cio.h>
|
||||
#include <asm/setup.h>
|
||||
|
||||
#define IPL_PARMBLOCK_ORIGIN 0x2000
|
||||
|
||||
@@ -74,12 +76,12 @@ struct ipl_parameter_block {
|
||||
} __attribute__((packed));
|
||||
|
||||
/*
|
||||
* IPL validity flags and parameters as detected in head.S
|
||||
* IPL validity flags
|
||||
*/
|
||||
extern u32 ipl_flags;
|
||||
extern u16 ipl_devno;
|
||||
|
||||
extern u32 dump_prefix_page;
|
||||
|
||||
extern void do_reipl(void);
|
||||
extern void ipl_save_parameters(void);
|
||||
|
||||
@@ -89,6 +91,35 @@ enum {
|
||||
IPL_NSS_VALID = 4,
|
||||
};
|
||||
|
||||
enum ipl_type {
|
||||
IPL_TYPE_UNKNOWN = 1,
|
||||
IPL_TYPE_CCW = 2,
|
||||
IPL_TYPE_FCP = 4,
|
||||
IPL_TYPE_FCP_DUMP = 8,
|
||||
IPL_TYPE_NSS = 16,
|
||||
};
|
||||
|
||||
struct ipl_info
|
||||
{
|
||||
enum ipl_type type;
|
||||
union {
|
||||
struct {
|
||||
struct ccw_dev_id dev_id;
|
||||
} ccw;
|
||||
struct {
|
||||
struct ccw_dev_id dev_id;
|
||||
u64 wwpn;
|
||||
u64 lun;
|
||||
} fcp;
|
||||
struct {
|
||||
char name[NSS_NAME_SIZE + 1];
|
||||
} nss;
|
||||
} data;
|
||||
};
|
||||
|
||||
extern struct ipl_info ipl_info;
|
||||
extern void setup_ipl_info(void);
|
||||
|
||||
/*
|
||||
* DIAG 308 support
|
||||
*/
|
||||
|
||||
@@ -147,6 +147,52 @@ void pgm_check_handler(void);
|
||||
void mcck_int_handler(void);
|
||||
void io_int_handler(void);
|
||||
|
||||
struct save_area_s390 {
|
||||
u32 ext_save;
|
||||
u64 timer;
|
||||
u64 clk_cmp;
|
||||
u8 pad1[24];
|
||||
u8 psw[8];
|
||||
u32 pref_reg;
|
||||
u8 pad2[20];
|
||||
u32 acc_regs[16];
|
||||
u64 fp_regs[4];
|
||||
u32 gp_regs[16];
|
||||
u32 ctrl_regs[16];
|
||||
} __attribute__((packed));
|
||||
|
||||
struct save_area_s390x {
|
||||
u64 fp_regs[16];
|
||||
u64 gp_regs[16];
|
||||
u8 psw[16];
|
||||
u8 pad1[8];
|
||||
u32 pref_reg;
|
||||
u32 fp_ctrl_reg;
|
||||
u8 pad2[4];
|
||||
u32 tod_reg;
|
||||
u64 timer;
|
||||
u64 clk_cmp;
|
||||
u8 pad3[8];
|
||||
u32 acc_regs[16];
|
||||
u64 ctrl_regs[16];
|
||||
} __attribute__((packed));
|
||||
|
||||
union save_area {
|
||||
struct save_area_s390 s390;
|
||||
struct save_area_s390x s390x;
|
||||
};
|
||||
|
||||
#define SAVE_AREA_BASE_S390 0xd4
|
||||
#define SAVE_AREA_BASE_S390X 0x1200
|
||||
|
||||
#ifndef __s390x__
|
||||
#define SAVE_AREA_SIZE sizeof(struct save_area_s390)
|
||||
#define SAVE_AREA_BASE SAVE_AREA_BASE_S390
|
||||
#else
|
||||
#define SAVE_AREA_SIZE sizeof(struct save_area_s390x)
|
||||
#define SAVE_AREA_BASE SAVE_AREA_BASE_S390X
|
||||
#endif
|
||||
|
||||
struct _lowcore
|
||||
{
|
||||
#ifndef __s390x__
|
||||
|
||||
@@ -753,14 +753,14 @@ ptep_establish(struct vm_area_struct *vma,
|
||||
* should therefore only be called if it is not mapped in any
|
||||
* address space.
|
||||
*/
|
||||
static inline int page_test_and_clear_dirty(struct page *page)
|
||||
static inline int page_test_dirty(struct page *page)
|
||||
{
|
||||
unsigned long physpage = page_to_phys(page);
|
||||
int skey = page_get_storage_key(physpage);
|
||||
return (page_get_storage_key(page_to_phys(page)) & _PAGE_CHANGED) != 0;
|
||||
}
|
||||
|
||||
if (skey & _PAGE_CHANGED)
|
||||
page_set_storage_key(physpage, skey & ~_PAGE_CHANGED);
|
||||
return skey & _PAGE_CHANGED;
|
||||
static inline void page_clear_dirty(struct page *page)
|
||||
{
|
||||
page_set_storage_key(page_to_phys(page), PAGE_DEFAULT_KEY);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -953,7 +953,8 @@ extern void memmap_init(unsigned long, int, unsigned long, unsigned long);
|
||||
#define __HAVE_ARCH_PTEP_CLEAR_FLUSH
|
||||
#define __HAVE_ARCH_PTEP_SET_WRPROTECT
|
||||
#define __HAVE_ARCH_PTE_SAME
|
||||
#define __HAVE_ARCH_PAGE_TEST_AND_CLEAR_DIRTY
|
||||
#define __HAVE_ARCH_PAGE_TEST_DIRTY
|
||||
#define __HAVE_ARCH_PAGE_CLEAR_DIRTY
|
||||
#define __HAVE_ARCH_PAGE_TEST_AND_CLEAR_YOUNG
|
||||
#include <asm-generic/pgtable.h>
|
||||
|
||||
|
||||
@@ -57,6 +57,7 @@ struct cpuinfo_S390
|
||||
|
||||
extern void s390_adjust_jiffies(void);
|
||||
extern void print_cpu_info(struct cpuinfo_S390 *);
|
||||
extern int get_cpu_capability(unsigned int *);
|
||||
|
||||
/* Lazy FPU handling on uni-processor */
|
||||
extern struct task_struct *last_task_used_math;
|
||||
@@ -196,6 +197,7 @@ extern unsigned long thread_saved_pc(struct task_struct *t);
|
||||
extern char *task_show_regs(struct task_struct *task, char *buffer);
|
||||
|
||||
extern void show_registers(struct pt_regs *regs);
|
||||
extern void show_code(struct pt_regs *regs);
|
||||
extern void show_trace(struct task_struct *task, unsigned long *sp);
|
||||
|
||||
unsigned long get_wchan(struct task_struct *p);
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#define _ASM_S390_SCLP_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <asm/chpid.h>
|
||||
|
||||
struct sccb_header {
|
||||
u16 length;
|
||||
@@ -33,7 +34,20 @@ struct sclp_readinfo_sccb {
|
||||
u8 _reserved3[4096 - 112]; /* 112-4095 */
|
||||
} __attribute__((packed, aligned(4096)));
|
||||
|
||||
#define SCLP_CHP_INFO_MASK_SIZE 32
|
||||
|
||||
struct sclp_chp_info {
|
||||
u8 recognized[SCLP_CHP_INFO_MASK_SIZE];
|
||||
u8 standby[SCLP_CHP_INFO_MASK_SIZE];
|
||||
u8 configured[SCLP_CHP_INFO_MASK_SIZE];
|
||||
};
|
||||
|
||||
extern struct sclp_readinfo_sccb s390_readinfo_sccb;
|
||||
extern void sclp_readinfo_early(void);
|
||||
extern int sclp_sdias_blk_count(void);
|
||||
extern int sclp_sdias_copy(void *dest, int blk_num, int nr_blks);
|
||||
extern int sclp_chp_configure(struct chp_id chpid);
|
||||
extern int sclp_chp_deconfigure(struct chp_id chpid);
|
||||
extern int sclp_chp_read_info(struct sclp_chp_info *info);
|
||||
|
||||
#endif /* _ASM_S390_SCLP_H */
|
||||
|
||||
@@ -40,6 +40,7 @@ struct mem_chunk {
|
||||
};
|
||||
|
||||
extern struct mem_chunk memory_chunk[];
|
||||
extern unsigned long real_memory_size;
|
||||
|
||||
#ifdef CONFIG_S390_SWITCH_AMODE
|
||||
extern unsigned int switch_amode;
|
||||
@@ -77,6 +78,7 @@ extern unsigned long machine_flags;
|
||||
#endif /* __s390x__ */
|
||||
|
||||
#define MACHINE_HAS_SCLP (!MACHINE_IS_P390)
|
||||
#define ZFCPDUMP_HSA_SIZE (32UL<<20)
|
||||
|
||||
/*
|
||||
* Console mode. Override with conmode=
|
||||
|
||||
@@ -54,9 +54,6 @@ extern int smp_call_function_on(void (*func) (void *info), void *info,
|
||||
|
||||
#define raw_smp_processor_id() (S390_lowcore.cpu_data.cpu_nr)
|
||||
|
||||
extern int smp_get_cpu(cpumask_t cpu_map);
|
||||
extern void smp_put_cpu(int cpu);
|
||||
|
||||
static inline __u16 hard_smp_processor_id(void)
|
||||
{
|
||||
__u16 cpu_address;
|
||||
@@ -114,9 +111,8 @@ static inline void smp_send_stop(void)
|
||||
}
|
||||
|
||||
#define smp_cpu_not_running(cpu) 1
|
||||
#define smp_get_cpu(cpu) ({ 0; })
|
||||
#define smp_put_cpu(cpu) ({ 0; })
|
||||
#define smp_setup_cpu_possible_map() do { } while (0)
|
||||
#endif
|
||||
|
||||
extern union save_area *zfcpdump_save_areas[NR_CPUS + 1];
|
||||
#endif
|
||||
|
||||
@@ -57,5 +57,7 @@
|
||||
|
||||
#define SO_PEERSEC 31
|
||||
#define SO_PASSSEC 34
|
||||
#define SO_TIMESTAMPNS 35
|
||||
#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
|
||||
|
||||
#endif /* _ASM_SOCKET_H */
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#define FIOGETOWN 0x8903
|
||||
#define SIOCGPGRP 0x8904
|
||||
#define SIOCATMARK 0x8905
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp */
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
|
||||
#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
|
||||
|
||||
#endif
|
||||
|
||||
@@ -49,5 +49,7 @@
|
||||
|
||||
#define SO_PEERSEC 31
|
||||
#define SO_PASSSEC 34
|
||||
#define SO_TIMESTAMPNS 35
|
||||
#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
|
||||
|
||||
#endif /* __ASM_SH_SOCKET_H */
|
||||
|
||||
@@ -9,5 +9,6 @@
|
||||
#define SIOCSPGRP _IOW('s', 8, pid_t)
|
||||
#define SIOCGPGRP _IOR('s', 9, pid_t)
|
||||
|
||||
#define SIOCGSTAMP _IOR('s', 100, struct timeval) /* Get stamp - linux-specific */
|
||||
#define SIOCGSTAMP _IOR('s', 100, struct timeval) /* Get stamp (timeval) */
|
||||
#define SIOCGSTAMPNS _IOR('s', 101, struct timespec) /* Get stamp (timespec) */
|
||||
#endif /* __ASM_SH_SOCKIOS_H */
|
||||
|
||||
@@ -126,9 +126,6 @@ extern void *memchr(const void *__s, int __c, size_t __n);
|
||||
#define __HAVE_ARCH_STRLEN
|
||||
extern size_t strlen(const char *);
|
||||
|
||||
/* arch/sh/lib/strcasecmp.c */
|
||||
extern int strcasecmp(const char *, const char *);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* __ASM_SH_STRING_H */
|
||||
|
||||
@@ -20,5 +20,6 @@
|
||||
#define SIOCSPGRP _IOW('s', 8, pid_t)
|
||||
#define SIOCGPGRP _IOR('s', 9, pid_t)
|
||||
|
||||
#define SIOCGSTAMP _IOR('s', 100, struct timeval) /* Get stamp - linux-specific */
|
||||
#define SIOCGSTAMP _IOR('s', 100, struct timeval) /* Get stamp (timeval) */
|
||||
#define SIOCGSTAMPNS _IOR('s', 101, struct timespec) /* Get stamp (timespec) */
|
||||
#endif /* __ASM_SH64_SOCKIOS_H */
|
||||
|
||||
@@ -35,8 +35,8 @@ struct property {
|
||||
};
|
||||
|
||||
struct device_node {
|
||||
char *name;
|
||||
char *type;
|
||||
const char *name;
|
||||
const char *type;
|
||||
phandle node;
|
||||
char *path_component_name;
|
||||
char *full_name;
|
||||
@@ -85,12 +85,14 @@ extern struct device_node *of_find_node_by_phandle(phandle handle);
|
||||
extern struct device_node *of_get_parent(const struct device_node *node);
|
||||
extern struct device_node *of_get_next_child(const struct device_node *node,
|
||||
struct device_node *prev);
|
||||
extern struct property *of_find_property(struct device_node *np,
|
||||
extern struct property *of_find_property(const struct device_node *np,
|
||||
const char *name,
|
||||
int *lenp);
|
||||
extern int of_device_is_compatible(struct device_node *device, const char *);
|
||||
extern void *of_get_property(struct device_node *node, const char *name,
|
||||
int *lenp);
|
||||
extern int of_device_is_compatible(const struct device_node *device,
|
||||
const char *);
|
||||
extern const void *of_get_property(const struct device_node *node,
|
||||
const char *name,
|
||||
int *lenp);
|
||||
#define get_property(node,name,lenp) of_get_property(node,name,lenp)
|
||||
extern int of_set_property(struct device_node *node, const char *name, void *val, int len);
|
||||
extern int of_getintprop_default(struct device_node *np,
|
||||
|
||||
@@ -49,6 +49,8 @@
|
||||
|
||||
#define SO_PEERSEC 0x001e
|
||||
#define SO_PASSSEC 0x001f
|
||||
#define SO_TIMESTAMPNS 0x0021
|
||||
#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
|
||||
|
||||
/* Security levels - as per NRL IPv6 - don't actually do anything */
|
||||
#define SO_SECURITY_AUTHENTICATION 0x5001
|
||||
|
||||
@@ -7,7 +7,8 @@
|
||||
#define FIOGETOWN 0x8903
|
||||
#define SIOCGPGRP 0x8904
|
||||
#define SIOCATMARK 0x8905
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp */
|
||||
#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
|
||||
#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
|
||||
|
||||
#endif /* !(_ASM_SPARC_SOCKIOS_H) */
|
||||
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
typedef struct {
|
||||
/* Dcache line 1 */
|
||||
unsigned int __softirq_pending; /* must be 1st, see rtrap.S */
|
||||
unsigned int multiplier;
|
||||
unsigned int counter;
|
||||
unsigned int __pad0_1;
|
||||
unsigned int __pad0_2;
|
||||
unsigned int __pad1;
|
||||
unsigned long clock_tick; /* %tick's per second */
|
||||
unsigned long udelay_val;
|
||||
|
||||
@@ -3,5 +3,21 @@
|
||||
*
|
||||
* This file is released under the GPLv2
|
||||
*/
|
||||
#include <asm-generic/device.h>
|
||||
#ifndef _ASM_SPARC64_DEVICE_H
|
||||
#define _ASM_SPARC64_DEVICE_H
|
||||
|
||||
struct device_node;
|
||||
struct of_device;
|
||||
|
||||
struct dev_archdata {
|
||||
void *iommu;
|
||||
void *stc;
|
||||
void *host_controller;
|
||||
|
||||
struct device_node *prom_node;
|
||||
struct of_device *op;
|
||||
|
||||
unsigned int msi_num;
|
||||
};
|
||||
|
||||
#endif /* _ASM_SPARC64_DEVICE_H */
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
#ifndef __SPARC64_EBUS_H
|
||||
#define __SPARC64_EBUS_H
|
||||
|
||||
#include <asm/pbm.h>
|
||||
#include <asm/oplib.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/of_device.h>
|
||||
@@ -41,7 +40,6 @@ struct linux_ebus {
|
||||
struct of_device ofdev;
|
||||
struct linux_ebus *next;
|
||||
struct linux_ebus_device *devices;
|
||||
struct pci_pbm_info *parent;
|
||||
struct pci_dev *self;
|
||||
int index;
|
||||
int is_rio;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user