Commit de4f6e5b authored by Chris Zankel's avatar Chris Zankel

[XTENSA] clean-up header files

The header files in the asm-xtensa directory are not clean and
'make headers_check' fails. This is a first patch to fix most of
the header files. It removes unnecessary include statements and
adds some that are required for building the kernel. The linker
script required some updates or the linking stage would fail.
Signed-off-by: default avatarChris Zankel <chris@zankel.net>
parent 176fd6c9
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
#include <asm/platform.h> #include <asm/platform.h>
#include <asm/page.h> #include <asm/page.h>
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/param.h>
#if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_DUMMY_CONSOLE) #if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_DUMMY_CONSOLE)
struct screen_info screen_info = { 0, 24, 0, 0, 0, 80, 0, 0, 0, 24, 1, 16}; struct screen_info screen_info = { 0, 24, 0, 0, 0, 80, 0, 0, 0, 24, 1, 16};
......
...@@ -84,9 +84,7 @@ SECTIONS ...@@ -84,9 +84,7 @@ SECTIONS
{ {
/* The .head.text section must be the first section! */ /* The .head.text section must be the first section! */
*(.head.text) *(.head.text)
*(.literal) *(.literal .text)
TEXT_TEXT
*(.srom.text)
VMLINUX_SYMBOL(__sched_text_start) = .; VMLINUX_SYMBOL(__sched_text_start) = .;
*(.sched.literal .sched.text) *(.sched.literal .sched.text)
VMLINUX_SYMBOL(__sched_text_end) = .; VMLINUX_SYMBOL(__sched_text_end) = .;
...@@ -96,6 +94,7 @@ SECTIONS ...@@ -96,6 +94,7 @@ SECTIONS
} }
_etext = .; _etext = .;
PROVIDE (etext = .);
. = ALIGN(16); . = ALIGN(16);
...@@ -103,32 +102,6 @@ SECTIONS ...@@ -103,32 +102,6 @@ SECTIONS
/* Relocation table */ /* Relocation table */
. = ALIGN(16);
__boot_reloc_table_start = ABSOLUTE(.);
__relocate : {
RELOCATE_ENTRY(_WindowVectors_text,
.WindowVectors.text);
#if 0
RELOCATE_ENTRY(_KernelExceptionVector_literal,
.KernelExceptionVector.literal);
#endif
RELOCATE_ENTRY(_KernelExceptionVector_text,
.KernelExceptionVector.text);
#if 0
RELOCATE_ENTRY(_UserExceptionVector_literal,
.UserExceptionVector.literal);
#endif
RELOCATE_ENTRY(_UserExceptionVector_text,
.UserExceptionVector.text);
RELOCATE_ENTRY(_DoubleExceptionVector_literal,
.DoubleExceptionVector.literal);
RELOCATE_ENTRY(_DoubleExceptionVector_text,
.DoubleExceptionVector.text);
}
__boot_reloc_table_end = ABSOLUTE(.) ;
.fixup : { *(.fixup) } .fixup : { *(.fixup) }
. = ALIGN(16); . = ALIGN(16);
...@@ -145,8 +118,7 @@ SECTIONS ...@@ -145,8 +118,7 @@ SECTIONS
_fdata = .; _fdata = .;
.data : .data :
{ {
DATA_DATA *(.data) CONSTRUCTORS
CONSTRUCTORS
. = ALIGN(XCHAL_ICACHE_LINESIZE); . = ALIGN(XCHAL_ICACHE_LINESIZE);
*(.data.cacheline_aligned) *(.data.cacheline_aligned)
} }
...@@ -174,6 +146,22 @@ SECTIONS ...@@ -174,6 +146,22 @@ SECTIONS
__tagtable_begin = .; __tagtable_begin = .;
*(.taglist) *(.taglist)
__tagtable_end = .; __tagtable_end = .;
. = ALIGN(16);
__boot_reloc_table_start = ABSOLUTE(.);
RELOCATE_ENTRY(_WindowVectors_text,
.WindowVectors.text);
RELOCATE_ENTRY(_KernelExceptionVector_text,
.KernelExceptionVector.text);
RELOCATE_ENTRY(_UserExceptionVector_text,
.UserExceptionVector.text);
RELOCATE_ENTRY(_DoubleExceptionVector_literal,
.DoubleExceptionVector.literal);
RELOCATE_ENTRY(_DoubleExceptionVector_text,
.DoubleExceptionVector.text);
__boot_reloc_table_end = ABSOLUTE(.) ;
} }
. = ALIGN(XCHAL_ICACHE_LINESIZE); . = ALIGN(XCHAL_ICACHE_LINESIZE);
...@@ -194,16 +182,6 @@ SECTIONS ...@@ -194,16 +182,6 @@ SECTIONS
SECURITY_INIT SECURITY_INIT
. = ALIGN(4);
__start___ftr_fixup = .;
__ftr_fixup : { *(__ftr_fixup) }
__stop___ftr_fixup = .;
. = ALIGN(4096);
__per_cpu_start = .;
.data.percpu : { *(.data.percpu) }
__per_cpu_end = .;
#ifdef CONFIG_BLK_DEV_INITRD #ifdef CONFIG_BLK_DEV_INITRD
. = ALIGN(4096); . = ALIGN(4096);
...@@ -212,6 +190,12 @@ SECTIONS ...@@ -212,6 +190,12 @@ SECTIONS
__initramfs_end = .; __initramfs_end = .;
#endif #endif
. = ALIGN(4096);
__per_cpu_start = .;
.data.percpu : { *(.data.percpu) }
__per_cpu_end = .;
/* We need this dummy segment here */ /* We need this dummy segment here */
. = ALIGN(4); . = ALIGN(4);
...@@ -273,9 +257,9 @@ SECTIONS ...@@ -273,9 +257,9 @@ SECTIONS
/* BSS section */ /* BSS section */
_bss_start = .; _bss_start = .;
.sbss : { *(.sbss) *(.scommon) } .bss : { *(.bss.page_aligned) *(.bss) }
.bss : { *(COMMON) *(.bss) }
_bss_end = .; _bss_end = .;
_end = .; _end = .;
/* only used by the boot loader */ /* only used by the boot loader */
...@@ -293,16 +277,16 @@ SECTIONS ...@@ -293,16 +277,16 @@ SECTIONS
*(.ResetVector.text) *(.ResetVector.text)
} }
/* Sections to be discarded */ /* Sections to be discarded */
/DISCARD/ : /DISCARD/ :
{ {
*(.text.exit) *(.exit.literal .exit.text)
*(.text.exit.literal) *(.exit.data)
*(.data.exit)
*(.exitcall.exit) *(.exitcall.exit)
} }
.xt.lit : { *(.xt.lit) }
.xt.prop : { *(.xt.prop) }
.debug 0 : { *(.debug) } .debug 0 : { *(.debug) }
.line 0 : { *(.line) } .line 0 : { *(.line) }
......
...@@ -57,9 +57,6 @@ static inline int __ffs(unsigned long x) ...@@ -57,9 +57,6 @@ static inline int __ffs(unsigned long x)
return 31 - __cntlz(x & -x); return 31 - __cntlz(x & -x);
} }
#ifdef __KERNEL__
/* /*
* ffs: Find first bit set in word. This is defined the same way as * ffs: Find first bit set in word. This is defined the same way as
* the libc and compiler builtin ffs routines, therefore * the libc and compiler builtin ffs routines, therefore
...@@ -97,11 +94,15 @@ static inline int fls (unsigned int x) ...@@ -97,11 +94,15 @@ static inline int fls (unsigned int x)
#include <asm-generic/bitops/ext2-non-atomic.h> #include <asm-generic/bitops/ext2-non-atomic.h>
#ifdef __XTENSA_EL__ #ifdef __XTENSA_EL__
# define ext2_set_bit_atomic(lock,nr,addr) test_and_set_bit((nr),(addr)) # define ext2_set_bit_atomic(lock,nr,addr) \
# define ext2_clear_bit_atomic(lock,nr,addr) test_and_clear_bit((nr),(addr)) test_and_set_bit((nr), (unsigned long*)(addr))
# define ext2_clear_bit_atomic(lock,nr,addr) \
test_and_clear_bit((nr), (unsigned long*)(addr))
#elif defined(__XTENSA_EB__) #elif defined(__XTENSA_EB__)
# define ext2_set_bit_atomic(lock,nr,addr) test_and_set_bit((nr) ^ 0x18, (addr)) # define ext2_set_bit_atomic(lock,nr,addr) \
# define ext2_clear_bit_atomic(lock,nr,addr) test_and_clear_bit((nr)^0x18,(addr)) test_and_set_bit((nr) ^ 0x18, (unsigned long*)(addr))
# define ext2_clear_bit_atomic(lock,nr,addr) \
test_and_clear_bit((nr) ^ 0x18, (unsigned long*)(addr))
#else #else
# error processor byte order undefined! # error processor byte order undefined!
#endif #endif
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#define _XTENSA_BYTEORDER_H #define _XTENSA_BYTEORDER_H
#include <asm/types.h> #include <asm/types.h>
#include <linux/compiler.h>
static __inline__ __attribute_const__ __u32 ___arch__swab32(__u32 x) static __inline__ __attribute_const__ __u32 ___arch__swab32(__u32 x)
{ {
...@@ -78,4 +79,4 @@ static __inline__ __attribute_const__ __u16 ___arch__swab16(__u16 x) ...@@ -78,4 +79,4 @@ static __inline__ __attribute_const__ __u16 ___arch__swab16(__u16 x)
# error processor byte order undefined! # error processor byte order undefined!
#endif #endif
#endif /* __ASM_XTENSA_BYTEORDER_H */ #endif /* _XTENSA_BYTEORDER_H */
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#define _XTENSA_MMU_CONTEXT_H #define _XTENSA_MMU_CONTEXT_H
#include <linux/stringify.h> #include <linux/stringify.h>
#include <linux/sched.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
......
...@@ -131,6 +131,6 @@ void copy_user_page(void *to,void* from,unsigned long vaddr,struct page* page); ...@@ -131,6 +131,6 @@ void copy_user_page(void *to,void* from,unsigned long vaddr,struct page* page);
#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ #define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
#endif /* __KERNEL__ */
#include <asm-generic/memory_model.h> #include <asm-generic/memory_model.h>
#endif /* __KERNEL__ */
#endif /* _XTENSA_PAGE_H */ #endif /* _XTENSA_PAGE_H */
...@@ -11,15 +11,13 @@ ...@@ -11,15 +11,13 @@
#ifndef _XTENSA_PARAM_H #ifndef _XTENSA_PARAM_H
#define _XTENSA_PARAM_H #define _XTENSA_PARAM_H
#include <asm/variant/core.h>
#ifdef __KERNEL__ #ifdef __KERNEL__
# define HZ 100 /* internal timer frequency */ # define HZ 100 /* internal timer frequency */
# define USER_HZ 100 /* for user interfaces in "ticks" */ # define USER_HZ 100 /* for user interfaces in "ticks" */
# define CLOCKS_PER_SEC (USER_HZ) /* frequnzy at which times() counts */ # define CLOCKS_PER_SEC (USER_HZ) /* frequnzy at which times() counts */
#endif #endif
#define EXEC_PAGESIZE (1 << XCHAL_MMU_MIN_PTE_PAGE_SIZE) #define EXEC_PAGESIZE 4096
#ifndef NGROUPS #ifndef NGROUPS
#define NGROUPS 32 #define NGROUPS 32
......
...@@ -11,8 +11,6 @@ ...@@ -11,8 +11,6 @@
#ifndef _XTENSA_PTRACE_H #ifndef _XTENSA_PTRACE_H
#define _XTENSA_PTRACE_H #define _XTENSA_PTRACE_H
#include <asm/variant/core.h>
/* /*
* Kernel stack * Kernel stack
* *
...@@ -113,6 +111,9 @@ struct pt_regs { ...@@ -113,6 +111,9 @@ struct pt_regs {
}; };
#ifdef __KERNEL__ #ifdef __KERNEL__
#include <asm/variant/core.h>
# define task_pt_regs(tsk) ((struct pt_regs*) \ # define task_pt_regs(tsk) ((struct pt_regs*) \
(task_stack_page(tsk) + KERNEL_STACK_SIZE - (XCHAL_NUM_AREGS-16)*4) - 1) (task_stack_page(tsk) + KERNEL_STACK_SIZE - (XCHAL_NUM_AREGS-16)*4) - 1)
# define user_mode(regs) (((regs)->ps & 0x00000020)!=0) # define user_mode(regs) (((regs)->ps & 0x00000020)!=0)
......
...@@ -9,8 +9,6 @@ ...@@ -9,8 +9,6 @@
#ifndef _XTENSA_SHMPARAM_H #ifndef _XTENSA_SHMPARAM_H
#define _XTENSA_SHMPARAM_H #define _XTENSA_SHMPARAM_H
#include <asm/processor.h>
/* /*
* Xtensa can have variable size caches, and if * Xtensa can have variable size caches, and if
* the size of single way is larger than the page size, * the size of single way is larger than the page size,
......
...@@ -116,6 +116,7 @@ static inline struct thread_info *current_thread_info(void) ...@@ -116,6 +116,7 @@ static inline struct thread_info *current_thread_info(void)
#define TIF_SINGLESTEP 4 /* restore singlestep on return to user mode */ #define TIF_SINGLESTEP 4 /* restore singlestep on return to user mode */
#define TIF_IRET 5 /* return with iret */ #define TIF_IRET 5 /* return with iret */
#define TIF_MEMDIE 6 #define TIF_MEMDIE 6
#define TIF_RESTORE_SIGMASK 7 /* restore signal mask in do_signal() */
#define TIF_POLLING_NRFLAG 16 /* true if poll_idle() is polling TIF_NEED_RESCHED */ #define TIF_POLLING_NRFLAG 16 /* true if poll_idle() is polling TIF_NEED_RESCHED */
#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
...@@ -125,6 +126,7 @@ static inline struct thread_info *current_thread_info(void) ...@@ -125,6 +126,7 @@ static inline struct thread_info *current_thread_info(void)
#define _TIF_SINGLESTEP (1<<TIF_SINGLESTEP) #define _TIF_SINGLESTEP (1<<TIF_SINGLESTEP)
#define _TIF_IRET (1<<TIF_IRET) #define _TIF_IRET (1<<TIF_IRET)
#define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG) #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG)
#define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK)
#define _TIF_WORK_MASK 0x0000FFFE /* work to do on interrupt/exception return */ #define _TIF_WORK_MASK 0x0000FFFE /* work to do on interrupt/exception return */
#define _TIF_ALLWORK_MASK 0x0000FFFF /* work to do on any return to u-space */ #define _TIF_ALLWORK_MASK 0x0000FFFF /* work to do on any return to u-space */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment