Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 16 Dec 2016 00:06:15 +0000 (16:06 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 16 Dec 2016 00:06:15 +0000 (16:06 -0800)
Pull ARM updates from Russell King:

 - an update for clkdev registration error detection to simplify users

 - add cpu capacity parsing from DT

 - support for larger cachelines found on UniPhier caches

 - documentation for udelay constants

 - properly tag assembly function declarations

 - remove unnecessary indirection of asm/mach-types.h

 - switch to syscall table based generation to simplify future additions
   of system calls, along with correpsonding commit for pkey syscalls

 - remove redundant sa1101 header file

 - RONX protect modules when they're in the vmalloc region

* 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
  ARM: mm: allow set_memory_*() to be used on the vmalloc region
  ARM: mm: fix set_memory_*() bounds checks
  ARM: 8631/1: clkdev: Detect errors in clk_hw_register_clkdev() for mass registration
  ARM: 8629/1: vfp: properly tag assembly function declarations in C code
  ARM: 8622/3: add sysfs cpu_capacity attribute
  ARM: 8621/3: parse cpu capacity-dmips-mhz from DT
  ARM: 8623/1: mm: add ARM_L1_CACHE_SHIFT_7 for UniPhier outer cache
  ARM: Update mach-types
  ARM: sa1100: remove SA-1101 header file
  ARM: 8619/1: udelay: document the various constants
  ARM: wire up new pkey syscalls
  ARM: convert to generated system call tables
  ARM: remove indirection of asm/mach-types.h

24 files changed:
arch/arm/Makefile
arch/arm/include/asm/Kbuild
arch/arm/include/asm/delay.h
arch/arm/include/asm/mach-types.h [deleted file]
arch/arm/include/asm/unistd.h
arch/arm/include/uapi/asm/Kbuild
arch/arm/include/uapi/asm/unistd.h
arch/arm/kernel/calls.S [deleted file]
arch/arm/kernel/entry-common.S
arch/arm/kernel/topology.c
arch/arm/lib/delay-loop.S
arch/arm/mach-sa1100/include/mach/SA-1101.h [deleted file]
arch/arm/mach-sa1100/include/mach/hardware.h
arch/arm/mm/Kconfig
arch/arm/mm/pageattr.c
arch/arm/tools/Makefile
arch/arm/tools/mach-types
arch/arm/tools/syscall.tbl [new file with mode: 0644]
arch/arm/tools/syscallhdr.sh [new file with mode: 0644]
arch/arm/tools/syscallnr.sh [new file with mode: 0644]
arch/arm/tools/syscalltbl.sh [new file with mode: 0644]
arch/arm/vfp/vfp.h
arch/arm/vfp/vfpmodule.c
drivers/clk/clkdev.c

index 68312a9..ab30cc6 100644 (file)
@@ -312,8 +312,11 @@ all:       $(KBUILD_IMAGE) $(KBUILD_DTBS)
 
 boot := arch/arm/boot
 
+archheaders:
+       $(Q)$(MAKE) $(build)=arch/arm/tools uapi
+
 archprepare:
-       $(Q)$(MAKE) $(build)=arch/arm/tools include/generated/mach-types.h
+       $(Q)$(MAKE) $(build)=arch/arm/tools kapi
 
 # Convert bzImage to zImage
 bzImage: zImage
index 55e0e3e..efb2175 100644 (file)
@@ -38,3 +38,6 @@ generic-y += termios.h
 generic-y += timex.h
 generic-y += trace_clock.h
 generic-y += unaligned.h
+
+generated-y += mach-types.h
+generated-y += unistd-nr.h
index b1ce037..e986b7f 100644 (file)
@@ -9,6 +9,33 @@
 #include <asm/memory.h>
 #include <asm/param.h> /* HZ */
 
+/*
+ * Loop (or tick) based delay:
+ *
+ * loops = loops_per_jiffy * jiffies_per_sec * delay_us / us_per_sec
+ *
+ * where:
+ *
+ * jiffies_per_sec = HZ
+ * us_per_sec = 1000000
+ *
+ * Therefore the constant part is HZ / 1000000 which is a small
+ * fractional number. To make this usable with integer math, we
+ * scale up this constant by 2^31, perform the actual multiplication,
+ * and scale the result back down by 2^31 with a simple shift:
+ *
+ * loops = (loops_per_jiffy * delay_us * UDELAY_MULT) >> 31
+ *
+ * where:
+ *
+ * UDELAY_MULT = 2^31 * HZ / 1000000
+ *             = (2^31 / 1000000) * HZ
+ *             = 2147.483648 * HZ
+ *             = 2147 * HZ + 483648 * HZ / 1000000
+ *
+ * 31 is the biggest scale shift value that won't overflow 32 bits for
+ * delay_us * UDELAY_MULT assuming HZ <= 1000 and delay_us <= 2000.
+ */
 #define MAX_UDELAY_MS  2
 #define UDELAY_MULT    UL(2147 * HZ + 483648 * HZ / 1000000)
 #define UDELAY_SHIFT   31
diff --git a/arch/arm/include/asm/mach-types.h b/arch/arm/include/asm/mach-types.h
deleted file mode 100644 (file)
index 948178c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <generated/mach-types.h>
index ada0d29..076090d 100644 (file)
 #define __ASM_ARM_UNISTD_H
 
 #include <uapi/asm/unistd.h>
-
-/*
- * This may need to be greater than __NR_last_syscall+1 in order to
- * account for the padding in the syscall table
- */
-#define __NR_syscalls  (400)
+#include <asm/unistd-nr.h>
 
 #define __ARCH_WANT_STAT64
 #define __ARCH_WANT_SYS_GETHOSTNAME
 #define __IGNORE_fadvise64_64
 #define __IGNORE_migrate_pages
 
+#ifdef __ARM_EABI__
+/*
+ * The following syscalls are obsolete and no longer available for EABI:
+ *  __NR_time
+ *  __NR_umount
+ *  __NR_stime
+ *  __NR_alarm
+ *  __NR_utime
+ *  __NR_getrlimit
+ *  __NR_select
+ *  __NR_readdir
+ *  __NR_mmap
+ *  __NR_socketcall
+ *  __NR_syscall
+ *  __NR_ipc
+ */
+#define __IGNORE_getrlimit
+#endif
+
 #endif /* __ASM_ARM_UNISTD_H */
index a1c05f9..46a76cd 100644 (file)
@@ -18,3 +18,6 @@ header-y += stat.h
 header-y += statfs.h
 header-y += swab.h
 header-y += unistd.h
+genhdr-y += unistd-common.h
+genhdr-y += unistd-oabi.h
+genhdr-y += unistd-eabi.h
index 314100a..28bd456 100644 (file)
 
 #if defined(__thumb__) || defined(__ARM_EABI__)
 #define __NR_SYSCALL_BASE      0
+#include <asm/unistd-eabi.h>
 #else
 #define __NR_SYSCALL_BASE      __NR_OABI_SYSCALL_BASE
+#include <asm/unistd-oabi.h>
 #endif
 
-/*
- * This file contains the system call numbers.
- */
-
-#define __NR_restart_syscall           (__NR_SYSCALL_BASE+  0)
-#define __NR_exit                      (__NR_SYSCALL_BASE+  1)
-#define __NR_fork                      (__NR_SYSCALL_BASE+  2)
-#define __NR_read                      (__NR_SYSCALL_BASE+  3)
-#define __NR_write                     (__NR_SYSCALL_BASE+  4)
-#define __NR_open                      (__NR_SYSCALL_BASE+  5)
-#define __NR_close                     (__NR_SYSCALL_BASE+  6)
-                                       /* 7 was sys_waitpid */
-#define __NR_creat                     (__NR_SYSCALL_BASE+  8)
-#define __NR_link                      (__NR_SYSCALL_BASE+  9)
-#define __NR_unlink                    (__NR_SYSCALL_BASE+ 10)
-#define __NR_execve                    (__NR_SYSCALL_BASE+ 11)
-#define __NR_chdir                     (__NR_SYSCALL_BASE+ 12)
-#define __NR_time                      (__NR_SYSCALL_BASE+ 13)
-#define __NR_mknod                     (__NR_SYSCALL_BASE+ 14)
-#define __NR_chmod                     (__NR_SYSCALL_BASE+ 15)
-#define __NR_lchown                    (__NR_SYSCALL_BASE+ 16)
-                                       /* 17 was sys_break */
-                                       /* 18 was sys_stat */
-#define __NR_lseek                     (__NR_SYSCALL_BASE+ 19)
-#define __NR_getpid                    (__NR_SYSCALL_BASE+ 20)
-#define __NR_mount                     (__NR_SYSCALL_BASE+ 21)
-#define __NR_umount                    (__NR_SYSCALL_BASE+ 22)
-#define __NR_setuid                    (__NR_SYSCALL_BASE+ 23)
-#define __NR_getuid                    (__NR_SYSCALL_BASE+ 24)
-#define __NR_stime                     (__NR_SYSCALL_BASE+ 25)
-#define __NR_ptrace                    (__NR_SYSCALL_BASE+ 26)
-#define __NR_alarm                     (__NR_SYSCALL_BASE+ 27)
-                                       /* 28 was sys_fstat */
-#define __NR_pause                     (__NR_SYSCALL_BASE+ 29)
-#define __NR_utime                     (__NR_SYSCALL_BASE+ 30)
-                                       /* 31 was sys_stty */
-                                       /* 32 was sys_gtty */
-#define __NR_access                    (__NR_SYSCALL_BASE+ 33)
-#define __NR_nice                      (__NR_SYSCALL_BASE+ 34)
-                                       /* 35 was sys_ftime */
-#define __NR_sync                      (__NR_SYSCALL_BASE+ 36)
-#define __NR_kill                      (__NR_SYSCALL_BASE+ 37)
-#define __NR_rename                    (__NR_SYSCALL_BASE+ 38)
-#define __NR_mkdir                     (__NR_SYSCALL_BASE+ 39)
-#define __NR_rmdir                     (__NR_SYSCALL_BASE+ 40)
-#define __NR_dup                       (__NR_SYSCALL_BASE+ 41)
-#define __NR_pipe                      (__NR_SYSCALL_BASE+ 42)
-#define __NR_times                     (__NR_SYSCALL_BASE+ 43)
-                                       /* 44 was sys_prof */
-#define __NR_brk                       (__NR_SYSCALL_BASE+ 45)
-#define __NR_setgid                    (__NR_SYSCALL_BASE+ 46)
-#define __NR_getgid                    (__NR_SYSCALL_BASE+ 47)
-                                       /* 48 was sys_signal */
-#define __NR_geteuid                   (__NR_SYSCALL_BASE+ 49)
-#define __NR_getegid                   (__NR_SYSCALL_BASE+ 50)
-#define __NR_acct                      (__NR_SYSCALL_BASE+ 51)
-#define __NR_umount2                   (__NR_SYSCALL_BASE+ 52)
-                                       /* 53 was sys_lock */
-#define __NR_ioctl                     (__NR_SYSCALL_BASE+ 54)
-#define __NR_fcntl                     (__NR_SYSCALL_BASE+ 55)
-                                       /* 56 was sys_mpx */
-#define __NR_setpgid                   (__NR_SYSCALL_BASE+ 57)
-                                       /* 58 was sys_ulimit */
-                                       /* 59 was sys_olduname */
-#define __NR_umask                     (__NR_SYSCALL_BASE+ 60)
-#define __NR_chroot                    (__NR_SYSCALL_BASE+ 61)
-#define __NR_ustat                     (__NR_SYSCALL_BASE+ 62)
-#define __NR_dup2                      (__NR_SYSCALL_BASE+ 63)
-#define __NR_getppid                   (__NR_SYSCALL_BASE+ 64)
-#define __NR_getpgrp                   (__NR_SYSCALL_BASE+ 65)
-#define __NR_setsid                    (__NR_SYSCALL_BASE+ 66)
-#define __NR_sigaction                 (__NR_SYSCALL_BASE+ 67)
-                                       /* 68 was sys_sgetmask */
-                                       /* 69 was sys_ssetmask */
-#define __NR_setreuid                  (__NR_SYSCALL_BASE+ 70)
-#define __NR_setregid                  (__NR_SYSCALL_BASE+ 71)
-#define __NR_sigsuspend                        (__NR_SYSCALL_BASE+ 72)
-#define __NR_sigpending                        (__NR_SYSCALL_BASE+ 73)
-#define __NR_sethostname               (__NR_SYSCALL_BASE+ 74)
-#define __NR_setrlimit                 (__NR_SYSCALL_BASE+ 75)
-#define __NR_getrlimit                 (__NR_SYSCALL_BASE+ 76) /* Back compat 2GB limited rlimit */
-#define __NR_getrusage                 (__NR_SYSCALL_BASE+ 77)
-#define __NR_gettimeofday              (__NR_SYSCALL_BASE+ 78)
-#define __NR_settimeofday              (__NR_SYSCALL_BASE+ 79)
-#define __NR_getgroups                 (__NR_SYSCALL_BASE+ 80)
-#define __NR_setgroups                 (__NR_SYSCALL_BASE+ 81)
-#define __NR_select                    (__NR_SYSCALL_BASE+ 82)
-#define __NR_symlink                   (__NR_SYSCALL_BASE+ 83)
-                                       /* 84 was sys_lstat */
-#define __NR_readlink                  (__NR_SYSCALL_BASE+ 85)
-#define __NR_uselib                    (__NR_SYSCALL_BASE+ 86)
-#define __NR_swapon                    (__NR_SYSCALL_BASE+ 87)
-#define __NR_reboot                    (__NR_SYSCALL_BASE+ 88)
-#define __NR_readdir                   (__NR_SYSCALL_BASE+ 89)
-#define __NR_mmap                      (__NR_SYSCALL_BASE+ 90)
-#define __NR_munmap                    (__NR_SYSCALL_BASE+ 91)
-#define __NR_truncate                  (__NR_SYSCALL_BASE+ 92)
-#define __NR_ftruncate                 (__NR_SYSCALL_BASE+ 93)
-#define __NR_fchmod                    (__NR_SYSCALL_BASE+ 94)
-#define __NR_fchown                    (__NR_SYSCALL_BASE+ 95)
-#define __NR_getpriority               (__NR_SYSCALL_BASE+ 96)
-#define __NR_setpriority               (__NR_SYSCALL_BASE+ 97)
-                                       /* 98 was sys_profil */
-#define __NR_statfs                    (__NR_SYSCALL_BASE+ 99)
-#define __NR_fstatfs                   (__NR_SYSCALL_BASE+100)
-                                       /* 101 was sys_ioperm */
-#define __NR_socketcall                        (__NR_SYSCALL_BASE+102)
-#define __NR_syslog                    (__NR_SYSCALL_BASE+103)
-#define __NR_setitimer                 (__NR_SYSCALL_BASE+104)
-#define __NR_getitimer                 (__NR_SYSCALL_BASE+105)
-#define __NR_stat                      (__NR_SYSCALL_BASE+106)
-#define __NR_lstat                     (__NR_SYSCALL_BASE+107)
-#define __NR_fstat                     (__NR_SYSCALL_BASE+108)
-                                       /* 109 was sys_uname */
-                                       /* 110 was sys_iopl */
-#define __NR_vhangup                   (__NR_SYSCALL_BASE+111)
-                                       /* 112 was sys_idle */
-#define __NR_syscall                   (__NR_SYSCALL_BASE+113) /* syscall to call a syscall! */
-#define __NR_wait4                     (__NR_SYSCALL_BASE+114)
-#define __NR_swapoff                   (__NR_SYSCALL_BASE+115)
-#define __NR_sysinfo                   (__NR_SYSCALL_BASE+116)
-#define __NR_ipc                       (__NR_SYSCALL_BASE+117)
-#define __NR_fsync                     (__NR_SYSCALL_BASE+118)
-#define __NR_sigreturn                 (__NR_SYSCALL_BASE+119)
-#define __NR_clone                     (__NR_SYSCALL_BASE+120)
-#define __NR_setdomainname             (__NR_SYSCALL_BASE+121)
-#define __NR_uname                     (__NR_SYSCALL_BASE+122)
-                                       /* 123 was sys_modify_ldt */
-#define __NR_adjtimex                  (__NR_SYSCALL_BASE+124)
-#define __NR_mprotect                  (__NR_SYSCALL_BASE+125)
-#define __NR_sigprocmask               (__NR_SYSCALL_BASE+126)
-                                       /* 127 was sys_create_module */
-#define __NR_init_module               (__NR_SYSCALL_BASE+128)
-#define __NR_delete_module             (__NR_SYSCALL_BASE+129)
-                                       /* 130 was sys_get_kernel_syms */
-#define __NR_quotactl                  (__NR_SYSCALL_BASE+131)
-#define __NR_getpgid                   (__NR_SYSCALL_BASE+132)
-#define __NR_fchdir                    (__NR_SYSCALL_BASE+133)
-#define __NR_bdflush                   (__NR_SYSCALL_BASE+134)
-#define __NR_sysfs                     (__NR_SYSCALL_BASE+135)
-#define __NR_personality               (__NR_SYSCALL_BASE+136)
-                                       /* 137 was sys_afs_syscall */
-#define __NR_setfsuid                  (__NR_SYSCALL_BASE+138)
-#define __NR_setfsgid                  (__NR_SYSCALL_BASE+139)
-#define __NR__llseek                   (__NR_SYSCALL_BASE+140)
-#define __NR_getdents                  (__NR_SYSCALL_BASE+141)
-#define __NR__newselect                        (__NR_SYSCALL_BASE+142)
-#define __NR_flock                     (__NR_SYSCALL_BASE+143)
-#define __NR_msync                     (__NR_SYSCALL_BASE+144)
-#define __NR_readv                     (__NR_SYSCALL_BASE+145)
-#define __NR_writev                    (__NR_SYSCALL_BASE+146)
-#define __NR_getsid                    (__NR_SYSCALL_BASE+147)
-#define __NR_fdatasync                 (__NR_SYSCALL_BASE+148)
-#define __NR__sysctl                   (__NR_SYSCALL_BASE+149)
-#define __NR_mlock                     (__NR_SYSCALL_BASE+150)
-#define __NR_munlock                   (__NR_SYSCALL_BASE+151)
-#define __NR_mlockall                  (__NR_SYSCALL_BASE+152)
-#define __NR_munlockall                        (__NR_SYSCALL_BASE+153)
-#define __NR_sched_setparam            (__NR_SYSCALL_BASE+154)
-#define __NR_sched_getparam            (__NR_SYSCALL_BASE+155)
-#define __NR_sched_setscheduler                (__NR_SYSCALL_BASE+156)
-#define __NR_sched_getscheduler                (__NR_SYSCALL_BASE+157)
-#define __NR_sched_yield               (__NR_SYSCALL_BASE+158)
-#define __NR_sched_get_priority_max    (__NR_SYSCALL_BASE+159)
-#define __NR_sched_get_priority_min    (__NR_SYSCALL_BASE+160)
-#define __NR_sched_rr_get_interval     (__NR_SYSCALL_BASE+161)
-#define __NR_nanosleep                 (__NR_SYSCALL_BASE+162)
-#define __NR_mremap                    (__NR_SYSCALL_BASE+163)
-#define __NR_setresuid                 (__NR_SYSCALL_BASE+164)
-#define __NR_getresuid                 (__NR_SYSCALL_BASE+165)
-                                       /* 166 was sys_vm86 */
-                                       /* 167 was sys_query_module */
-#define __NR_poll                      (__NR_SYSCALL_BASE+168)
-#define __NR_nfsservctl                        (__NR_SYSCALL_BASE+169)
-#define __NR_setresgid                 (__NR_SYSCALL_BASE+170)
-#define __NR_getresgid                 (__NR_SYSCALL_BASE+171)
-#define __NR_prctl                     (__NR_SYSCALL_BASE+172)
-#define __NR_rt_sigreturn              (__NR_SYSCALL_BASE+173)
-#define __NR_rt_sigaction              (__NR_SYSCALL_BASE+174)
-#define __NR_rt_sigprocmask            (__NR_SYSCALL_BASE+175)
-#define __NR_rt_sigpending             (__NR_SYSCALL_BASE+176)
-#define __NR_rt_sigtimedwait           (__NR_SYSCALL_BASE+177)
-#define __NR_rt_sigqueueinfo           (__NR_SYSCALL_BASE+178)
-#define __NR_rt_sigsuspend             (__NR_SYSCALL_BASE+179)
-#define __NR_pread64                   (__NR_SYSCALL_BASE+180)
-#define __NR_pwrite64                  (__NR_SYSCALL_BASE+181)
-#define __NR_chown                     (__NR_SYSCALL_BASE+182)
-#define __NR_getcwd                    (__NR_SYSCALL_BASE+183)
-#define __NR_capget                    (__NR_SYSCALL_BASE+184)
-#define __NR_capset                    (__NR_SYSCALL_BASE+185)
-#define __NR_sigaltstack               (__NR_SYSCALL_BASE+186)
-#define __NR_sendfile                  (__NR_SYSCALL_BASE+187)
-                                       /* 188 reserved */
-                                       /* 189 reserved */
-#define __NR_vfork                     (__NR_SYSCALL_BASE+190)
-#define __NR_ugetrlimit                        (__NR_SYSCALL_BASE+191) /* SuS compliant getrlimit */
-#define __NR_mmap2                     (__NR_SYSCALL_BASE+192)
-#define __NR_truncate64                        (__NR_SYSCALL_BASE+193)
-#define __NR_ftruncate64               (__NR_SYSCALL_BASE+194)
-#define __NR_stat64                    (__NR_SYSCALL_BASE+195)
-#define __NR_lstat64                   (__NR_SYSCALL_BASE+196)
-#define __NR_fstat64                   (__NR_SYSCALL_BASE+197)
-#define __NR_lchown32                  (__NR_SYSCALL_BASE+198)
-#define __NR_getuid32                  (__NR_SYSCALL_BASE+199)
-#define __NR_getgid32                  (__NR_SYSCALL_BASE+200)
-#define __NR_geteuid32                 (__NR_SYSCALL_BASE+201)
-#define __NR_getegid32                 (__NR_SYSCALL_BASE+202)
-#define __NR_setreuid32                        (__NR_SYSCALL_BASE+203)
-#define __NR_setregid32                        (__NR_SYSCALL_BASE+204)
-#define __NR_getgroups32               (__NR_SYSCALL_BASE+205)
-#define __NR_setgroups32               (__NR_SYSCALL_BASE+206)
-#define __NR_fchown32                  (__NR_SYSCALL_BASE+207)
-#define __NR_setresuid32               (__NR_SYSCALL_BASE+208)
-#define __NR_getresuid32               (__NR_SYSCALL_BASE+209)
-#define __NR_setresgid32               (__NR_SYSCALL_BASE+210)
-#define __NR_getresgid32               (__NR_SYSCALL_BASE+211)
-#define __NR_chown32                   (__NR_SYSCALL_BASE+212)
-#define __NR_setuid32                  (__NR_SYSCALL_BASE+213)
-#define __NR_setgid32                  (__NR_SYSCALL_BASE+214)
-#define __NR_setfsuid32                        (__NR_SYSCALL_BASE+215)
-#define __NR_setfsgid32                        (__NR_SYSCALL_BASE+216)
-#define __NR_getdents64                        (__NR_SYSCALL_BASE+217)
-#define __NR_pivot_root                        (__NR_SYSCALL_BASE+218)
-#define __NR_mincore                   (__NR_SYSCALL_BASE+219)
-#define __NR_madvise                   (__NR_SYSCALL_BASE+220)
-#define __NR_fcntl64                   (__NR_SYSCALL_BASE+221)
-                                       /* 222 for tux */
-                                       /* 223 is unused */
-#define __NR_gettid                    (__NR_SYSCALL_BASE+224)
-#define __NR_readahead                 (__NR_SYSCALL_BASE+225)
-#define __NR_setxattr                  (__NR_SYSCALL_BASE+226)
-#define __NR_lsetxattr                 (__NR_SYSCALL_BASE+227)
-#define __NR_fsetxattr                 (__NR_SYSCALL_BASE+228)
-#define __NR_getxattr                  (__NR_SYSCALL_BASE+229)
-#define __NR_lgetxattr                 (__NR_SYSCALL_BASE+230)
-#define __NR_fgetxattr                 (__NR_SYSCALL_BASE+231)
-#define __NR_listxattr                 (__NR_SYSCALL_BASE+232)
-#define __NR_llistxattr                        (__NR_SYSCALL_BASE+233)
-#define __NR_flistxattr                        (__NR_SYSCALL_BASE+234)
-#define __NR_removexattr               (__NR_SYSCALL_BASE+235)
-#define __NR_lremovexattr              (__NR_SYSCALL_BASE+236)
-#define __NR_fremovexattr              (__NR_SYSCALL_BASE+237)
-#define __NR_tkill                     (__NR_SYSCALL_BASE+238)
-#define __NR_sendfile64                        (__NR_SYSCALL_BASE+239)
-#define __NR_futex                     (__NR_SYSCALL_BASE+240)
-#define __NR_sched_setaffinity         (__NR_SYSCALL_BASE+241)
-#define __NR_sched_getaffinity         (__NR_SYSCALL_BASE+242)
-#define __NR_io_setup                  (__NR_SYSCALL_BASE+243)
-#define __NR_io_destroy                        (__NR_SYSCALL_BASE+244)
-#define __NR_io_getevents              (__NR_SYSCALL_BASE+245)
-#define __NR_io_submit                 (__NR_SYSCALL_BASE+246)
-#define __NR_io_cancel                 (__NR_SYSCALL_BASE+247)
-#define __NR_exit_group                        (__NR_SYSCALL_BASE+248)
-#define __NR_lookup_dcookie            (__NR_SYSCALL_BASE+249)
-#define __NR_epoll_create              (__NR_SYSCALL_BASE+250)
-#define __NR_epoll_ctl                 (__NR_SYSCALL_BASE+251)
-#define __NR_epoll_wait                        (__NR_SYSCALL_BASE+252)
-#define __NR_remap_file_pages          (__NR_SYSCALL_BASE+253)
-                                       /* 254 for set_thread_area */
-                                       /* 255 for get_thread_area */
-#define __NR_set_tid_address           (__NR_SYSCALL_BASE+256)
-#define __NR_timer_create              (__NR_SYSCALL_BASE+257)
-#define __NR_timer_settime             (__NR_SYSCALL_BASE+258)
-#define __NR_timer_gettime             (__NR_SYSCALL_BASE+259)
-#define __NR_timer_getoverrun          (__NR_SYSCALL_BASE+260)
-#define __NR_timer_delete              (__NR_SYSCALL_BASE+261)
-#define __NR_clock_settime             (__NR_SYSCALL_BASE+262)
-#define __NR_clock_gettime             (__NR_SYSCALL_BASE+263)
-#define __NR_clock_getres              (__NR_SYSCALL_BASE+264)
-#define __NR_clock_nanosleep           (__NR_SYSCALL_BASE+265)
-#define __NR_statfs64                  (__NR_SYSCALL_BASE+266)
-#define __NR_fstatfs64                 (__NR_SYSCALL_BASE+267)
-#define __NR_tgkill                    (__NR_SYSCALL_BASE+268)
-#define __NR_utimes                    (__NR_SYSCALL_BASE+269)
-#define __NR_arm_fadvise64_64          (__NR_SYSCALL_BASE+270)
-#define __NR_pciconfig_iobase          (__NR_SYSCALL_BASE+271)
-#define __NR_pciconfig_read            (__NR_SYSCALL_BASE+272)
-#define __NR_pciconfig_write           (__NR_SYSCALL_BASE+273)
-#define __NR_mq_open                   (__NR_SYSCALL_BASE+274)
-#define __NR_mq_unlink                 (__NR_SYSCALL_BASE+275)
-#define __NR_mq_timedsend              (__NR_SYSCALL_BASE+276)
-#define __NR_mq_timedreceive           (__NR_SYSCALL_BASE+277)
-#define __NR_mq_notify                 (__NR_SYSCALL_BASE+278)
-#define __NR_mq_getsetattr             (__NR_SYSCALL_BASE+279)
-#define __NR_waitid                    (__NR_SYSCALL_BASE+280)
-#define __NR_socket                    (__NR_SYSCALL_BASE+281)
-#define __NR_bind                      (__NR_SYSCALL_BASE+282)
-#define __NR_connect                   (__NR_SYSCALL_BASE+283)
-#define __NR_listen                    (__NR_SYSCALL_BASE+284)
-#define __NR_accept                    (__NR_SYSCALL_BASE+285)
-#define __NR_getsockname               (__NR_SYSCALL_BASE+286)
-#define __NR_getpeername               (__NR_SYSCALL_BASE+287)
-#define __NR_socketpair                        (__NR_SYSCALL_BASE+288)
-#define __NR_send                      (__NR_SYSCALL_BASE+289)
-#define __NR_sendto                    (__NR_SYSCALL_BASE+290)
-#define __NR_recv                      (__NR_SYSCALL_BASE+291)
-#define __NR_recvfrom                  (__NR_SYSCALL_BASE+292)
-#define __NR_shutdown                  (__NR_SYSCALL_BASE+293)
-#define __NR_setsockopt                        (__NR_SYSCALL_BASE+294)
-#define __NR_getsockopt                        (__NR_SYSCALL_BASE+295)
-#define __NR_sendmsg                   (__NR_SYSCALL_BASE+296)
-#define __NR_recvmsg                   (__NR_SYSCALL_BASE+297)
-#define __NR_semop                     (__NR_SYSCALL_BASE+298)
-#define __NR_semget                    (__NR_SYSCALL_BASE+299)
-#define __NR_semctl                    (__NR_SYSCALL_BASE+300)
-#define __NR_msgsnd                    (__NR_SYSCALL_BASE+301)
-#define __NR_msgrcv                    (__NR_SYSCALL_BASE+302)
-#define __NR_msgget                    (__NR_SYSCALL_BASE+303)
-#define __NR_msgctl                    (__NR_SYSCALL_BASE+304)
-#define __NR_shmat                     (__NR_SYSCALL_BASE+305)
-#define __NR_shmdt                     (__NR_SYSCALL_BASE+306)
-#define __NR_shmget                    (__NR_SYSCALL_BASE+307)
-#define __NR_shmctl                    (__NR_SYSCALL_BASE+308)
-#define __NR_add_key                   (__NR_SYSCALL_BASE+309)
-#define __NR_request_key               (__NR_SYSCALL_BASE+310)
-#define __NR_keyctl                    (__NR_SYSCALL_BASE+311)
-#define __NR_semtimedop                        (__NR_SYSCALL_BASE+312)
-#define __NR_vserver                   (__NR_SYSCALL_BASE+313)
-#define __NR_ioprio_set                        (__NR_SYSCALL_BASE+314)
-#define __NR_ioprio_get                        (__NR_SYSCALL_BASE+315)
-#define __NR_inotify_init              (__NR_SYSCALL_BASE+316)
-#define __NR_inotify_add_watch         (__NR_SYSCALL_BASE+317)
-#define __NR_inotify_rm_watch          (__NR_SYSCALL_BASE+318)
-#define __NR_mbind                     (__NR_SYSCALL_BASE+319)
-#define __NR_get_mempolicy             (__NR_SYSCALL_BASE+320)
-#define __NR_set_mempolicy             (__NR_SYSCALL_BASE+321)
-#define __NR_openat                    (__NR_SYSCALL_BASE+322)
-#define __NR_mkdirat                   (__NR_SYSCALL_BASE+323)
-#define __NR_mknodat                   (__NR_SYSCALL_BASE+324)
-#define __NR_fchownat                  (__NR_SYSCALL_BASE+325)
-#define __NR_futimesat                 (__NR_SYSCALL_BASE+326)
-#define __NR_fstatat64                 (__NR_SYSCALL_BASE+327)
-#define __NR_unlinkat                  (__NR_SYSCALL_BASE+328)
-#define __NR_renameat                  (__NR_SYSCALL_BASE+329)
-#define __NR_linkat                    (__NR_SYSCALL_BASE+330)
-#define __NR_symlinkat                 (__NR_SYSCALL_BASE+331)
-#define __NR_readlinkat                        (__NR_SYSCALL_BASE+332)
-#define __NR_fchmodat                  (__NR_SYSCALL_BASE+333)
-#define __NR_faccessat                 (__NR_SYSCALL_BASE+334)
-#define __NR_pselect6                  (__NR_SYSCALL_BASE+335)
-#define __NR_ppoll                     (__NR_SYSCALL_BASE+336)
-#define __NR_unshare                   (__NR_SYSCALL_BASE+337)
-#define __NR_set_robust_list           (__NR_SYSCALL_BASE+338)
-#define __NR_get_robust_list           (__NR_SYSCALL_BASE+339)
-#define __NR_splice                    (__NR_SYSCALL_BASE+340)
-#define __NR_arm_sync_file_range       (__NR_SYSCALL_BASE+341)
+#include <asm/unistd-common.h>
 #define __NR_sync_file_range2          __NR_arm_sync_file_range
-#define __NR_tee                       (__NR_SYSCALL_BASE+342)
-#define __NR_vmsplice                  (__NR_SYSCALL_BASE+343)
-#define __NR_move_pages                        (__NR_SYSCALL_BASE+344)
-#define __NR_getcpu                    (__NR_SYSCALL_BASE+345)
-#define __NR_epoll_pwait               (__NR_SYSCALL_BASE+346)
-#define __NR_kexec_load                        (__NR_SYSCALL_BASE+347)
-#define __NR_utimensat                 (__NR_SYSCALL_BASE+348)
-#define __NR_signalfd                  (__NR_SYSCALL_BASE+349)
-#define __NR_timerfd_create            (__NR_SYSCALL_BASE+350)
-#define __NR_eventfd                   (__NR_SYSCALL_BASE+351)
-#define __NR_fallocate                 (__NR_SYSCALL_BASE+352)
-#define __NR_timerfd_settime           (__NR_SYSCALL_BASE+353)
-#define __NR_timerfd_gettime           (__NR_SYSCALL_BASE+354)
-#define __NR_signalfd4                 (__NR_SYSCALL_BASE+355)
-#define __NR_eventfd2                  (__NR_SYSCALL_BASE+356)
-#define __NR_epoll_create1             (__NR_SYSCALL_BASE+357)
-#define __NR_dup3                      (__NR_SYSCALL_BASE+358)
-#define __NR_pipe2                     (__NR_SYSCALL_BASE+359)
-#define __NR_inotify_init1             (__NR_SYSCALL_BASE+360)
-#define __NR_preadv                    (__NR_SYSCALL_BASE+361)
-#define __NR_pwritev                   (__NR_SYSCALL_BASE+362)
-#define __NR_rt_tgsigqueueinfo         (__NR_SYSCALL_BASE+363)
-#define __NR_perf_event_open           (__NR_SYSCALL_BASE+364)
-#define __NR_recvmmsg                  (__NR_SYSCALL_BASE+365)
-#define __NR_accept4                   (__NR_SYSCALL_BASE+366)
-#define __NR_fanotify_init             (__NR_SYSCALL_BASE+367)
-#define __NR_fanotify_mark             (__NR_SYSCALL_BASE+368)
-#define __NR_prlimit64                 (__NR_SYSCALL_BASE+369)
-#define __NR_name_to_handle_at         (__NR_SYSCALL_BASE+370)
-#define __NR_open_by_handle_at         (__NR_SYSCALL_BASE+371)
-#define __NR_clock_adjtime             (__NR_SYSCALL_BASE+372)
-#define __NR_syncfs                    (__NR_SYSCALL_BASE+373)
-#define __NR_sendmmsg                  (__NR_SYSCALL_BASE+374)
-#define __NR_setns                     (__NR_SYSCALL_BASE+375)
-#define __NR_process_vm_readv          (__NR_SYSCALL_BASE+376)
-#define __NR_process_vm_writev         (__NR_SYSCALL_BASE+377)
-#define __NR_kcmp                      (__NR_SYSCALL_BASE+378)
-#define __NR_finit_module              (__NR_SYSCALL_BASE+379)
-#define __NR_sched_setattr             (__NR_SYSCALL_BASE+380)
-#define __NR_sched_getattr             (__NR_SYSCALL_BASE+381)
-#define __NR_renameat2                 (__NR_SYSCALL_BASE+382)
-#define __NR_seccomp                   (__NR_SYSCALL_BASE+383)
-#define __NR_getrandom                 (__NR_SYSCALL_BASE+384)
-#define __NR_memfd_create              (__NR_SYSCALL_BASE+385)
-#define __NR_bpf                       (__NR_SYSCALL_BASE+386)
-#define __NR_execveat                  (__NR_SYSCALL_BASE+387)
-#define __NR_userfaultfd               (__NR_SYSCALL_BASE+388)
-#define __NR_membarrier                        (__NR_SYSCALL_BASE+389)
-#define __NR_mlock2                    (__NR_SYSCALL_BASE+390)
-#define __NR_copy_file_range           (__NR_SYSCALL_BASE+391)
-#define __NR_preadv2                   (__NR_SYSCALL_BASE+392)
-#define __NR_pwritev2                  (__NR_SYSCALL_BASE+393)
-#define __NR_pkey_mprotect             (__NR_SYSCALL_BASE+394)
-#define __NR_pkey_alloc                        (__NR_SYSCALL_BASE+395)
-#define __NR_pkey_free                 (__NR_SYSCALL_BASE+396)
 
 /*
  * The following SWIs are ARM private.
 #define __ARM_NR_usr32                 (__ARM_NR_BASE+4)
 #define __ARM_NR_set_tls               (__ARM_NR_BASE+5)
 
-/*
- * The following syscalls are obsolete and no longer available for EABI.
- */
-#if !defined(__KERNEL__)
-#if defined(__ARM_EABI__)
-#undef __NR_time
-#undef __NR_umount
-#undef __NR_stime
-#undef __NR_alarm
-#undef __NR_utime
-#undef __NR_getrlimit
-#undef __NR_select
-#undef __NR_readdir
-#undef __NR_mmap
-#undef __NR_socketcall
-#undef __NR_syscall
-#undef __NR_ipc
-#endif
-#endif
-
 #endif /* _UAPI__ASM_ARM_UNISTD_H */
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S
deleted file mode 100644 (file)
index 08030b1..0000000
+++ /dev/null
@@ -1,415 +0,0 @@
-/*
- *  linux/arch/arm/kernel/calls.S
- *
- *  Copyright (C) 1995-2005 Russell King
- *
- * 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.
- *
- *  This file is included thrice in entry-common.S
- */
-/* 0 */                CALL(sys_restart_syscall)
-               CALL(sys_exit)
-               CALL(sys_fork)
-               CALL(sys_read)
-               CALL(sys_write)
-/* 5 */                CALL(sys_open)
-               CALL(sys_close)
-               CALL(sys_ni_syscall)            /* was sys_waitpid */
-               CALL(sys_creat)
-               CALL(sys_link)
-/* 10 */       CALL(sys_unlink)
-               CALL(sys_execve)
-               CALL(sys_chdir)
-               CALL(OBSOLETE(sys_time))        /* used by libc4 */
-               CALL(sys_mknod)
-/* 15 */       CALL(sys_chmod)
-               CALL(sys_lchown16)
-               CALL(sys_ni_syscall)            /* was sys_break */
-               CALL(sys_ni_syscall)            /* was sys_stat */
-               CALL(sys_lseek)
-/* 20 */       CALL(sys_getpid)
-               CALL(sys_mount)
-               CALL(OBSOLETE(sys_oldumount))   /* used by libc4 */
-               CALL(sys_setuid16)
-               CALL(sys_getuid16)
-/* 25 */       CALL(OBSOLETE(sys_stime))
-               CALL(sys_ptrace)
-               CALL(OBSOLETE(sys_alarm))       /* used by libc4 */
-               CALL(sys_ni_syscall)            /* was sys_fstat */
-               CALL(sys_pause)
-/* 30 */       CALL(OBSOLETE(sys_utime))       /* used by libc4 */
-               CALL(sys_ni_syscall)            /* was sys_stty */
-               CALL(sys_ni_syscall)            /* was sys_getty */
-               CALL(sys_access)
-               CALL(sys_nice)
-/* 35 */       CALL(sys_ni_syscall)            /* was sys_ftime */
-               CALL(sys_sync)
-               CALL(sys_kill)
-               CALL(sys_rename)
-               CALL(sys_mkdir)
-/* 40 */       CALL(sys_rmdir)
-               CALL(sys_dup)
-               CALL(sys_pipe)
-               CALL(sys_times)
-               CALL(sys_ni_syscall)            /* was sys_prof */
-/* 45 */       CALL(sys_brk)
-               CALL(sys_setgid16)
-               CALL(sys_getgid16)
-               CALL(sys_ni_syscall)            /* was sys_signal */
-               CALL(sys_geteuid16)
-/* 50 */       CALL(sys_getegid16)
-               CALL(sys_acct)
-               CALL(sys_umount)
-               CALL(sys_ni_syscall)            /* was sys_lock */
-               CALL(sys_ioctl)
-/* 55 */       CALL(sys_fcntl)
-               CALL(sys_ni_syscall)            /* was sys_mpx */
-               CALL(sys_setpgid)
-               CALL(sys_ni_syscall)            /* was sys_ulimit */
-               CALL(sys_ni_syscall)            /* was sys_olduname */
-/* 60 */       CALL(sys_umask)
-               CALL(sys_chroot)
-               CALL(sys_ustat)
-               CALL(sys_dup2)
-               CALL(sys_getppid)
-/* 65 */       CALL(sys_getpgrp)
-               CALL(sys_setsid)
-               CALL(sys_sigaction)
-               CALL(sys_ni_syscall)            /* was sys_sgetmask */
-               CALL(sys_ni_syscall)            /* was sys_ssetmask */
-/* 70 */       CALL(sys_setreuid16)
-               CALL(sys_setregid16)
-               CALL(sys_sigsuspend)
-               CALL(sys_sigpending)
-               CALL(sys_sethostname)
-/* 75 */       CALL(sys_setrlimit)
-               CALL(OBSOLETE(sys_old_getrlimit)) /* used by libc4 */
-               CALL(sys_getrusage)
-               CALL(sys_gettimeofday)
-               CALL(sys_settimeofday)
-/* 80 */       CALL(sys_getgroups16)
-               CALL(sys_setgroups16)
-               CALL(OBSOLETE(sys_old_select))  /* used by libc4 */
-               CALL(sys_symlink)
-               CALL(sys_ni_syscall)            /* was sys_lstat */
-/* 85 */       CALL(sys_readlink)
-               CALL(sys_uselib)
-               CALL(sys_swapon)
-               CALL(sys_reboot)
-               CALL(OBSOLETE(sys_old_readdir)) /* used by libc4 */
-/* 90 */       CALL(OBSOLETE(sys_old_mmap))    /* used by libc4 */
-               CALL(sys_munmap)
-               CALL(sys_truncate)
-               CALL(sys_ftruncate)
-               CALL(sys_fchmod)
-/* 95 */       CALL(sys_fchown16)
-               CALL(sys_getpriority)
-               CALL(sys_setpriority)
-               CALL(sys_ni_syscall)            /* was sys_profil */
-               CALL(sys_statfs)
-/* 100 */      CALL(sys_fstatfs)
-               CALL(sys_ni_syscall)            /* sys_ioperm */
-               CALL(OBSOLETE(ABI(sys_socketcall, sys_oabi_socketcall)))
-               CALL(sys_syslog)
-               CALL(sys_setitimer)
-/* 105 */      CALL(sys_getitimer)
-               CALL(sys_newstat)
-               CALL(sys_newlstat)
-               CALL(sys_newfstat)
-               CALL(sys_ni_syscall)            /* was sys_uname */
-/* 110 */      CALL(sys_ni_syscall)            /* was sys_iopl */
-               CALL(sys_vhangup)
-               CALL(sys_ni_syscall)
-               CALL(OBSOLETE(sys_syscall))     /* call a syscall */
-               CALL(sys_wait4)
-/* 115 */      CALL(sys_swapoff)
-               CALL(sys_sysinfo)
-               CALL(OBSOLETE(ABI(sys_ipc, sys_oabi_ipc)))
-               CALL(sys_fsync)
-               CALL(sys_sigreturn_wrapper)
-/* 120 */      CALL(sys_clone)
-               CALL(sys_setdomainname)
-               CALL(sys_newuname)
-               CALL(sys_ni_syscall)            /* modify_ldt */
-               CALL(sys_adjtimex)
-/* 125 */      CALL(sys_mprotect)
-               CALL(sys_sigprocmask)
-               CALL(sys_ni_syscall)            /* was sys_create_module */
-               CALL(sys_init_module)
-               CALL(sys_delete_module)
-/* 130 */      CALL(sys_ni_syscall)            /* was sys_get_kernel_syms */
-               CALL(sys_quotactl)
-               CALL(sys_getpgid)
-               CALL(sys_fchdir)
-               CALL(sys_bdflush)
-/* 135 */      CALL(sys_sysfs)
-               CALL(sys_personality)
-               CALL(sys_ni_syscall)            /* reserved for afs_syscall */
-               CALL(sys_setfsuid16)
-               CALL(sys_setfsgid16)
-/* 140 */      CALL(sys_llseek)
-               CALL(sys_getdents)
-               CALL(sys_select)
-               CALL(sys_flock)
-               CALL(sys_msync)
-/* 145 */      CALL(sys_readv)
-               CALL(sys_writev)
-               CALL(sys_getsid)
-               CALL(sys_fdatasync)
-               CALL(sys_sysctl)
-/* 150 */      CALL(sys_mlock)
-               CALL(sys_munlock)
-               CALL(sys_mlockall)
-               CALL(sys_munlockall)
-               CALL(sys_sched_setparam)
-/* 155 */      CALL(sys_sched_getparam)
-               CALL(sys_sched_setscheduler)
-               CALL(sys_sched_getscheduler)
-               CALL(sys_sched_yield)
-               CALL(sys_sched_get_priority_max)
-/* 160 */      CALL(sys_sched_get_priority_min)
-               CALL(sys_sched_rr_get_interval)
-               CALL(sys_nanosleep)
-               CALL(sys_mremap)
-               CALL(sys_setresuid16)
-/* 165 */      CALL(sys_getresuid16)
-               CALL(sys_ni_syscall)            /* vm86 */
-               CALL(sys_ni_syscall)            /* was sys_query_module */
-               CALL(sys_poll)
-               CALL(sys_ni_syscall)            /* was nfsservctl */
-/* 170 */      CALL(sys_setresgid16)
-               CALL(sys_getresgid16)
-               CALL(sys_prctl)
-               CALL(sys_rt_sigreturn_wrapper)
-               CALL(sys_rt_sigaction)
-/* 175 */      CALL(sys_rt_sigprocmask)
-               CALL(sys_rt_sigpending)
-               CALL(sys_rt_sigtimedwait)
-               CALL(sys_rt_sigqueueinfo)
-               CALL(sys_rt_sigsuspend)
-/* 180 */      CALL(ABI(sys_pread64, sys_oabi_pread64))
-               CALL(ABI(sys_pwrite64, sys_oabi_pwrite64))
-               CALL(sys_chown16)
-               CALL(sys_getcwd)
-               CALL(sys_capget)
-/* 185 */      CALL(sys_capset)
-               CALL(sys_sigaltstack)
-               CALL(sys_sendfile)
-               CALL(sys_ni_syscall)            /* getpmsg */
-               CALL(sys_ni_syscall)            /* putpmsg */
-/* 190 */      CALL(sys_vfork)
-               CALL(sys_getrlimit)
-               CALL(sys_mmap2)
-               CALL(ABI(sys_truncate64, sys_oabi_truncate64))
-               CALL(ABI(sys_ftruncate64, sys_oabi_ftruncate64))
-/* 195 */      CALL(ABI(sys_stat64, sys_oabi_stat64))
-               CALL(ABI(sys_lstat64, sys_oabi_lstat64))
-               CALL(ABI(sys_fstat64, sys_oabi_fstat64))
-               CALL(sys_lchown)
-               CALL(sys_getuid)
-/* 200 */      CALL(sys_getgid)
-               CALL(sys_geteuid)
-               CALL(sys_getegid)
-               CALL(sys_setreuid)
-               CALL(sys_setregid)
-/* 205 */      CALL(sys_getgroups)
-               CALL(sys_setgroups)
-               CALL(sys_fchown)
-               CALL(sys_setresuid)
-               CALL(sys_getresuid)
-/* 210 */      CALL(sys_setresgid)
-               CALL(sys_getresgid)
-               CALL(sys_chown)
-               CALL(sys_setuid)
-               CALL(sys_setgid)
-/* 215 */      CALL(sys_setfsuid)
-               CALL(sys_setfsgid)
-               CALL(sys_getdents64)
-               CALL(sys_pivot_root)
-               CALL(sys_mincore)
-/* 220 */      CALL(sys_madvise)
-               CALL(ABI(sys_fcntl64, sys_oabi_fcntl64))
-               CALL(sys_ni_syscall) /* TUX */
-               CALL(sys_ni_syscall)
-               CALL(sys_gettid)
-/* 225 */      CALL(ABI(sys_readahead, sys_oabi_readahead))
-               CALL(sys_setxattr)
-               CALL(sys_lsetxattr)
-               CALL(sys_fsetxattr)
-               CALL(sys_getxattr)
-/* 230 */      CALL(sys_lgetxattr)
-               CALL(sys_fgetxattr)
-               CALL(sys_listxattr)
-               CALL(sys_llistxattr)
-               CALL(sys_flistxattr)
-/* 235 */      CALL(sys_removexattr)
-               CALL(sys_lremovexattr)
-               CALL(sys_fremovexattr)
-               CALL(sys_tkill)
-               CALL(sys_sendfile64)
-/* 240 */      CALL(sys_futex)
-               CALL(sys_sched_setaffinity)
-               CALL(sys_sched_getaffinity)
-               CALL(sys_io_setup)
-               CALL(sys_io_destroy)
-/* 245 */      CALL(sys_io_getevents)
-               CALL(sys_io_submit)
-               CALL(sys_io_cancel)
-               CALL(sys_exit_group)
-               CALL(sys_lookup_dcookie)
-/* 250 */      CALL(sys_epoll_create)
-               CALL(ABI(sys_epoll_ctl, sys_oabi_epoll_ctl))
-               CALL(ABI(sys_epoll_wait, sys_oabi_epoll_wait))
-               CALL(sys_remap_file_pages)
-               CALL(sys_ni_syscall)    /* sys_set_thread_area */
-/* 255 */      CALL(sys_ni_syscall)    /* sys_get_thread_area */
-               CALL(sys_set_tid_address)
-               CALL(sys_timer_create)
-               CALL(sys_timer_settime)
-               CALL(sys_timer_gettime)
-/* 260 */      CALL(sys_timer_getoverrun)
-               CALL(sys_timer_delete)
-               CALL(sys_clock_settime)
-               CALL(sys_clock_gettime)
-               CALL(sys_clock_getres)
-/* 265 */      CALL(sys_clock_nanosleep)
-               CALL(sys_statfs64_wrapper)
-               CALL(sys_fstatfs64_wrapper)
-               CALL(sys_tgkill)
-               CALL(sys_utimes)
-/* 270 */      CALL(sys_arm_fadvise64_64)
-               CALL(sys_pciconfig_iobase)
-               CALL(sys_pciconfig_read)
-               CALL(sys_pciconfig_write)
-               CALL(sys_mq_open)
-/* 275 */      CALL(sys_mq_unlink)
-               CALL(sys_mq_timedsend)
-               CALL(sys_mq_timedreceive)
-               CALL(sys_mq_notify)
-               CALL(sys_mq_getsetattr)
-/* 280 */      CALL(sys_waitid)
-               CALL(sys_socket)
-               CALL(ABI(sys_bind, sys_oabi_bind))
-               CALL(ABI(sys_connect, sys_oabi_connect))
-               CALL(sys_listen)
-/* 285 */      CALL(sys_accept)
-               CALL(sys_getsockname)
-               CALL(sys_getpeername)
-               CALL(sys_socketpair)
-               CALL(sys_send)
-/* 290 */      CALL(ABI(sys_sendto, sys_oabi_sendto))
-               CALL(sys_recv)
-               CALL(sys_recvfrom)
-               CALL(sys_shutdown)
-               CALL(sys_setsockopt)
-/* 295 */      CALL(sys_getsockopt)
-               CALL(ABI(sys_sendmsg, sys_oabi_sendmsg))
-               CALL(sys_recvmsg)
-               CALL(ABI(sys_semop, sys_oabi_semop))
-               CALL(sys_semget)
-/* 300 */      CALL(sys_semctl)
-               CALL(sys_msgsnd)
-               CALL(sys_msgrcv)
-               CALL(sys_msgget)
-               CALL(sys_msgctl)
-/* 305 */      CALL(sys_shmat)
-               CALL(sys_shmdt)
-               CALL(sys_shmget)
-               CALL(sys_shmctl)
-               CALL(sys_add_key)
-/* 310 */      CALL(sys_request_key)
-               CALL(sys_keyctl)
-               CALL(ABI(sys_semtimedop, sys_oabi_semtimedop))
-/* vserver */  CALL(sys_ni_syscall)
-               CALL(sys_ioprio_set)
-/* 315 */      CALL(sys_ioprio_get)
-               CALL(sys_inotify_init)
-               CALL(sys_inotify_add_watch)
-               CALL(sys_inotify_rm_watch)
-               CALL(sys_mbind)
-/* 320 */      CALL(sys_get_mempolicy)
-               CALL(sys_set_mempolicy)
-               CALL(sys_openat)
-               CALL(sys_mkdirat)
-               CALL(sys_mknodat)
-/* 325 */      CALL(sys_fchownat)
-               CALL(sys_futimesat)
-               CALL(ABI(sys_fstatat64,  sys_oabi_fstatat64))
-               CALL(sys_unlinkat)
-               CALL(sys_renameat)
-/* 330 */      CALL(sys_linkat)
-               CALL(sys_symlinkat)
-               CALL(sys_readlinkat)
-               CALL(sys_fchmodat)
-               CALL(sys_faccessat)
-/* 335 */      CALL(sys_pselect6)
-               CALL(sys_ppoll)
-               CALL(sys_unshare)
-               CALL(sys_set_robust_list)
-               CALL(sys_get_robust_list)
-/* 340 */      CALL(sys_splice)
-               CALL(sys_sync_file_range2)
-               CALL(sys_tee)
-               CALL(sys_vmsplice)
-               CALL(sys_move_pages)
-/* 345 */      CALL(sys_getcpu)
-               CALL(sys_epoll_pwait)
-               CALL(sys_kexec_load)
-               CALL(sys_utimensat)
-               CALL(sys_signalfd)
-/* 350 */      CALL(sys_timerfd_create)
-               CALL(sys_eventfd)
-               CALL(sys_fallocate)
-               CALL(sys_timerfd_settime)
-               CALL(sys_timerfd_gettime)
-/* 355 */      CALL(sys_signalfd4)
-               CALL(sys_eventfd2)
-               CALL(sys_epoll_create1)
-               CALL(sys_dup3)
-               CALL(sys_pipe2)
-/* 360 */      CALL(sys_inotify_init1)
-               CALL(sys_preadv)
-               CALL(sys_pwritev)
-               CALL(sys_rt_tgsigqueueinfo)
-               CALL(sys_perf_event_open)
-/* 365 */      CALL(sys_recvmmsg)
-               CALL(sys_accept4)
-               CALL(sys_fanotify_init)
-               CALL(sys_fanotify_mark)
-               CALL(sys_prlimit64)
-/* 370 */      CALL(sys_name_to_handle_at)
-               CALL(sys_open_by_handle_at)
-               CALL(sys_clock_adjtime)
-               CALL(sys_syncfs)
-               CALL(sys_sendmmsg)
-/* 375 */      CALL(sys_setns)
-               CALL(sys_process_vm_readv)
-               CALL(sys_process_vm_writev)
-               CALL(sys_kcmp)
-               CALL(sys_finit_module)
-/* 380 */      CALL(sys_sched_setattr)
-               CALL(sys_sched_getattr)
-               CALL(sys_renameat2)
-               CALL(sys_seccomp)
-               CALL(sys_getrandom)
-/* 385 */      CALL(sys_memfd_create)
-               CALL(sys_bpf)
-               CALL(sys_execveat)
-               CALL(sys_userfaultfd)
-               CALL(sys_membarrier)
-/* 390 */      CALL(sys_mlock2)
-               CALL(sys_copy_file_range)
-               CALL(sys_preadv2)
-               CALL(sys_pwritev2)
-               CALL(sys_pkey_mprotect)
-/* 395 */      CALL(sys_pkey_alloc)
-               CALL(sys_pkey_free)
-#ifndef syscalls_counted
-.equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls
-#define syscalls_counted
-#endif
-.rept syscalls_padding
-               CALL(sys_ni_syscall)
-.endr
index 10c3283..eb5cd77 100644 (file)
 #include <asm/unistd.h>
 #include <asm/ftrace.h>
 #include <asm/unwind.h>
+#ifdef CONFIG_AEABI
+#include <asm/unistd-oabi.h>
+#endif
+
+       .equ    NR_syscalls, __NR_syscalls
 
 #ifdef CONFIG_NEED_RET_TO_USER
 #include <mach/entry-macro.S>
@@ -120,21 +125,6 @@ ENTRY(ret_from_fork)
        b       ret_slow_syscall
 ENDPROC(ret_from_fork)
 
-       .equ NR_syscalls,0
-#define CALL(x) .equ NR_syscalls,NR_syscalls+1
-#include "calls.S"
-
-/*
- * Ensure that the system call table is equal to __NR_syscalls,
- * which is the value the rest of the system sees
- */
-.ifne NR_syscalls - __NR_syscalls
-.error "__NR_syscalls is not equal to the size of the syscall table"
-.endif
-
-#undef CALL
-#define CALL(x) .long x
-
 /*=============================================================================
  * SWI handler
  *-----------------------------------------------------------------------------
@@ -291,22 +281,48 @@ __cr_alignment:
 #endif
        .ltorg
 
+       .macro  syscall_table_start, sym
+       .equ    __sys_nr, 0
+       .type   \sym, #object
+ENTRY(\sym)
+       .endm
+
+       .macro  syscall, nr, func
+       .ifgt   __sys_nr - \nr
+       .error  "Duplicated/unorded system call entry"
+       .endif
+       .rept   \nr - __sys_nr
+       .long   sys_ni_syscall
+       .endr
+       .long   \func
+       .equ    __sys_nr, \nr + 1
+       .endm
+
+       .macro  syscall_table_end, sym
+       .ifgt   __sys_nr - __NR_syscalls
+       .error  "System call table too big"
+       .endif
+       .rept   __NR_syscalls - __sys_nr
+       .long   sys_ni_syscall
+       .endr
+       .size   \sym, . - \sym
+       .endm
+
+#define NATIVE(nr, func) syscall nr, func
+
 /*
  * This is the syscall table declaration for native ABI syscalls.
  * With EABI a couple syscalls are obsolete and defined as sys_ni_syscall.
  */
-#define ABI(native, compat) native
+       syscall_table_start sys_call_table
+#define COMPAT(nr, native, compat) syscall nr, native
 #ifdef CONFIG_AEABI
-#define OBSOLETE(syscall) sys_ni_syscall
+#include <calls-eabi.S>
 #else
-#define OBSOLETE(syscall) syscall
+#include <calls-oabi.S>
 #endif
-
-       .type   sys_call_table, #object
-ENTRY(sys_call_table)
-#include "calls.S"
-#undef ABI
-#undef OBSOLETE
+#undef COMPAT
+       syscall_table_end sys_call_table
 
 /*============================================================================
  * Special system call wrappers
@@ -407,14 +423,10 @@ ENDPROC(sys_oabi_readahead)
  * Let's declare a second syscall table for old ABI binaries
  * using the compatibility syscall entries.
  */
-#define ABI(native, compat) compat
-#define OBSOLETE(syscall) syscall
-
-       .type   sys_oabi_call_table, #object
-ENTRY(sys_oabi_call_table)
-#include "calls.S"
-#undef ABI
-#undef OBSOLETE
+       syscall_table_start sys_oabi_call_table
+#define COMPAT(nr, native, compat) syscall nr, compat
+#include <calls-oabi.S>
+       syscall_table_end sys_oabi_call_table
 
 #endif
 
index ec279d1..ebf47d9 100644 (file)
@@ -12,6 +12,7 @@
  */
 
 #include <linux/cpu.h>
+#include <linux/cpufreq.h>
 #include <linux/cpumask.h>
 #include <linux/export.h>
 #include <linux/init.h>
@@ -21,7 +22,9 @@
 #include <linux/of.h>
 #include <linux/sched.h>
 #include <linux/slab.h>
+#include <linux/string.h>
 
+#include <asm/cpu.h>
 #include <asm/cputype.h>
 #include <asm/topology.h>
 
@@ -41,6 +44,7 @@
  * updated during this sequence.
  */
 static DEFINE_PER_CPU(unsigned long, cpu_scale) = SCHED_CAPACITY_SCALE;
+static DEFINE_MUTEX(cpu_scale_mutex);
 
 unsigned long arch_scale_cpu_capacity(struct sched_domain *sd, int cpu)
 {
@@ -52,6 +56,65 @@ static void set_capacity_scale(unsigned int cpu, unsigned long capacity)
        per_cpu(cpu_scale, cpu) = capacity;
 }
 
+#ifdef CONFIG_PROC_SYSCTL
+static ssize_t cpu_capacity_show(struct device *dev,
+                                struct device_attribute *attr,
+                                char *buf)
+{
+       struct cpu *cpu = container_of(dev, struct cpu, dev);
+
+       return sprintf(buf, "%lu\n",
+                       arch_scale_cpu_capacity(NULL, cpu->dev.id));
+}
+
+static ssize_t cpu_capacity_store(struct device *dev,
+                                 struct device_attribute *attr,
+                                 const char *buf,
+                                 size_t count)
+{
+       struct cpu *cpu = container_of(dev, struct cpu, dev);
+       int this_cpu = cpu->dev.id, i;
+       unsigned long new_capacity;
+       ssize_t ret;
+
+       if (count) {
+               ret = kstrtoul(buf, 0, &new_capacity);
+               if (ret)
+                       return ret;
+               if (new_capacity > SCHED_CAPACITY_SCALE)
+                       return -EINVAL;
+
+               mutex_lock(&cpu_scale_mutex);
+               for_each_cpu(i, &cpu_topology[this_cpu].core_sibling)
+                       set_capacity_scale(i, new_capacity);
+               mutex_unlock(&cpu_scale_mutex);
+       }
+
+       return count;
+}
+
+static DEVICE_ATTR_RW(cpu_capacity);
+
+static int register_cpu_capacity_sysctl(void)
+{
+       int i;
+       struct device *cpu;
+
+       for_each_possible_cpu(i) {
+               cpu = get_cpu_device(i);
+               if (!cpu) {
+                       pr_err("%s: too early to get CPU%d device!\n",
+                              __func__, i);
+                       continue;
+               }
+               device_create_file(cpu, &dev_attr_cpu_capacity);
+       }
+
+       return 0;
+}
+subsys_initcall(register_cpu_capacity_sysctl);
+#endif
+
 #ifdef CONFIG_OF
 struct cpu_efficiency {
        const char *compatible;
@@ -78,6 +141,146 @@ static unsigned long *__cpu_capacity;
 #define cpu_capacity(cpu)      __cpu_capacity[cpu]
 
 static unsigned long middle_capacity = 1;
+static bool cap_from_dt = true;
+static u32 *raw_capacity;
+static bool cap_parsing_failed;
+static u32 capacity_scale;
+
+static int __init parse_cpu_capacity(struct device_node *cpu_node, int cpu)
+{
+       int ret = 1;
+       u32 cpu_capacity;
+
+       if (cap_parsing_failed)
+               return !ret;
+
+       ret = of_property_read_u32(cpu_node,
+                                  "capacity-dmips-mhz",
+                                  &cpu_capacity);
+       if (!ret) {
+               if (!raw_capacity) {
+                       raw_capacity = kcalloc(num_possible_cpus(),
+                                              sizeof(*raw_capacity),
+                                              GFP_KERNEL);
+                       if (!raw_capacity) {
+                               pr_err("cpu_capacity: failed to allocate memory for raw capacities\n");
+                               cap_parsing_failed = true;
+                               return !ret;
+                       }
+               }
+               capacity_scale = max(cpu_capacity, capacity_scale);
+               raw_capacity[cpu] = cpu_capacity;
+               pr_debug("cpu_capacity: %s cpu_capacity=%u (raw)\n",
+                       cpu_node->full_name, raw_capacity[cpu]);
+       } else {
+               if (raw_capacity) {
+                       pr_err("cpu_capacity: missing %s raw capacity\n",
+                               cpu_node->full_name);
+                       pr_err("cpu_capacity: partial information: fallback to 1024 for all CPUs\n");
+               }
+               cap_parsing_failed = true;
+               kfree(raw_capacity);
+       }
+
+       return !ret;
+}
+
+static void normalize_cpu_capacity(void)
+{
+       u64 capacity;
+       int cpu;
+
+       if (!raw_capacity || cap_parsing_failed)
+               return;
+
+       pr_debug("cpu_capacity: capacity_scale=%u\n", capacity_scale);
+       mutex_lock(&cpu_scale_mutex);
+       for_each_possible_cpu(cpu) {
+               capacity = (raw_capacity[cpu] << SCHED_CAPACITY_SHIFT)
+                       / capacity_scale;
+               set_capacity_scale(cpu, capacity);
+               pr_debug("cpu_capacity: CPU%d cpu_capacity=%lu\n",
+                       cpu, arch_scale_cpu_capacity(NULL, cpu));
+       }
+       mutex_unlock(&cpu_scale_mutex);
+}
+
+#ifdef CONFIG_CPU_FREQ
+static cpumask_var_t cpus_to_visit;
+static bool cap_parsing_done;
+static void parsing_done_workfn(struct work_struct *work);
+static DECLARE_WORK(parsing_done_work, parsing_done_workfn);
+
+static int
+init_cpu_capacity_callback(struct notifier_block *nb,
+                          unsigned long val,
+                          void *data)
+{
+       struct cpufreq_policy *policy = data;
+       int cpu;
+
+       if (cap_parsing_failed || cap_parsing_done)
+               return 0;
+
+       switch (val) {
+       case CPUFREQ_NOTIFY:
+               pr_debug("cpu_capacity: init cpu capacity for CPUs [%*pbl] (to_visit=%*pbl)\n",
+                               cpumask_pr_args(policy->related_cpus),
+                               cpumask_pr_args(cpus_to_visit));
+               cpumask_andnot(cpus_to_visit,
+                              cpus_to_visit,
+                              policy->related_cpus);
+               for_each_cpu(cpu, policy->related_cpus) {
+                       raw_capacity[cpu] = arch_scale_cpu_capacity(NULL, cpu) *
+                                           policy->cpuinfo.max_freq / 1000UL;
+                       capacity_scale = max(raw_capacity[cpu], capacity_scale);
+               }
+               if (cpumask_empty(cpus_to_visit)) {
+                       normalize_cpu_capacity();
+                       kfree(raw_capacity);
+                       pr_debug("cpu_capacity: parsing done\n");
+                       cap_parsing_done = true;
+                       schedule_work(&parsing_done_work);
+               }
+       }
+       return 0;
+}
+
+static struct notifier_block init_cpu_capacity_notifier = {
+       .notifier_call = init_cpu_capacity_callback,
+};
+
+static int __init register_cpufreq_notifier(void)
+{
+       if (cap_parsing_failed)
+               return -EINVAL;
+
+       if (!alloc_cpumask_var(&cpus_to_visit, GFP_KERNEL)) {
+               pr_err("cpu_capacity: failed to allocate memory for cpus_to_visit\n");
+               return -ENOMEM;
+       }
+       cpumask_copy(cpus_to_visit, cpu_possible_mask);
+
+       return cpufreq_register_notifier(&init_cpu_capacity_notifier,
+                                        CPUFREQ_POLICY_NOTIFIER);
+}
+core_initcall(register_cpufreq_notifier);
+
+static void parsing_done_workfn(struct work_struct *work)
+{
+       cpufreq_unregister_notifier(&init_cpu_capacity_notifier,
+                                        CPUFREQ_POLICY_NOTIFIER);
+}
+
+#else
+static int __init free_raw_capacity(void)
+{
+       kfree(raw_capacity);
+
+       return 0;
+}
+core_initcall(free_raw_capacity);
+#endif
 
 /*
  * Iterate all CPUs' descriptor in DT and compute the efficiency
@@ -99,6 +302,12 @@ static void __init parse_dt_topology(void)
        __cpu_capacity = kcalloc(nr_cpu_ids, sizeof(*__cpu_capacity),
                                 GFP_NOWAIT);
 
+       cn = of_find_node_by_path("/cpus");
+       if (!cn) {
+               pr_err("No CPU information found in DT\n");
+               return;
+       }
+
        for_each_possible_cpu(cpu) {
                const u32 *rate;
                int len;
@@ -110,6 +319,13 @@ static void __init parse_dt_topology(void)
                        continue;
                }
 
+               if (parse_cpu_capacity(cn, cpu)) {
+                       of_node_put(cn);
+                       continue;
+               }
+
+               cap_from_dt = false;
+
                for (cpu_eff = table_efficiency; cpu_eff->compatible; cpu_eff++)
                        if (of_device_is_compatible(cn, cpu_eff->compatible))
                                break;
@@ -151,6 +367,8 @@ static void __init parse_dt_topology(void)
                middle_capacity = ((max_capacity / 3)
                                >> (SCHED_CAPACITY_SHIFT-1)) + 1;
 
+       if (cap_from_dt && !cap_parsing_failed)
+               normalize_cpu_capacity();
 }
 
 /*
@@ -160,7 +378,7 @@ static void __init parse_dt_topology(void)
  */
 static void update_cpu_capacity(unsigned int cpu)
 {
-       if (!cpu_capacity(cpu))
+       if (!cpu_capacity(cpu) || cap_from_dt)
                return;
 
        set_capacity_scale(cpu, cpu_capacity(cpu) / middle_capacity);
index 792c59d..c766694 100644 (file)
 .LC1:          .word   UDELAY_MULT
 
 /*
+ * loops = r0 * HZ * loops_per_jiffy / 1000000
+ *
  * r0  <= 2000
  * HZ  <= 1000
  */
 
 ENTRY(__loop_udelay)
                ldr     r2, .LC1
-               mul     r0, r2, r0
-ENTRY(__loop_const_udelay)                     @ 0 <= r0 <= 0x7fffff06
+               mul     r0, r2, r0              @ r0 = delay_us * UDELAY_MULT
+ENTRY(__loop_const_udelay)                     @ 0 <= r0 <= 0xfffffaf0
                ldr     r2, .LC0
                ldr     r2, [r2]
-               umull   r1, r0, r2, r0
-               adds    r1, r1, #0xffffffff
-               adcs    r0, r0, r0
+               umull   r1, r0, r2, r0          @ r0-r1 = r0 * loops_per_jiffy
+               adds    r1, r1, #0xffffffff     @ rounding up ...
+               adcs    r0, r0, r0              @ and right shift by 31
                reteq   lr
 
-/*
- * loops = r0 * HZ * loops_per_jiffy / 1000000
- */
                .align 3
 
 @ Delay routine
diff --git a/arch/arm/mach-sa1100/include/mach/SA-1101.h b/arch/arm/mach-sa1100/include/mach/SA-1101.h
deleted file mode 100644 (file)
index 5d2ad7d..0000000
+++ /dev/null
@@ -1,925 +0,0 @@
-/*
- * SA-1101.h
- *
- * Copyright (c) Peter Danielsson 1999
- *
- * Definition of constants related to the sa1101
- * support chip for the sa1100
- *
- */
-
-
-/* Be sure that virtual mapping is defined right */
-#ifndef __ASM_ARCH_HARDWARE_H
-#error You must include hardware.h not SA-1101.h
-#endif
-
-#ifndef SA1101_BASE
-#error You must define SA-1101 physical base address
-#endif
-
-#ifndef LANGUAGE
-# ifdef __ASSEMBLY__
-#  define LANGUAGE Assembly
-# else
-#  define LANGUAGE C
-# endif
-#endif
-
-/*
- * We have mapped the sa1101 depending on the value of SA1101_BASE.
- * It then appears from 0xf4000000.
- */
-
-#define SA1101_p2v( x )         ((x) - SA1101_BASE + 0xf4000000)
-#define SA1101_v2p( x )         ((x) - 0xf4000000  + SA1101_BASE)
-
-#ifndef SA1101_p2v
-#define SA1101_p2v(PhAdd)  (PhAdd)
-#endif
-
-#include <mach/bitfield.h>
-
-#define C               0
-#define Assembly        1
-
-
-/*
- * Memory map
- */
-
-#define __SHMEM_CONTROL0       0x00000000
-#define __SYSTEM_CONTROL1      0x00000400
-#define __ARBITER              0x00020000
-#define __SYSTEM_CONTROL2      0x00040000
-#define __SYSTEM_CONTROL3      0x00060000
-#define __PARALLEL_PORT                0x00080000
-#define __VIDMEM_CONTROL       0x00100000
-#define __UPDATE_FIFO          0x00120000
-#define __SHMEM_CONTROL1       0x00140000
-#define __INTERRUPT_CONTROL    0x00160000
-#define __USB_CONTROL          0x00180000
-#define __TRACK_INTERFACE      0x001a0000
-#define __MOUSE_INTERFACE      0x001b0000
-#define __KEYPAD_INTERFACE     0x001c0000
-#define __PCMCIA_INTERFACE     0x001e0000
-#define        __VGA_CONTROL           0x00200000
-#define __GPIO_INTERFACE       0x00300000
-
-/*
- * Macro that calculates real address for registers in the SA-1101
- */
-
-#define _SA1101( x )    ((x) + SA1101_BASE)
-
-/*
- * Interface and shared memory controller registers
- *
- * Registers
- *     SKCR            SA-1101 control register (read/write)
- *     SMCR            Shared Memory Controller Register
- *     SNPR            Snoop Register
- */
-
-#define _SKCR          _SA1101( 0x00000000 ) /* SA-1101 Control Reg. */
-#define _SMCR          _SA1101( 0x00140000 ) /* Shared Mem. Control Reg. */
-#define _SNPR          _SA1101( 0x00140400 ) /* Snoop Reg. */
-
-#if LANGUAGE == C
-#define SKCR           (*((volatile Word *) SA1101_p2v (_SKCR)))
-#define SMCR           (*((volatile Word *) SA1101_p2v (_SMCR)))
-#define SNPR           (*((volatile Word *) SA1101_p2v (_SNPR)))
-
-#define SKCR_PLLEn       0x0001          /* Enable On-Chip PLL */
-#define SKCR_BCLKEn      0x0002          /* Enables BCLK */
-#define SKCR_Sleep       0x0004          /* Sleep Mode */
-#define SKCR_IRefEn      0x0008          /* DAC Iref input enable */
-#define SKCR_VCOON       0x0010          /* VCO bias */
-#define SKCR_ScanTestEn          0x0020          /* Enables scan test */
-#define SKCR_ClockTestEn  0x0040         /* Enables clock test */
-
-#define SMCR_DCAC        Fld(2,0)        /* Number of column address bits */
-#define SMCR_DRAC        Fld(2,2)        /* Number of row address bits */
-#define SMCR_ArbiterBias  0x0008         /* favor video or USB */
-#define SMCR_TopVidMem   Fld(4,5)        /* Top 4 bits of vidmem addr. */
-
-#define SMCR_ColAdrBits( x )             /* col. addr bits 8..11 */ \
-       (( (x) - 8 ) << FShft (SMCR_DCAC))
-#define SMCR_RowAdrBits( x )             /* row addr bits 9..12 */\
-       (( (x) - 9 ) << FShft (SMCR_DRAC))
-
-#define SNPR_VFBstart    Fld(12,0)     /* Video frame buffer addr */
-#define SNPR_VFBsize     Fld(11,12)    /* Video frame buffer size */
-#define SNPR_WholeBank   (1 << 23)     /* Whole bank bit */
-#define SNPR_BankSelect          Fld(2,27)     /* Bank select */
-#define SNPR_SnoopEn     (1 << 31)     /* Enable snoop operation */
-
-#define SNPR_Set_VFBsize( x )   /* set frame buffer size (in kb) */ \
-       ( (x) << FShft (SNPR_VFBsize))
-#define SNPR_Select_Bank(x)     /* select bank 0 or 1 */  \
-       (( (x) + 1 ) << FShft (SNPR_BankSelect ))
-
-#endif /* LANGUAGE == C */
-
-/*
- * Video Memory Controller
- *
- * Registers
- *    VMCCR    Configuration register
- *    VMCAR    VMC address register
- *    VMCDR    VMC data register
- *
- */
-
-#define _VMCCR         _SA1101( 0x00100000 )   /* Configuration register */
-#define _VMCAR         _SA1101( 0x00101000 )   /* VMC address register */
-#define _VMCDR         _SA1101( 0x00101400 )   /* VMC data register */
-
-#if LANGUAGE == C
-#define VMCCR          (*((volatile Word *) SA1101_p2v (_VMCCR)))
-#define VMCAR          (*((volatile Word *) SA1101_p2v (_VMCAR)))
-#define VMCDR          (*((volatile Word *) SA1101_p2v (_VMCDR)))
-
-#define VMCCR_RefreshEn            0x0000        /* Enable memory refresh */
-#define VMCCR_Config       0x0001        /* DRAM size */
-#define VMCCR_RefPeriod            Fld(2,3)      /* Refresh period */
-#define VMCCR_StaleDataWait Fld(4,5)     /* Stale FIFO data timeout counter */
-#define VMCCR_SleepState    (1<<9)       /* State of interface pins in sleep*/
-#define VMCCR_RefTest      (1<<10)       /* refresh test */
-#define VMCCR_RefLow       Fld(6,11)     /* refresh low counter */
-#define VMCCR_RefHigh      Fld(7,17)     /* refresh high counter */
-#define VMCCR_SDTCTest     Fld(7,24)     /* stale data timeout counter */
-#define VMCCR_ForceSelfRef  (1<<31)      /* Force self refresh */
-
-#endif LANGUAGE == C
-
-
-/* Update FIFO
- *
- * Registers
- *    UFCR     Update FIFO Control Register
- *    UFSR     Update FIFO Status Register
- *    UFLVLR   update FIFO level register
- *    UFDR     update FIFO data register
- */
-
-#define _UFCR  _SA1101(0x00120000)   /* Update FIFO Control Reg. */
-#define _UFSR  _SA1101(0x00120400)   /* Update FIFO Status Reg. */     
-#define _UFLVLR        _SA1101(0x00120800)   /* Update FIFO level reg. */
-#define _UFDR  _SA1101(0x00120c00)   /* Update FIFO data reg. */
-
-#if LANGUAGE == C
-
-#define UFCR   (*((volatile Word *) SA1101_p2v (_UFCR)))
-#define UFSR   (*((volatile Word *) SA1101_p2v (_UFSR)))
-#define UFLVLR (*((volatile Word *) SA1101_p2v (_UFLVLR))) 
-#define UFDR   (*((volatile Word *) SA1101_p2v (_UFDR)))
-
-
-#define UFCR_FifoThreshhold    Fld(7,0)        /* Level for FifoGTn flag */
-
-#define UFSR_FifoGTnFlag       0x01            /* FifoGTn flag */#define UFSR_FifoEmpty                0x80            /* FIFO is empty */
-
-#endif /* LANGUAGE == C */
-
-/* System Controller
- *
- * Registers
- *    SKPCR    Power Control Register
- *    SKCDR    Clock Divider Register
- *    DACDR1   DAC1 Data register
- *    DACDR2   DAC2 Data register
- */
-
-#define _SKPCR         _SA1101(0x00000400)
-#define _SKCDR         _SA1101(0x00040000)
-#define _DACDR1                _SA1101(0x00060000)
-#define _DACDR2                _SA1101(0x00060400)
-
-#if LANGUAGE == C
-#define SKPCR  (*((volatile Word *) SA1101_p2v (_SKPCR)))
-#define SKCDR  (*((volatile Word *) SA1101_p2v (_SKCDR)))
-#define DACDR1 (*((volatile Word *) SA1101_p2v (_DACDR1)))
-#define DACDR2 (*((volatile Word *) SA1101_p2v (_DACDR2)))
-
-#define SKPCR_UCLKEn        0x01    /* USB Enable */
-#define SKPCR_PCLKEn        0x02    /* PS/2 Enable */
-#define SKPCR_ICLKEn        0x04    /* Interrupt Controller Enable */
-#define SKPCR_VCLKEn        0x08    /* Video Controller Enable */
-#define SKPCR_PICLKEn       0x10    /* parallel port Enable */
-#define SKPCR_DCLKEn        0x20    /* DACs Enable */
-#define SKPCR_nKPADEn       0x40    /* Multiplexer */
-
-#define SKCDR_PLLMul        Fld(7,0)   /* PLL Multiplier */
-#define SKCDR_VCLKEn        Fld(2,7)   /* Video controller clock divider */
-#define SKDCR_BCLKEn        (1<<9)     /* BCLK Divider */
-#define SKDCR_UTESTCLKEn     (1<<10)   /* Route USB clock during test mode */
-#define SKDCR_DivRValue             Fld(6,11)  /* Input clock divider for PLL */
-#define SKDCR_DivNValue             Fld(5,17)  /* Output clock divider for PLL */
-#define SKDCR_PLLRSH        Fld(3,22)  /* PLL bandwidth control */
-#define SKDCR_ChargePump     (1<<25)   /* Charge pump control */
-#define SKDCR_ClkTestMode    (1<<26)   /* Clock output test mode */
-#define SKDCR_ClkTestEn             (1<<27)    /* Test clock generator */
-#define SKDCR_ClkJitterCntl  Fld(3,28) /* video clock jitter compensation */
-
-#define DACDR_DACCount      Fld(8,0)   /* Count value */
-#define DACDR1_DACCount             DACDR_DACCount
-#define DACDR2_DACCount             DACDR_DACCount
-
-#endif /* LANGUAGE == C */
-
-/*
- * Parallel Port Interface
- *
- * Registers
- *    IEEE_Config      IEEE mode selection and programmable attributes
- *    IEEE_Control     Controls the states of IEEE port control outputs
- *    IEEE_Data                Forward transfer data register
- *    IEEE_Addr                Forward transfer address register
- *    IEEE_Status      Port IO signal status register
- *    IEEE_IntStatus   Port interrupts status register
- *    IEEE_FifoLevels   Rx and Tx FIFO interrupt generation levels
- *    IEEE_InitTime    Forward timeout counter initial value
- *    IEEE_TimerStatus Forward timeout counter current value
- *    IEEE_FifoReset   Reset forward transfer FIFO
- *    IEEE_ReloadValue Counter reload value
- *    IEEE_TestControl Control testmode
- *    IEEE_TestDataIn  Test data register
- *    IEEE_TestDataInEn        Enable test data
- *    IEEE_TestCtrlIn  Test control signals
- *    IEEE_TestCtrlInEn        Enable test control signals
- *    IEEE_TestDataStat        Current data bus value
- *
- */
-
-/*
- * The control registers are defined as offsets from a base address 
- */
-#define _IEEE( x ) _SA1101( (x) + __PARALLEL_PORT )
-
-#define _IEEE_Config       _IEEE( 0x0000 )
-#define _IEEE_Control      _IEEE( 0x0400 )
-#define _IEEE_Data         _IEEE( 0x4000 )
-#define _IEEE_Addr         _IEEE( 0x0800 )
-#define _IEEE_Status       _IEEE( 0x0c00 )
-#define _IEEE_IntStatus            _IEEE( 0x1000 )
-#define _IEEE_FifoLevels    _IEEE( 0x1400 )
-#define _IEEE_InitTime     _IEEE( 0x1800 )
-#define _IEEE_TimerStatus   _IEEE( 0x1c00 )
-#define _IEEE_FifoReset            _IEEE( 0x2000 )
-#define _IEEE_ReloadValue   _IEEE( 0x3c00 )
-#define _IEEE_TestControl   _IEEE( 0x2400 )
-#define _IEEE_TestDataIn    _IEEE( 0x2800 )
-#define _IEEE_TestDataInEn  _IEEE( 0x2c00 )
-#define _IEEE_TestCtrlIn    _IEEE( 0x3000 )
-#define _IEEE_TestCtrlInEn  _IEEE( 0x3400 )
-#define _IEEE_TestDataStat  _IEEE( 0x3800 )
-
-#if LANGUAGE == C
-#define IEEE_Config        (*((volatile Word *) SA1101_p2v (_IEEE_Config)))
-#define IEEE_Control       (*((volatile Word *) SA1101_p2v (_IEEE_Control)))
-#define IEEE_Data          (*((volatile Word *) SA1101_p2v (_IEEE_Data)))
-#define IEEE_Addr          (*((volatile Word *) SA1101_p2v (_IEEE_Addr)))
-#define IEEE_Status        (*((volatile Word *) SA1101_p2v (_IEEE_Status)))
-#define IEEE_IntStatus     (*((volatile Word *) SA1101_p2v (_IEEE_IntStatus)))
-#define IEEE_FifoLevels            (*((volatile Word *) SA1101_p2v (_IEEE_FifoLevels)))
-#define IEEE_InitTime      (*((volatile Word *) SA1101_p2v (_IEEE_InitTime)))
-#define IEEE_TimerStatus    (*((volatile Word *) SA1101_p2v (_IEEE_TimerStatus)))
-#define IEEE_FifoReset     (*((volatile Word *) SA1101_p2v (_IEEE_FifoReset)))
-#define IEEE_ReloadValue    (*((volatile Word *) SA1101_p2v (_IEEE_ReloadValue)))
-#define IEEE_TestControl    (*((volatile Word *) SA1101_p2v (_IEEE_TestControl)))
-#define IEEE_TestDataIn     (*((volatile Word *) SA1101_p2v (_IEEE_TestDataIn)))
-#define IEEE_TestDataInEn   (*((volatile Word *) SA1101_p2v (_IEEE_TestDataInEn)))
-#define IEEE_TestCtrlIn     (*((volatile Word *) SA1101_p2v (_IEEE_TestCtrlIn)))
-#define IEEE_TestCtrlInEn   (*((volatile Word *) SA1101_p2v (_IEEE_TestCtrlInEn)))
-#define IEEE_TestDataStat   (*((volatile Word *) SA1101_p2v (_IEEE_TestDataStat)))
-
-
-#define IEEE_Config_M      Fld(3,0)     /* Mode select */
-#define IEEE_Config_D      0x04         /* FIFO access enable */
-#define IEEE_Config_B      0x08         /* 9-bit word enable */
-#define IEEE_Config_T      0x10         /* Data transfer enable */
-#define IEEE_Config_A      0x20         /* Data transfer direction */
-#define IEEE_Config_E      0x40         /* Timer enable */
-#define IEEE_Control_A     0x08         /* AutoFd output */
-#define IEEE_Control_E     0x04         /* Selectin output */
-#define IEEE_Control_T     0x02         /* Strobe output */
-#define IEEE_Control_I     0x01         /* Port init output */
-#define IEEE_Data_C        (1<<31)      /* Byte count */
-#define IEEE_Data_Db       Fld(9,16)    /* Data byte 2 */
-#define IEEE_Data_Da       Fld(9,0)     /* Data byte 1 */
-#define IEEE_Addr_A        Fld(8,0)     /* forward address transfer byte */
-#define IEEE_Status_A      0x0100       /* nAutoFd port output status */
-#define IEEE_Status_E      0x0080       /* nSelectIn port output status */
-#define IEEE_Status_T      0x0040       /* nStrobe port output status */
-#define IEEE_Status_I      0x0020       /* nInit port output status */
-#define IEEE_Status_B      0x0010       /* Busy port inout status */
-#define IEEE_Status_S      0x0008       /* Select port input status */
-#define IEEE_Status_K      0x0004       /* nAck port input status */
-#define IEEE_Status_F      0x0002       /* nFault port input status */
-#define IEEE_Status_R      0x0001       /* pError port input status */
-
-#define IEEE_IntStatus_IntReqDat        0x0100
-#define IEEE_IntStatus_IntReqEmp        0x0080
-#define IEEE_IntStatus_IntReqInt        0x0040
-#define IEEE_IntStatus_IntReqRav        0x0020
-#define IEEE_IntStatus_IntReqTim        0x0010
-#define IEEE_IntStatus_RevAddrComp      0x0008
-#define IEEE_IntStatus_RevDataComp      0x0004
-#define IEEE_IntStatus_FwdAddrComp      0x0002
-#define IEEE_IntStatus_FwdDataComp      0x0001
-#define IEEE_FifoLevels_RevFifoLevel    2
-#define IEEE_FifoLevels_FwdFifoLevel    1
-#define IEEE_InitTime_TimValInit        Fld(22,0)
-#define IEEE_TimerStatus_TimValStat     Fld(22,0)
-#define IEEE_ReloadValue_Reload                 Fld(4,0)
-
-#define IEEE_TestControl_RegClk                 0x04
-#define IEEE_TestControl_ClockSelect    Fld(2,1)
-#define IEEE_TestControl_TimerTestModeEn 0x01
-#define IEEE_TestCtrlIn_PError          0x10
-#define IEEE_TestCtrlIn_nFault          0x08
-#define IEEE_TestCtrlIn_nAck            0x04
-#define IEEE_TestCtrlIn_PSel            0x02
-#define IEEE_TestCtrlIn_Busy            0x01
-
-#endif /* LANGUAGE == C */
-
-/*
- * VGA Controller
- *
- * Registers
- *    VideoControl     Video Control Register
- *    VgaTiming0       VGA Timing Register 0
- *    VgaTiming1       VGA Timing Register 1
- *    VgaTiming2       VGA Timing Register 2
- *    VgaTiming3       VGA Timing Register 3
- *    VgaBorder                VGA Border Color Register
- *    VgaDBAR          VGADMA Base Address Register
- *    VgaDCAR          VGADMA Channel Current Address Register
- *    VgaStatus                VGA Status Register
- *    VgaInterruptMask VGA Interrupt Mask Register
- *    VgaPalette       VGA Palette Registers
- *    DacControl       DAC Control Register
- *    VgaTest          VGA Controller Test Register
- */
-
-#define _VGA( x )      _SA1101( ( x ) + __VGA_CONTROL )
-
-#define _VideoControl      _VGA( 0x0000 )
-#define _VgaTiming0        _VGA( 0x0400 )
-#define _VgaTiming1        _VGA( 0x0800 )
-#define _VgaTiming2        _VGA( 0x0c00 )
-#define _VgaTiming3        _VGA( 0x1000 )
-#define _VgaBorder         _VGA( 0x1400 )
-#define _VgaDBAR           _VGA( 0x1800 )
-#define _VgaDCAR           _VGA( 0x1c00 )
-#define _VgaStatus         _VGA( 0x2000 )
-#define _VgaInterruptMask   _VGA( 0x2400 )
-#define _VgaPalette        _VGA( 0x40000 )
-#define _DacControl        _VGA( 0x3000 )
-#define _VgaTest           _VGA( 0x2c00 )
-
-#if (LANGUAGE == C)
-#define VideoControl   (*((volatile Word *) SA1101_p2v (_VideoControl)))
-#define VgaTiming0     (*((volatile Word *) SA1101_p2v (_VgaTiming0)))
-#define VgaTiming1     (*((volatile Word *) SA1101_p2v (_VgaTiming1)))
-#define VgaTiming2     (*((volatile Word *) SA1101_p2v (_VgaTiming2)))
-#define VgaTiming3     (*((volatile Word *) SA1101_p2v (_VgaTiming3)))
-#define VgaBorder      (*((volatile Word *) SA1101_p2v (_VgaBorder)))
-#define VgaDBAR               (*((volatile Word *) SA1101_p2v (_VgaDBAR)))
-#define VgaDCAR               (*((volatile Word *) SA1101_p2v (_VgaDCAR)))
-#define VgaStatus      (*((volatile Word *) SA1101_p2v (_VgaStatus)))
-#define VgaInterruptMask (*((volatile Word *) SA1101_p2v (_VgaInterruptMask)))
-#define VgaPalette     (*((volatile Word *) SA1101_p2v (_VgaPalette)))
-#define DacControl     (*((volatile Word *) SA1101_p2v (_DacControl)))
-#define VgaTest        (*((volatile Word *) SA1101_p2v (_VgaTest)))
-
-#define VideoControl_VgaEn    0x00000000
-#define VideoControl_BGR      0x00000001
-#define VideoControl_VCompVal Fld(2,2)
-#define VideoControl_VgaReq   Fld(4,4)
-#define VideoControl_VBurstL  Fld(4,8)
-#define VideoControl_VMode    (1<<12)
-#define VideoControl_PalRead  (1<<13)
-
-#define VgaTiming0_PPL       Fld(6,2)
-#define VgaTiming0_HSW       Fld(8,8)
-#define VgaTiming0_HFP       Fld(8,16)
-#define VgaTiming0_HBP       Fld(8,24)
-
-#define VgaTiming1_LPS       Fld(10,0)
-#define VgaTiming1_VSW       Fld(6,10)
-#define VgaTiming1_VFP       Fld(8,16)
-#define VgaTiming1_VBP       Fld(8,24)
-
-#define VgaTiming2_IVS       0x01
-#define VgaTiming2_IHS       0x02
-#define VgaTiming2_CVS       0x04
-#define VgaTiming2_CHS       0x08
-
-#define VgaTiming3_HBS       Fld(8,0)
-#define VgaTiming3_HBE       Fld(8,8)
-#define VgaTiming3_VBS       Fld(8,16)
-#define VgaTiming3_VBE       Fld(8,24)
-
-#define VgaBorder_BCOL       Fld(24,0)
-
-#define VgaStatus_VFUF       0x01
-#define VgaStatus_VNext              0x02
-#define VgaStatus_VComp              0x04
-
-#define VgaInterruptMask_VFUFMask   0x00
-#define VgaInterruptMask_VNextMask  0x01
-#define VgaInterruptMask_VCompMask  0x02
-
-#define VgaPalette_R         Fld(8,0)
-#define VgaPalette_G         Fld(8,8)
-#define VgaPalette_B         Fld(8,16)
-
-#define DacControl_DACON      0x0001
-#define DacControl_COMPON     0x0002
-#define DacControl_PEDON      0x0004
-#define DacControl_RTrim      Fld(5,4)
-#define DacControl_GTrim      Fld(5,9)
-#define DacControl_BTrim      Fld(5,14)
-
-#define VgaTest_TDAC         0x00
-#define VgaTest_Datatest      Fld(4,1)
-#define VgaTest_DACTESTDAC    0x10
-#define VgaTest_DACTESTOUT    Fld(3,5)
-
-#endif /* LANGUAGE == C */
-
-/*
- * USB Host Interface Controller
- *
- * Registers
- *    Revision
- *    Control
- *    CommandStatus
- *    InterruptStatus
- *    InterruptEnable
- *    HCCA
- *    PeriodCurrentED
- *    ControlHeadED
- *    BulkHeadED
- *    BulkCurrentED
- *    DoneHead
- *    FmInterval
- *    FmRemaining
- *    FmNumber
- *    PeriodicStart
- *    LSThreshold
- *    RhDescriptorA
- *    RhDescriptorB
- *    RhStatus
- *    RhPortStatus
- *    USBStatus
- *    USBReset
- *    USTAR
- *    USWER
- *    USRFR
- *    USNFR
- *    USTCSR
- *    USSR
- *    
- */
-
-#define _USB( x )      _SA1101( ( x ) + __USB_CONTROL )
-
-
-#define _Revision        _USB( 0x0000 )
-#define _Control         _USB( 0x0888 )
-#define _CommandStatus   _USB( 0x0c00 )
-#define _InterruptStatus  _USB( 0x1000 )
-#define _InterruptEnable  _USB( 0x1400 )
-#define _HCCA            _USB( 0x1800 )
-#define _PeriodCurrentED  _USB( 0x1c00 )
-#define _ControlHeadED   _USB( 0x2000 )
-#define _BulkHeadED      _USB( 0x2800 )
-#define _BulkCurrentED   _USB( 0x2c00 )
-#define _DoneHead        _USB( 0x3000 )
-#define _FmInterval      _USB( 0x3400 )
-#define _FmRemaining     _USB( 0x3800 )
-#define _FmNumber        _USB( 0x3c00 )
-#define _PeriodicStart   _USB( 0x4000 )
-#define _LSThreshold     _USB( 0x4400 )
-#define _RhDescriptorA   _USB( 0x4800 )
-#define _RhDescriptorB   _USB( 0x4c00 )
-#define _RhStatus        _USB( 0x5000 )
-#define _RhPortStatus    _USB( 0x5400 )
-#define _USBStatus       _USB( 0x11800 )
-#define _USBReset        _USB( 0x11c00 )
-
-#define _USTAR           _USB( 0x10400 )
-#define _USWER           _USB( 0x10800 )
-#define _USRFR           _USB( 0x10c00 )
-#define _USNFR           _USB( 0x11000 )
-#define _USTCSR                  _USB( 0x11400 )
-#define _USSR            _USB( 0x11800 )
-
-
-#if (LANGUAGE == C)
-
-#define Revision       (*((volatile Word *) SA1101_p2v (_Revision)))
-#define Control                (*((volatile Word *) SA1101_p2v (_Control)))
-#define CommandStatus  (*((volatile Word *) SA1101_p2v (_CommandStatus)))
-#define InterruptStatus        (*((volatile Word *) SA1101_p2v (_InterruptStatus)))
-#define InterruptEnable        (*((volatile Word *) SA1101_p2v (_InterruptEnable)))
-#define HCCA           (*((volatile Word *) SA1101_p2v (_HCCA)))
-#define PeriodCurrentED        (*((volatile Word *) SA1101_p2v (_PeriodCurrentED)))
-#define ControlHeadED  (*((volatile Word *) SA1101_p2v (_ControlHeadED)))
-#define BulkHeadED     (*((volatile Word *) SA1101_p2v (_BulkHeadED)))
-#define BulkCurrentED  (*((volatile Word *) SA1101_p2v (_BulkCurrentED)))
-#define DoneHead       (*((volatile Word *) SA1101_p2v (_DoneHead)))
-#define FmInterval     (*((volatile Word *) SA1101_p2v (_FmInterval)))
-#define FmRemaining    (*((volatile Word *) SA1101_p2v (_FmRemaining)))
-#define FmNumber       (*((volatile Word *) SA1101_p2v (_FmNumber)))
-#define PeriodicStart  (*((volatile Word *) SA1101_p2v (_PeriodicStart)))
-#define LSThreshold    (*((volatile Word *) SA1101_p2v (_LSThreshold)))
-#define RhDescriptorA  (*((volatile Word *) SA1101_p2v (_RhDescriptorA)))
-#define RhDescriptorB  (*((volatile Word *) SA1101_p2v (_RhDescriptorB)))
-#define RhStatus       (*((volatile Word *) SA1101_p2v (_RhStatus)))
-#define RhPortStatus   (*((volatile Word *) SA1101_p2v (_RhPortStatus)))
-#define USBStatus      (*((volatile Word *) SA1101_p2v (_USBStatus)))
-#define USBReset       (*((volatile Word *) SA1101_p2v (_USBReset)))
-#define USTAR          (*((volatile Word *) SA1101_p2v (_USTAR)))
-#define USWER          (*((volatile Word *) SA1101_p2v (_USWER)))
-#define USRFR          (*((volatile Word *) SA1101_p2v (_USRFR)))
-#define USNFR          (*((volatile Word *) SA1101_p2v (_USNFR)))
-#define USTCSR         (*((volatile Word *) SA1101_p2v (_USTCSR)))
-#define USSR           (*((volatile Word *) SA1101_p2v (_USSR)))
-
-
-#define USBStatus_IrqHciRmtWkp      (1<<7)
-#define USBStatus_IrqHciBuffAcc             (1<<8)
-#define USBStatus_nIrqHciM          (1<<9)
-#define USBStatus_nHciMFClr         (1<<10)
-
-#define USBReset_ForceIfReset       0x01
-#define USBReset_ForceHcReset       0x02
-#define USBReset_ClkGenReset        0x04
-
-#define USTCR_RdBstCntrl            Fld(3,0)
-#define USTCR_ByteEnable            Fld(4,3)
-#define USTCR_WriteEn               (1<<7)
-#define USTCR_FifoCir               (1<<8)
-#define USTCR_TestXferSel           (1<<9)
-#define USTCR_FifoCirAtEnd          (1<<10)
-#define USTCR_nSimScaleDownClk      (1<<11)
-
-#define USSR_nAppMDEmpty            0x01
-#define USSR_nAppMDFirst            0x02
-#define USSR_nAppMDLast                     0x04
-#define USSR_nAppMDFull                     0x08
-#define USSR_nAppMAFull                     0x10
-#define USSR_XferReq                0x20
-#define USSR_XferEnd                0x40
-
-#endif /* LANGUAGE == C */
-
-
-/*
- * Interrupt Controller
- *
- * Registers
- *    INTTEST0         Test register 0
- *    INTTEST1         Test register 1
- *    INTENABLE0       Interrupt Enable register 0
- *    INTENABLE1       Interrupt Enable register 1
- *    INTPOL0          Interrupt Polarity selection 0
- *    INTPOL1          Interrupt Polarity selection 1
- *    INTTSTSEL                Interrupt source selection
- *    INTSTATCLR0      Interrupt Status 0
- *    INTSTATCLR1      Interrupt Status 1
- *    INTSET0          Interrupt Set 0
- *    INTSET1          Interrupt Set 1
- */
-
-#define _INT( x )      _SA1101( ( x ) + __INTERRUPT_CONTROL)
-
-#define _INTTEST0      _INT( 0x1000 )
-#define _INTTEST1      _INT( 0x1400 )
-#define _INTENABLE0    _INT( 0x2000 )
-#define _INTENABLE1    _INT( 0x2400 )
-#define _INTPOL0       _INT( 0x3000 )
-#define _INTPOL1       _INT( 0x3400 )
-#define _INTTSTSEL             _INT( 0x5000 )
-#define _INTSTATCLR0   _INT( 0x6000 )
-#define _INTSTATCLR1   _INT( 0x6400 )
-#define _INTSET0       _INT( 0x7000 )
-#define _INTSET1       _INT( 0x7400 )
-
-#if ( LANGUAGE == C )
-#define INTTEST0       (*((volatile Word *) SA1101_p2v (_INTTEST0)))
-#define INTTEST1       (*((volatile Word *) SA1101_p2v (_INTTEST1)))
-#define INTENABLE0     (*((volatile Word *) SA1101_p2v (_INTENABLE0)))
-#define INTENABLE1     (*((volatile Word *) SA1101_p2v (_INTENABLE1)))
-#define INTPOL0                (*((volatile Word *) SA1101_p2v (_INTPOL0)))
-#define INTPOL1                (*((volatile Word *) SA1101_p2v (_INTPOL1)))
-#define INTTSTSEL      (*((volatile Word *) SA1101_p2v (_INTTSTSEL)))
-#define INTSTATCLR0    (*((volatile Word *) SA1101_p2v (_INTSTATCLR0)))
-#define INTSTATCLR1    (*((volatile Word *) SA1101_p2v (_INTSTATCLR1)))
-#define INTSET0                (*((volatile Word *) SA1101_p2v (_INTSET0)))
-#define INTSET1                (*((volatile Word *) SA1101_p2v (_INTSET1)))
-
-#endif /* LANGUAGE == C */
-
-/*
- * PS/2 Trackpad and Mouse Interfaces
- *
- * Registers   (prefix kbd applies to trackpad interface, mse to mouse)
- *    KBDCR            Control Register
- *    KBDSTAT          Status Register
- *    KBDDATA          Transmit/Receive Data register
- *    KBDCLKDIV                Clock Division Register
- *    KBDPRECNT                Clock Precount Register
- *    KBDTEST1         Test register 1
- *    KBDTEST2         Test register 2
- *    KBDTEST3         Test register 3
- *    KBDTEST4         Test register 4
- *    MSECR    
- *    MSESTAT
- *    MSEDATA
- *    MSECLKDIV
- *    MSEPRECNT
- *    MSETEST1
- *    MSETEST2
- *    MSETEST3
- *    MSETEST4
- *     
- */
-
-#define _KBD( x )      _SA1101( ( x ) + __TRACK_INTERFACE )
-#define _MSE( x )      _SA1101( ( x ) + __MOUSE_INTERFACE )
-
-#define _KBDCR         _KBD( 0x0000 )
-#define _KBDSTAT       _KBD( 0x0400 )
-#define _KBDDATA       _KBD( 0x0800 )
-#define _KBDCLKDIV     _KBD( 0x0c00 )
-#define _KBDPRECNT     _KBD( 0x1000 )
-#define        _KBDTEST1       _KBD( 0x2000 )
-#define _KBDTEST2      _KBD( 0x2400 )
-#define _KBDTEST3      _KBD( 0x2800 )
-#define _KBDTEST4      _KBD( 0x2c00 )
-#define _MSECR         _MSE( 0x0000 )
-#define _MSESTAT       _MSE( 0x0400 )
-#define _MSEDATA       _MSE( 0x0800 )
-#define _MSECLKDIV     _MSE( 0x0c00 )
-#define _MSEPRECNT     _MSE( 0x1000 )
-#define        _MSETEST1       _MSE( 0x2000 )
-#define _MSETEST2      _MSE( 0x2400 )
-#define _MSETEST3      _MSE( 0x2800 )
-#define _MSETEST4      _MSE( 0x2c00 )
-
-#if ( LANGUAGE == C )
-
-#define KBDCR      (*((volatile Word *) SA1101_p2v (_KBDCR)))
-#define KBDSTAT            (*((volatile Word *) SA1101_p2v (_KBDSTAT)))
-#define KBDDATA            (*((volatile Word *) SA1101_p2v (_KBDDATA)))
-#define KBDCLKDIV   (*((volatile Word *) SA1101_p2v (_KBDCLKDIV)))
-#define KBDPRECNT   (*((volatile Word *) SA1101_p2v (_KBDPRECNT)))
-#define KBDTEST1    (*((volatile Word *) SA1101_p2v (_KBDTEST1)))
-#define KBDTEST2    (*((volatile Word *) SA1101_p2v (_KBDTEST2)))
-#define KBDTEST3    (*((volatile Word *) SA1101_p2v (_KBDTEST3)))
-#define KBDTEST4    (*((volatile Word *) SA1101_p2v (_KBDTEST4)))
-#define MSECR      (*((volatile Word *) SA1101_p2v (_MSECR)))
-#define MSESTAT            (*((volatile Word *) SA1101_p2v (_MSESTAT)))
-#define MSEDATA            (*((volatile Word *) SA1101_p2v (_MSEDATA)))
-#define MSECLKDIV   (*((volatile Word *) SA1101_p2v (_MSECLKDIV)))
-#define MSEPRECNT   (*((volatile Word *) SA1101_p2v (_MSEPRECNT)))
-#define MSETEST1    (*((volatile Word *) SA1101_p2v (_MSETEST1)))
-#define MSETEST2    (*((volatile Word *) SA1101_p2v (_MSETEST2)))
-#define MSETEST3    (*((volatile Word *) SA1101_p2v (_MSETEST3)))
-#define MSETEST4    (*((volatile Word *) SA1101_p2v (_MSETEST4)))
-
-
-#define KBDCR_ENA               0x08
-#define KBDCR_FKD               0x02
-#define KBDCR_FKC               0x01
-
-#define KBDSTAT_TXE             0x80
-#define KBDSTAT_TXB             0x40
-#define KBDSTAT_RXF             0x20
-#define KBDSTAT_RXB             0x10
-#define KBDSTAT_ENA             0x08
-#define KBDSTAT_RXP             0x04
-#define KBDSTAT_KBD             0x02
-#define KBDSTAT_KBC             0x01
-
-#define KBDCLKDIV_DivVal        Fld(4,0)
-
-#define MSECR_ENA               0x08
-#define MSECR_FKD               0x02
-#define MSECR_FKC               0x01
-
-#define MSESTAT_TXE             0x80
-#define MSESTAT_TXB             0x40
-#define MSESTAT_RXF             0x20
-#define MSESTAT_RXB             0x10
-#define MSESTAT_ENA             0x08
-#define MSESTAT_RXP             0x04   
-#define MSESTAT_MSD             0x02
-#define MSESTAT_MSC             0x01
-
-#define MSECLKDIV_DivVal        Fld(4,0)
-
-#define KBDTEST1_CD             0x80
-#define KBDTEST1_RC1            0x40
-#define KBDTEST1_MC             0x20
-#define KBDTEST1_C              Fld(2,3)
-#define KBDTEST1_T2             0x40
-#define KBDTEST1_T1             0x20
-#define KBDTEST1_T0             0x10
-#define KBDTEST2_TICBnRES       0x08
-#define KBDTEST2_RKC            0x04
-#define KBDTEST2_RKD            0x02
-#define KBDTEST2_SEL            0x01
-#define KBDTEST3_ms_16          0x80
-#define KBDTEST3_us_64          0x40
-#define KBDTEST3_us_16          0x20
-#define KBDTEST3_DIV8           0x10
-#define KBDTEST3_DIn            0x08
-#define KBDTEST3_CIn            0x04
-#define KBDTEST3_KD             0x02
-#define KBDTEST3_KC             0x01
-#define KBDTEST4_BC12           0x80
-#define KBDTEST4_BC11           0x40
-#define KBDTEST4_TRES           0x20
-#define KBDTEST4_CLKOE          0x10
-#define KBDTEST4_CRES           0x08
-#define KBDTEST4_RXB            0x04
-#define KBDTEST4_TXB            0x02
-#define KBDTEST4_SRX            0x01
-
-#define MSETEST1_CD             0x80
-#define MSETEST1_RC1            0x40
-#define MSETEST1_MC             0x20
-#define MSETEST1_C              Fld(2,3)
-#define MSETEST1_T2             0x40
-#define MSETEST1_T1             0x20
-#define MSETEST1_T0             0x10
-#define MSETEST2_TICBnRES       0x08
-#define MSETEST2_RKC            0x04
-#define MSETEST2_RKD            0x02
-#define MSETEST2_SEL            0x01
-#define MSETEST3_ms_16          0x80
-#define MSETEST3_us_64          0x40
-#define MSETEST3_us_16          0x20
-#define MSETEST3_DIV8           0x10
-#define MSETEST3_DIn            0x08
-#define MSETEST3_CIn            0x04
-#define MSETEST3_KD             0x02
-#define MSETEST3_KC             0x01
-#define MSETEST4_BC12           0x80
-#define MSETEST4_BC11           0x40
-#define MSETEST4_TRES           0x20
-#define MSETEST4_CLKOE          0x10
-#define MSETEST4_CRES           0x08
-#define MSETEST4_RXB            0x04
-#define MSETEST4_TXB            0x02
-#define MSETEST4_SRX            0x01
-
-#endif  /* LANGUAGE == C */
-
-
-/*
- * General-Purpose I/O Interface
- *
- * Registers
- *    PADWR    Port A Data Write Register
- *    PBDWR    Port B Data Write Register
- *    PADRR    Port A Data Read Register
- *    PBDRR    Port B Data Read Register
- *    PADDR    Port A Data Direction Register
- *    PBDDR    Port B Data Direction Register
- *    PASSR    Port A Sleep State Register
- *    PBSSR    Port B Sleep State Register
- *
- */
-
-#define _PIO( x )      _SA1101( ( x ) + __GPIO_INTERFACE )
-
-#define _PADWR        _PIO( 0x0000 )
-#define _PBDWR        _PIO( 0x0400 )
-#define _PADRR        _PIO( 0x0000 )
-#define _PBDRR        _PIO( 0x0400 )
-#define _PADDR        _PIO( 0x0800 )
-#define _PBDDR        _PIO( 0x0c00 )
-#define _PASSR        _PIO( 0x1000 )
-#define _PBSSR        _PIO( 0x1400 )
-
-
-#if ( LANGUAGE == C )
-
-
-#define PADWR      (*((volatile Word *) SA1101_p2v (_PADWR)))
-#define PBDWR      (*((volatile Word *) SA1101_p2v (_PBDWR)))
-#define PADRR      (*((volatile Word *) SA1101_p2v (_PADRR)))
-#define PBDRR      (*((volatile Word *) SA1101_p2v (_PBDRR)))
-#define PADDR      (*((volatile Word *) SA1101_p2v (_PADDR)))
-#define PBDDR      (*((volatile Word *) SA1101_p2v (_PBDDR)))
-#define PASSR      (*((volatile Word *) SA1101_p2v (_PASSR)))
-#define PBSSR      (*((volatile Word *) SA1101_p2v (_PBSSR)))
-
-#endif
-
-
-
-/*
- * Keypad Interface
- *
- * Registers
- *    PXDWR
- *    PXDRR
- *    PYDWR
- *    PYDRR
- *
- */
-
-#define _KEYPAD( x )   _SA1101( ( x ) + __KEYPAD_INTERFACE ) 
-
-#define _PXDWR    _KEYPAD( 0x0000 )
-#define _PXDRR    _KEYPAD( 0x0000 )
-#define _PYDWR    _KEYPAD( 0x0400 )
-#define _PYDRR    _KEYPAD( 0x0400 )
-
-#if ( LANGUAGE == C )
-
-
-#define PXDWR      (*((volatile Word *) SA1101_p2v (_PXDWR)))
-#define PXDRR      (*((volatile Word *) SA1101_p2v (_PXDRR)))
-#define PYDWR      (*((volatile Word *) SA1101_p2v (_PYDWR)))
-#define PYDRR      (*((volatile Word *) SA1101_p2v (_PYDRR)))
-
-#endif
-
-
-
-/*
- * PCMCIA Interface
- *
- * Registers
- *    PCSR     Status Register
- *    PCCR     Control Register
- *    PCSSR    Sleep State Register
- *
- */
-
-#define _CARD( x )     _SA1101( ( x ) + __PCMCIA_INTERFACE )
-
-#define _PCSR     _CARD( 0x0000 )
-#define _PCCR     _CARD( 0x0400 )
-#define _PCSSR    _CARD( 0x0800 )
-
-#if ( LANGUAGE == C )
-#define PCSR    (*((volatile Word *) SA1101_p2v (_PCSR)))
-#define PCCR   (*((volatile Word *) SA1101_p2v (_PCCR)))
-#define PCSSR  (*((volatile Word *) SA1101_p2v (_PCSSR)))
-
-#define PCSR_S0_ready          0x0001
-#define PCSR_S1_ready          0x0002
-#define PCSR_S0_detected       0x0004
-#define PCSR_S1_detected       0x0008
-#define PCSR_S0_VS1            0x0010
-#define PCSR_S0_VS2            0x0020
-#define PCSR_S1_VS1            0x0040
-#define PCSR_S1_VS2            0x0080
-#define PCSR_S0_WP             0x0100
-#define PCSR_S1_WP             0x0200
-#define PCSR_S0_BVD1_nSTSCHG   0x0400
-#define PCSR_S0_BVD2_nSPKR     0x0800
-#define PCSR_S1_BVD1_nSTSCHG   0x1000
-#define PCSR_S1_BVD2_nSPKR     0x2000
-
-#define PCCR_S0_VPP0           0x0001
-#define PCCR_S0_VPP1           0x0002
-#define PCCR_S0_VCC0           0x0004
-#define PCCR_S0_VCC1           0x0008
-#define PCCR_S1_VPP0           0x0010
-#define PCCR_S1_VPP1           0x0020
-#define PCCR_S1_VCC0           0x0040
-#define PCCR_S1_VCC1           0x0080
-#define PCCR_S0_reset          0x0100
-#define PCCR_S1_reset          0x0200
-#define PCCR_S0_float          0x0400
-#define PCCR_S1_float          0x0800
-
-#define PCSSR_S0_VCC0          0x0001
-#define PCSSR_S0_VCC1          0x0002
-#define PCSSR_S0_VPP0          0x0004
-#define PCSSR_S0_VPP1          0x0008
-#define PCSSR_S0_control       0x0010
-#define PCSSR_S1_VCC0          0x0020
-#define PCSSR_S1_VCC1          0x0040
-#define PCSSR_S1_VPP0          0x0080
-#define PCSSR_S1_VPP1          0x0100
-#define PCSSR_S1_control       0x0200
-
-#endif
-
-#undef C
-#undef Assembly
index 52b8f6d..cc43f95 100644 (file)
@@ -52,8 +52,4 @@
 
 #include "SA-1100.h"
 
-#ifdef CONFIG_SA1101
-#include "SA-1101.h"
-#endif
-
 #endif  /* _ASM_ARCH_HARDWARE_H */
index c1799dd..f68e8ec 100644 (file)
@@ -991,7 +991,7 @@ config CACHE_TAUROS2
 config CACHE_UNIPHIER
        bool "Enable the UniPhier outer cache controller"
        depends on ARCH_UNIPHIER
-       default y
+       select ARM_L1_CACHE_SHIFT_7
        select OUTER_CACHE
        select OUTER_CACHE_SYNC
        help
@@ -1012,8 +1012,14 @@ config ARM_L1_CACHE_SHIFT_6
        help
          Setting ARM L1 cache line size to 64 Bytes.
 
+config ARM_L1_CACHE_SHIFT_7
+       bool
+       help
+         Setting ARM L1 cache line size to 128 Bytes.
+
 config ARM_L1_CACHE_SHIFT
        int
+       default 7 if ARM_L1_CACHE_SHIFT_7
        default 6 if ARM_L1_CACHE_SHIFT_6
        default 5
 
index d19b1ad..3b69f26 100644 (file)
@@ -34,28 +34,29 @@ static int change_page_range(pte_t *ptep, pgtable_t token, unsigned long addr,
        return 0;
 }
 
+static bool in_range(unsigned long start, unsigned long size,
+       unsigned long range_start, unsigned long range_end)
+{
+       return start >= range_start && start < range_end &&
+               size <= range_end - start;
+}
+
 static int change_memory_common(unsigned long addr, int numpages,
                                pgprot_t set_mask, pgprot_t clear_mask)
 {
-       unsigned long start = addr;
-       unsigned long size = PAGE_SIZE*numpages;
-       unsigned long end = start + size;
+       unsigned long start = addr & PAGE_MASK;
+       unsigned long end = PAGE_ALIGN(addr) + numpages * PAGE_SIZE;
+       unsigned long size = end - start;
        int ret;
        struct page_change_data data;
 
-       if (!IS_ALIGNED(addr, PAGE_SIZE)) {
-               start &= PAGE_MASK;
-               end = start + size;
-               WARN_ON_ONCE(1);
-       }
+       WARN_ON_ONCE(start != addr);
 
-       if (!numpages)
+       if (!size)
                return 0;
 
-       if (start < MODULES_VADDR || start >= MODULES_END)
-               return -EINVAL;
-
-       if (end < MODULES_VADDR || start >= MODULES_END)
+       if (!in_range(start, size, MODULES_VADDR, MODULES_END) &&
+           !in_range(start, size, VMALLOC_START, VMALLOC_END))
                return -EINVAL;
 
        data.set_mask = set_mask;
index 6e4cd18..92eb5c3 100644 (file)
@@ -4,10 +4,76 @@
 # Copyright (C) 2001 Russell King
 #
 
+gen := arch/$(ARCH)/include/generated
+kapi := $(gen)/asm
+uapi := $(gen)/uapi/asm
+syshdr := $(srctree)/$(src)/syscallhdr.sh
+sysnr := $(srctree)/$(src)/syscallnr.sh
+systbl := $(srctree)/$(src)/syscalltbl.sh
+syscall := $(srctree)/$(src)/syscall.tbl
+
+gen-y := $(gen)/calls-oabi.S
+gen-y += $(gen)/calls-eabi.S
+kapi-hdrs-y := $(kapi)/unistd-nr.h
+kapi-hdrs-y += $(kapi)/mach-types.h
+uapi-hdrs-y := $(uapi)/unistd-common.h
+uapi-hdrs-y += $(uapi)/unistd-oabi.h
+uapi-hdrs-y += $(uapi)/unistd-eabi.h
+
+targets += $(addprefix ../../../,$(gen-y) $(kapi-hdrs-y) $(uapi-hdrs-y))
+
+PHONY += kapi uapi
+
+kapi:  $(kapi-hdrs-y) $(gen-y)
+
+uapi:  $(uapi-hdrs-y)
+
+# Create output directory if not already present
+_dummy := $(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)') \
+          $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)')
+
 quiet_cmd_gen_mach = GEN     $@
       cmd_gen_mach = mkdir -p $(dir $@) && \
                     $(AWK) -f $(filter-out $(PHONY),$^) > $@ || \
                     { rm -f $@; /bin/false; }
 
-include/generated/mach-types.h: $(src)/gen-mach-types $(src)/mach-types FORCE
+$(kapi)/mach-types.h: $(src)/gen-mach-types $(src)/mach-types FORCE
        $(call if_changed,gen_mach)
+
+quiet_cmd_syshdr = SYSHDR  $@
+      cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@' \
+                  '$(syshdr_abi_$(basetarget))' \
+                  '$(syshdr_pfx_$(basetarget))' \
+                  '__NR_SYSCALL_BASE'
+
+quiet_cmd_systbl = SYSTBL  $@
+      cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@' \
+                  '$(systbl_abi_$(basetarget))'
+
+quiet_cmd_sysnr  = SYSNR   $@
+      cmd_sysnr  = $(CONFIG_SHELL) '$(sysnr)' '$<' '$@' \
+                  '$(syshdr_abi_$(basetarget))'
+
+syshdr_abi_unistd-common := common
+$(uapi)/unistd-common.h: $(syscall) $(syshdr) FORCE
+       $(call if_changed,syshdr)
+
+syshdr_abi_unistd-oabi := oabi
+$(uapi)/unistd-oabi.h: $(syscall) $(syshdr) FORCE
+       $(call if_changed,syshdr)
+
+syshdr_abi_unistd-eabi := eabi
+$(uapi)/unistd-eabi.h: $(syscall) $(syshdr) FORCE
+       $(call if_changed,syshdr)
+
+sysnr_abi_unistd-nr := common,oabi,eabi,compat
+$(kapi)/unistd-nr.h: $(syscall) $(sysnr) FORCE
+       $(call if_changed,sysnr)
+
+systbl_abi_calls-oabi := common,oabi
+$(gen)/calls-oabi.S: $(syscall) $(systbl) FORCE
+       $(call if_changed,systbl)
+
+systbl_abi_calls-eabi := common,eabi
+$(gen)/calls-eabi.S: $(syscall) $(systbl) FORCE
+       $(call if_changed,systbl)
index 2ed1b8a..a9313b6 100644 (file)
@@ -16,7 +16,7 @@
 # are merged into mainline or have been edited in the machine database
 # within the last 12 months.  References to machine_is_NAME() do not count!
 #
-# Last update: Fri Mar 22 17:24:50 2013
+# Last update: Sun Oct 30 20:21:01 2016
 #
 # machine_is_xxx       CONFIG_xxxx             MACH_TYPE_xxx           number
 #
@@ -152,7 +152,6 @@ colibri                     MACH_COLIBRI            COLIBRI                 729
 gateway7001            MACH_GATEWAY7001        GATEWAY7001             731
 pcm027                 MACH_PCM027             PCM027                  732
 anubis                 MACH_ANUBIS             ANUBIS                  734
-xboardgp8              MACH_XBOARDGP8          XBOARDGP8               742
 akita                  MACH_AKITA              AKITA                   744
 e330                   MACH_E330               E330                    753
 nokia770               MACH_NOKIA770           NOKIA770                755
@@ -393,7 +392,6 @@ anw6410                     MACH_ANW6410            ANW6410                 2183
 imx27_visstrim_m10     MACH_IMX27_VISSTRIM_M10 IMX27_VISSTRIM_M10      2187
 portuxg20              MACH_PORTUXG20          PORTUXG20               2191
 smdkc110               MACH_SMDKC110           SMDKC110                2193
-cabespresso            MACH_CABESPRESSO        CABESPRESSO             2194
 omap3517evm            MACH_OMAP3517EVM        OMAP3517EVM             2200
 netspace_v2            MACH_NETSPACE_V2        NETSPACE_V2             2201
 netspace_max_v2                MACH_NETSPACE_MAX_V2    NETSPACE_MAX_V2         2202
@@ -412,7 +410,6 @@ bigdisk                     MACH_BIGDISK            BIGDISK                 2283
 at91sam9g20ek_2mmc     MACH_AT91SAM9G20EK_2MMC AT91SAM9G20EK_2MMC      2288
 bcmring                        MACH_BCMRING            BCMRING                 2289
 mahimahi               MACH_MAHIMAHI           MAHIMAHI                2304
-cerebric               MACH_CEREBRIC           CEREBRIC                2311
 smdk6442               MACH_SMDK6442           SMDK6442                2324
 openrd_base            MACH_OPENRD_BASE        OPENRD_BASE             2325
 devkit8000             MACH_DEVKIT8000         DEVKIT8000              2330
@@ -435,9 +432,7 @@ tnetv107x           MACH_TNETV107X          TNETV107X               2418
 smdkv210               MACH_SMDKV210           SMDKV210                2456
 omap_zoom3             MACH_OMAP_ZOOM3         OMAP_ZOOM3              2464
 omap_3630sdp           MACH_OMAP_3630SDP       OMAP_3630SDP            2465
-cybook2440             MACH_CYBOOK2440         CYBOOK2440              2466
 smartq7                        MACH_SMARTQ7            SMARTQ7                 2479
-watson_efm_plugin      MACH_WATSON_EFM_PLUGIN  WATSON_EFM_PLUGIN       2491
 g4evm                  MACH_G4EVM              G4EVM                   2493
 omapl138_hawkboard     MACH_OMAPL138_HAWKBOARD OMAPL138_HAWKBOARD      2495
 ts41x                  MACH_TS41X              TS41X                   2502
@@ -472,7 +467,6 @@ igep0030            MACH_IGEP0030           IGEP0030                2717
 sbc3530                        MACH_SBC3530            SBC3530                 2722
 saarb                  MACH_SAARB              SAARB                   2727
 harmony                        MACH_HARMONY            HARMONY                 2731
-cybook_orizon          MACH_CYBOOK_ORIZON      CYBOOK_ORIZON           2733
 msm7x30_fluid          MACH_MSM7X30_FLUID      MSM7X30_FLUID           2741
 cm_t3517               MACH_CM_T3517           CM_T3517                2750
 wbd222                 MACH_WBD222             WBD222                  2753
@@ -490,6 +484,7 @@ eukrea_cpuimx51             MACH_EUKREA_CPUIMX51    EUKREA_CPUIMX51         2823
 smdkc210               MACH_SMDKC210           SMDKC210                2838
 t5325                  MACH_T5325              T5325                   2846
 income                 MACH_INCOME             INCOME                  2849
+meson                  MACH_MESON              MESON                   2853
 goni                   MACH_GONI               GONI                    2862
 bv07                   MACH_BV07               BV07                    2882
 openrd_ultimate                MACH_OPENRD_ULTIMATE    OPENRD_ULTIMATE         2884
@@ -523,9 +518,9 @@ prima2_evb          MACH_PRIMA2_EVB         PRIMA2_EVB              3103
 paz00                  MACH_PAZ00              PAZ00                   3128
 acmenetusfoxg20                MACH_ACMENETUSFOXG20    ACMENETUSFOXG20         3129
 ag5evm                 MACH_AG5EVM             AG5EVM                  3189
-ics_if_voip            MACH_ICS_IF_VOIP        ICS_IF_VOIP             3206
 wlf_cragg_6410         MACH_WLF_CRAGG_6410     WLF_CRAGG_6410          3207
 trimslice              MACH_TRIMSLICE          TRIMSLICE               3209
+mackerel               MACH_MACKEREL           MACKEREL                3211
 kaen                   MACH_KAEN               KAEN                    3217
 nokia_rm680            MACH_NOKIA_RM680        NOKIA_RM680             3220
 msm8960_sim            MACH_MSM8960_SIM        MSM8960_SIM             3230
@@ -540,469 +535,66 @@ snowball         MACH_SNOWBALL           SNOWBALL                3363
 xilinx_ep107           MACH_XILINX_EP107       XILINX_EP107            3378
 nuri                   MACH_NURI               NURI                    3379
 origen                 MACH_ORIGEN             ORIGEN                  3455
+xarina                 MACH_XARINA             XARINA                  3476
 nspire                 MACH_NSPIRE             NSPIRE                  3503
 nokia_rm696            MACH_NOKIA_RM696        NOKIA_RM696             3522
-mikrap_x168            MACH_MIKRAP_X168        MIKRAP_X168             3543
-deto_macarm9           MACH_DETO_MACARM9       DETO_MACARM9            3568
 m28evk                 MACH_M28EVK             M28EVK                  3613
 kota2                  MACH_KOTA2              KOTA2                   3616
 bonito                 MACH_BONITO             BONITO                  3623
-omap3_egf              MACH_OMAP3_EGF          OMAP3_EGF               3637
 smdk4212               MACH_SMDK4212           SMDK4212                3638
 apx4devkit             MACH_APX4DEVKIT         APX4DEVKIT              3712
 smdk4412               MACH_SMDK4412           SMDK4412                3765
 marzen                 MACH_MARZEN             MARZEN                  3790
-krome                  MACH_KROME              KROME                   3797
-armadillo800eva                MACH_ARMADILLO800EVA    ARMADILLO800EVA         3863
-mx53_umobo             MACH_MX53_UMOBO         MX53_UMOBO              3927
-mt4                    MACH_MT4                MT4                     3981
+empc_a500              MACH_EMPC_A500          EMPC_A500               3848
 u8520                  MACH_U8520              U8520                   3990
-chupacabra             MACH_CHUPACABRA         CHUPACABRA              4098
-scorpion               MACH_SCORPION           SCORPION                4099
-davinci_he_hmi10       MACH_DAVINCI_HE_HMI10   DAVINCI_HE_HMI10        4100
-topkick                        MACH_TOPKICK            TOPKICK                 4101
-m3_auguestrush         MACH_M3_AUGUESTRUSH     M3_AUGUESTRUSH          4102
-ipc335x                        MACH_IPC335X            IPC335X                 4103
-sun4i                  MACH_SUN4I              SUN4I                   4104
-imx233_olinuxino       MACH_IMX233_OLINUXINO   IMX233_OLINUXINO        4105
-k2_wl                  MACH_K2_WL              K2_WL                   4106
-k2_ul                  MACH_K2_UL              K2_UL                   4107
-k2_cl                  MACH_K2_CL              K2_CL                   4108
-minbari_w              MACH_MINBARI_W          MINBARI_W               4109
-minbari_m              MACH_MINBARI_M          MINBARI_M               4110
-k035                   MACH_K035               K035                    4111
-ariel                  MACH_ARIEL              ARIEL                   4112
-arielsaarc             MACH_ARIELSAARC         ARIELSAARC              4113
-arieldkb               MACH_ARIELDKB           ARIELDKB                4114
-armadillo810           MACH_ARMADILLO810       ARMADILLO810            4115
-tam335x                        MACH_TAM335X            TAM335X                 4116
-grouper                        MACH_GROUPER            GROUPER                 4117
-mpcsa21_9g20           MACH_MPCSA21_9G20       MPCSA21_9G20            4118
-m6u_cpu                        MACH_M6U_CPU            M6U_CPU                 4119
-ginkgo                 MACH_GINKGO             GINKGO                  4121
-cgt_qmx6               MACH_CGT_QMX6           CGT_QMX6                4122
-profpga                        MACH_PROFPGA            PROFPGA                 4123
-acfx100oc              MACH_ACFX100OC          ACFX100OC               4124
-acfx100nb              MACH_ACFX100NB          ACFX100NB               4125
-capricorn              MACH_CAPRICORN          CAPRICORN               4126
-pisces                 MACH_PISCES             PISCES                  4127
-aries                  MACH_ARIES              ARIES                   4128
-cancer                 MACH_CANCER             CANCER                  4129
-leo                    MACH_LEO                LEO                     4130
-virgo                  MACH_VIRGO              VIRGO                   4131
-sagittarius            MACH_SAGITTARIUS        SAGITTARIUS             4132
-devil                  MACH_DEVIL              DEVIL                   4133
-ballantines            MACH_BALLANTINES        BALLANTINES             4134
-omap3_procerusvpu      MACH_OMAP3_PROCERUSVPU  OMAP3_PROCERUSVPU       4135
-my27                   MACH_MY27               MY27                    4136
-sun6i                  MACH_SUN6I              SUN6I                   4137
-sun5i                  MACH_SUN5I              SUN5I                   4138
-mx512_mx               MACH_MX512_MX           MX512_MX                4139
-kzm9g                  MACH_KZM9G              KZM9G                   4140
-vdstbn                 MACH_VDSTBN             VDSTBN                  4141
-cfa10036               MACH_CFA10036           CFA10036                4142
-cfa10049               MACH_CFA10049           CFA10049                4143
-pcm051                 MACH_PCM051             PCM051                  4144
-vybrid_vf7xx           MACH_VYBRID_VF7XX       VYBRID_VF7XX            4145
-vybrid_vf6xx           MACH_VYBRID_VF6XX       VYBRID_VF6XX            4146
-vybrid_vf5xx           MACH_VYBRID_VF5XX       VYBRID_VF5XX            4147
-vybrid_vf4xx           MACH_VYBRID_VF4XX       VYBRID_VF4XX            4148
-aria_g25               MACH_ARIA_G25           ARIA_G25                4149
-bcm21553               MACH_BCM21553           BCM21553                4150
-smdk5410               MACH_SMDK5410           SMDK5410                4151
-lpc18xx                        MACH_LPC18XX            LPC18XX                 4152
-oratisparty            MACH_ORATISPARTY        ORATISPARTY             4153
-qseven                 MACH_QSEVEN             QSEVEN                  4154
-gmv_generic            MACH_GMV_GENERIC        GMV_GENERIC             4155
-th_link_eth            MACH_TH_LINK_ETH        TH_LINK_ETH             4156
-tn_muninn              MACH_TN_MUNINN          TN_MUNINN               4157
-rampage                        MACH_RAMPAGE            RAMPAGE                 4158
-visstrim_mv10          MACH_VISSTRIM_MV10      VISSTRIM_MV10           4159
-mx28_wilma             MACH_MX28_WILMA         MX28_WILMA              4164
-msm8625_ffa            MACH_MSM8625_FFA        MSM8625_FFA             4166
-vpu101                 MACH_VPU101             VPU101                  4167
-baileys                        MACH_BAILEYS            BAILEYS                 4169
-familybox              MACH_FAMILYBOX          FAMILYBOX               4170
-ensemble_mx35          MACH_ENSEMBLE_MX35      ENSEMBLE_MX35           4171
-sc_sps_1               MACH_SC_SPS_1           SC_SPS_1                4172
-ucsimply_sam9260       MACH_UCSIMPLY_SAM9260   UCSIMPLY_SAM9260        4173
-unicorn                        MACH_UNICORN            UNICORN                 4174
-m9g45a                 MACH_M9G45A             M9G45A                  4175
-mtwebif                        MACH_MTWEBIF            MTWEBIF                 4176
-playstone              MACH_PLAYSTONE          PLAYSTONE               4177
-chelsea                        MACH_CHELSEA            CHELSEA                 4178
-bayern                 MACH_BAYERN             BAYERN                  4179
-mitwo                  MACH_MITWO              MITWO                   4180
-mx25_noah              MACH_MX25_NOAH          MX25_NOAH               4181
-stm_b2020              MACH_STM_B2020          STM_B2020               4182
-annax_src              MACH_ANNAX_SRC          ANNAX_SRC               4183
-ionics_stratus         MACH_IONICS_STRATUS     IONICS_STRATUS          4184
-hugo                   MACH_HUGO               HUGO                    4185
-em300                  MACH_EM300              EM300                   4186
-mmp3_qseven            MACH_MMP3_QSEVEN        MMP3_QSEVEN             4187
-bosphorus2             MACH_BOSPHORUS2         BOSPHORUS2              4188
-tt2200                 MACH_TT2200             TT2200                  4189
-ocelot3                        MACH_OCELOT3            OCELOT3                 4190
-tek_cobra              MACH_TEK_COBRA          TEK_COBRA               4191
-protou                 MACH_PROTOU             PROTOU                  4192
-msm8625_evt            MACH_MSM8625_EVT        MSM8625_EVT             4193
-mx53_sellwood          MACH_MX53_SELLWOOD      MX53_SELLWOOD           4194
-somiq_am35             MACH_SOMIQ_AM35         SOMIQ_AM35              4195
-somiq_am37             MACH_SOMIQ_AM37         SOMIQ_AM37              4196
-k2_plc_cl              MACH_K2_PLC_CL          K2_PLC_CL               4197
-tc2                    MACH_TC2                TC2                     4198
-dulex_j                        MACH_DULEX_J            DULEX_J                 4199
-stm_b2044              MACH_STM_B2044          STM_B2044               4200
-deluxe_j               MACH_DELUXE_J           DELUXE_J                4201
-mango2443              MACH_MANGO2443          MANGO2443               4202
-cp2dcg                 MACH_CP2DCG             CP2DCG                  4203
-cp2dtg                 MACH_CP2DTG             CP2DTG                  4204
-cp2dug                 MACH_CP2DUG             CP2DUG                  4205
-var_som_am33           MACH_VAR_SOM_AM33       VAR_SOM_AM33            4206
-pepper                 MACH_PEPPER             PEPPER                  4207
-mango2450              MACH_MANGO2450          MANGO2450               4208
-valente_wx_c9          MACH_VALENTE_WX_C9      VALENTE_WX_C9           4209
-minitv                 MACH_MINITV             MINITV                  4210
-u8540                  MACH_U8540              U8540                   4211
-iv_atlas_i_z7e         MACH_IV_ATLAS_I_Z7E     IV_ATLAS_I_Z7E          4212
-mach_type_sky          MACH_MACH_TYPE_SKY      MACH_TYPE_SKY           4214
-bluesky                        MACH_BLUESKY            BLUESKY                 4215
-ngrouter               MACH_NGROUTER           NGROUTER                4216
-mx53_denetim           MACH_MX53_DENETIM       MX53_DENETIM            4217
-opal                   MACH_OPAL               OPAL                    4218
-gnet_us3gref           MACH_GNET_US3GREF       GNET_US3GREF            4219
-gnet_nc3g              MACH_GNET_NC3G          GNET_NC3G               4220
-gnet_ge3g              MACH_GNET_GE3G          GNET_GE3G               4221
-adp2                   MACH_ADP2               ADP2                    4222
-tqma28                 MACH_TQMA28             TQMA28                  4223
-kacom3                 MACH_KACOM3             KACOM3                  4224
-rrhdemo                        MACH_RRHDEMO            RRHDEMO                 4225
-protodug               MACH_PROTODUG           PROTODUG                4226
-lago                   MACH_LAGO               LAGO                    4227
-ktt30                  MACH_KTT30              KTT30                   4228
-ts43xx                 MACH_TS43XX             TS43XX                  4229
-mx6q_denso             MACH_MX6Q_DENSO         MX6Q_DENSO              4230
-comsat_gsmumts8                MACH_COMSAT_GSMUMTS8    COMSAT_GSMUMTS8         4231
-dreamx                 MACH_DREAMX             DREAMX                  4232
-thunderstonem          MACH_THUNDERSTONEM      THUNDERSTONEM           4233
-yoyopad                        MACH_YOYOPAD            YOYOPAD                 4234
-yoyopatient            MACH_YOYOPATIENT        YOYOPATIENT             4235
-a10l                   MACH_A10L               A10L                    4236
-mq60                   MACH_MQ60               MQ60                    4237
-linkstation_lsql       MACH_LINKSTATION_LSQL   LINKSTATION_LSQL        4238
-am3703gateway          MACH_AM3703GATEWAY      AM3703GATEWAY           4239
-accipiter              MACH_ACCIPITER          ACCIPITER               4240
-magnidug               MACH_MAGNIDUG           MAGNIDUG                4242
-hydra                  MACH_HYDRA              HYDRA                   4243
-sun3i                  MACH_SUN3I              SUN3I                   4244
-stm_b2078              MACH_STM_B2078          STM_B2078               4245
-at91sam9263deskv2      MACH_AT91SAM9263DESKV2  AT91SAM9263DESKV2       4246
-deluxe_r               MACH_DELUXE_R           DELUXE_R                4247
-p_98_v                 MACH_P_98_V             P_98_V                  4248
-p_98_c                 MACH_P_98_C             P_98_C                  4249
-davinci_am18xx_omn     MACH_DAVINCI_AM18XX_OMN DAVINCI_AM18XX_OMN      4250
-socfpga_cyclone5       MACH_SOCFPGA_CYCLONE5   SOCFPGA_CYCLONE5        4251
-cabatuin               MACH_CABATUIN           CABATUIN                4252
-yoyopad_ft             MACH_YOYOPAD_FT         YOYOPAD_FT              4253
-dan2400evb             MACH_DAN2400EVB         DAN2400EVB              4254
-dan3400evb             MACH_DAN3400EVB         DAN3400EVB              4255
-edm_sf_imx6            MACH_EDM_SF_IMX6        EDM_SF_IMX6             4256
-edm_cf_imx6            MACH_EDM_CF_IMX6        EDM_CF_IMX6             4257
-vpos3xx                        MACH_VPOS3XX            VPOS3XX                 4258
-vulcano_9x5            MACH_VULCANO_9X5        VULCANO_9X5             4259
-spmp8000               MACH_SPMP8000           SPMP8000                4260
-catalina               MACH_CATALINA           CATALINA                4261
-rd88f5181l_fe          MACH_RD88F5181L_FE      RD88F5181L_FE           4262
-mx535_mx               MACH_MX535_MX           MX535_MX                4263
-armadillo840           MACH_ARMADILLO840       ARMADILLO840            4264
-spc9000baseboard       MACH_SPC9000BASEBOARD   SPC9000BASEBOARD        4265
-iris                   MACH_IRIS               IRIS                    4266
-protodcg               MACH_PROTODCG           PROTODCG                4267
-palmtree               MACH_PALMTREE           PALMTREE                4268
-novena                 MACH_NOVENA             NOVENA                  4269
-ma_um                  MACH_MA_UM              MA_UM                   4270
-ma_am                  MACH_MA_AM              MA_AM                   4271
-ems348                 MACH_EMS348             EMS348                  4272
-cm_fx6                 MACH_CM_FX6             CM_FX6                  4273
-arndale                        MACH_ARNDALE            ARNDALE                 4274
-q5xr5                  MACH_Q5XR5              Q5XR5                   4275
-willow                 MACH_WILLOW             WILLOW                  4276
-omap3621_odyv3         MACH_OMAP3621_ODYV3     OMAP3621_ODYV3          4277
-omapl138_presonus      MACH_OMAPL138_PRESONUS  OMAPL138_PRESONUS       4278
-dvf99                  MACH_DVF99              DVF99                   4279
-impression_j           MACH_IMPRESSION_J       IMPRESSION_J            4280
-qblissa9               MACH_QBLISSA9           QBLISSA9                4281
-robin_heliview10       MACH_ROBIN_HELIVIEW10   ROBIN_HELIVIEW10        4282
-sun7i                  MACH_SUN7I              SUN7I                   4283
-mx6q_hdmidongle                MACH_MX6Q_HDMIDONGLE    MX6Q_HDMIDONGLE         4284
-mx6_sid2               MACH_MX6_SID2           MX6_SID2                4285
-helios_v3              MACH_HELIOS_V3          HELIOS_V3               4286
-helios_v4              MACH_HELIOS_V4          HELIOS_V4               4287
-q7_imx6                        MACH_Q7_IMX6            Q7_IMX6                 4288
-odroidx                        MACH_ODROIDX            ODROIDX                 4289
-robpro                 MACH_ROBPRO             ROBPRO                  4290
-research59if_mk1       MACH_RESEARCH59IF_MK1   RESEARCH59IF_MK1        4291
-bobsleigh              MACH_BOBSLEIGH          BOBSLEIGH               4292
-dcshgwt3               MACH_DCSHGWT3           DCSHGWT3                4293
-gld1018                        MACH_GLD1018            GLD1018                 4294
-ev10                   MACH_EV10               EV10                    4295
-nitrogen6x             MACH_NITROGEN6X         NITROGEN6X              4296
-p_107_bb               MACH_P_107_BB           P_107_BB                4297
-evita_utl              MACH_EVITA_UTL          EVITA_UTL               4298
-falconwing             MACH_FALCONWING         FALCONWING              4299
-dct3                   MACH_DCT3               DCT3                    4300
-cpx2e_cell             MACH_CPX2E_CELL         CPX2E_CELL              4301
-amiro                  MACH_AMIRO              AMIRO                   4302
-mx6q_brassboard                MACH_MX6Q_BRASSBOARD    MX6Q_BRASSBOARD         4303
-dalmore                        MACH_DALMORE            DALMORE                 4304
-omap3_portal7cp                MACH_OMAP3_PORTAL7CP    OMAP3_PORTAL7CP         4305
-tegra_pluto            MACH_TEGRA_PLUTO        TEGRA_PLUTO             4306
-mx6sl_evk              MACH_MX6SL_EVK          MX6SL_EVK               4307
-m7                     MACH_M7                 M7                      4308
-pxm2                   MACH_PXM2               PXM2                    4309
-haba_knx_lite          MACH_HABA_KNX_LITE      HABA_KNX_LITE           4310
-tai                    MACH_TAI                TAI                     4311
-prototd                        MACH_PROTOTD            PROTOTD                 4312
-dst_tonto              MACH_DST_TONTO          DST_TONTO               4313
-draco                  MACH_DRACO              DRACO                   4314
-dxr2                   MACH_DXR2               DXR2                    4315
-rut                    MACH_RUT                RUT                     4316
-am180x_wsc             MACH_AM180X_WSC         AM180X_WSC              4317
-deluxe_u               MACH_DELUXE_U           DELUXE_U                4318
-deluxe_ul              MACH_DELUXE_UL          DELUXE_UL               4319
-at91sam9260medths      MACH_AT91SAM9260MEDTHS  AT91SAM9260MEDTHS       4320
-matrix516              MACH_MATRIX516          MATRIX516               4321
-vid401x                        MACH_VID401X            VID401X                 4322
-helios_v5              MACH_HELIOS_V5          HELIOS_V5               4323
-playpaq2               MACH_PLAYPAQ2           PLAYPAQ2                4324
-igam                   MACH_IGAM               IGAM                    4325
-amico_i                        MACH_AMICO_I            AMICO_I                 4326
-amico_e                        MACH_AMICO_E            AMICO_E                 4327
-sentient_mm3_ck                MACH_SENTIENT_MM3_CK    SENTIENT_MM3_CK         4328
-smx6                   MACH_SMX6               SMX6                    4329
-pango                  MACH_PANGO              PANGO                   4330
-ns115_stick            MACH_NS115_STICK        NS115_STICK             4331
-bctrm3                 MACH_BCTRM3             BCTRM3                  4332
-doctorws               MACH_DOCTORWS           DOCTORWS                4333
-m2601                  MACH_M2601              M2601                   4334
-vgg1111                        MACH_VGG1111            VGG1111                 4337
-countach               MACH_COUNTACH           COUNTACH                4338
-visstrim_sm20          MACH_VISSTRIM_SM20      VISSTRIM_SM20           4339
-a639                   MACH_A639               A639                    4340
-spacemonkey            MACH_SPACEMONKEY        SPACEMONKEY             4341
-zpdu_stamp             MACH_ZPDU_STAMP         ZPDU_STAMP              4342
-htc_g7_clone           MACH_HTC_G7_CLONE       HTC_G7_CLONE            4343
-ft2080_corvus          MACH_FT2080_CORVUS      FT2080_CORVUS           4344
-fisland                        MACH_FISLAND            FISLAND                 4345
-zpdu                   MACH_ZPDU               ZPDU                    4346
 urt                    MACH_URT                URT                     4347
-conti_ovip             MACH_CONTI_OVIP         CONTI_OVIP              4348
-omapl138_nagra         MACH_OMAPL138_NAGRA     OMAPL138_NAGRA          4349
-da850_at3kp1           MACH_DA850_AT3KP1       DA850_AT3KP1            4350
-da850_at3kp2           MACH_DA850_AT3KP2       DA850_AT3KP2            4351
-surma                  MACH_SURMA              SURMA                   4352
-stm_b2092              MACH_STM_B2092          STM_B2092               4353
-mx535_ycr              MACH_MX535_YCR          MX535_YCR               4354
-m7_wl                  MACH_M7_WL              M7_WL                   4355
-m7_u                   MACH_M7_U               M7_U                    4356
-omap3_stndt_evm                MACH_OMAP3_STNDT_EVM    OMAP3_STNDT_EVM         4357
-m7_wlv                 MACH_M7_WLV             M7_WLV                  4358
-xam3517                        MACH_XAM3517            XAM3517                 4359
-a220                   MACH_A220               A220                    4360
-aclima_odie            MACH_ACLIMA_ODIE        ACLIMA_ODIE             4361
-vibble                 MACH_VIBBLE             VIBBLE                  4362
-k2_u                   MACH_K2_U               K2_U                    4363
-mx53_egf               MACH_MX53_EGF           MX53_EGF                4364
-novpek_imx53           MACH_NOVPEK_IMX53       NOVPEK_IMX53            4365
-novpek_imx6x           MACH_NOVPEK_IMX6X       NOVPEK_IMX6X            4366
-mx25_smartbox          MACH_MX25_SMARTBOX      MX25_SMARTBOX           4367
-eicg6410               MACH_EICG6410           EICG6410                4368
-picasso_e3             MACH_PICASSO_E3         PICASSO_E3              4369
-motonavigator          MACH_MOTONAVIGATOR      MOTONAVIGATOR           4370
-varioconnect2          MACH_VARIOCONNECT2      VARIOCONNECT2           4371
-deluxe_tw              MACH_DELUXE_TW          DELUXE_TW               4372
-kore3                  MACH_KORE3              KORE3                   4374
-mx6s_drs               MACH_MX6S_DRS           MX6S_DRS                4375
-cmimx6                 MACH_CMIMX6             CMIMX6                  4376
-roth                   MACH_ROTH               ROTH                    4377
-eq4ux                  MACH_EQ4UX              EQ4UX                   4378
-x1plus                 MACH_X1PLUS             X1PLUS                  4379
-modimx27               MACH_MODIMX27           MODIMX27                4380
-videon_hduac           MACH_VIDEON_HDUAC       VIDEON_HDUAC            4381
-blackbird              MACH_BLACKBIRD          BLACKBIRD               4382
-runmaster              MACH_RUNMASTER          RUNMASTER               4383
-ceres                  MACH_CERES              CERES                   4384
-nad435                 MACH_NAD435             NAD435                  4385
-ns115_proto_type       MACH_NS115_PROTO_TYPE   NS115_PROTO_TYPE        4386
-fs20_vcc               MACH_FS20_VCC           FS20_VCC                4387
-meson6tv_skt           MACH_MESON6TV_SKT       MESON6TV_SKT            4389
 keystone               MACH_KEYSTONE           KEYSTONE                4390
-pcm052                 MACH_PCM052             PCM052                  4391
-qrd_skud_prime         MACH_QRD_SKUD_PRIME     QRD_SKUD_PRIME          4393
-guf_santaro            MACH_GUF_SANTARO        GUF_SANTARO             4395
-sheepshead             MACH_SHEEPSHEAD         SHEEPSHEAD              4396
-mx6_iwg15m_mxm         MACH_MX6_IWG15M_MXM     MX6_IWG15M_MXM          4397
-mx6_iwg15m_q7          MACH_MX6_IWG15M_Q7      MX6_IWG15M_Q7           4398
-at91sam9263if8mic      MACH_AT91SAM9263IF8MIC  AT91SAM9263IF8MIC       4399
-marcopolo              MACH_MARCOPOLO          MARCOPOLO               4401
-mx535_sdcr             MACH_MX535_SDCR         MX535_SDCR              4402
-mx53_csb2733           MACH_MX53_CSB2733       MX53_CSB2733            4403
-diva                   MACH_DIVA               DIVA                    4404
-ncr_7744               MACH_NCR_7744           NCR_7744                4405
-macallan               MACH_MACALLAN           MACALLAN                4406
-wnr3500                        MACH_WNR3500            WNR3500                 4407
-pgavrf                 MACH_PGAVRF             PGAVRF                  4408
-helios_v6              MACH_HELIOS_V6          HELIOS_V6               4409
-lcct                   MACH_LCCT               LCCT                    4410
-csndug                 MACH_CSNDUG             CSNDUG                  4411
-wandboard_imx6         MACH_WANDBOARD_IMX6     WANDBOARD_IMX6          4412
-omap4_jet              MACH_OMAP4_JET          OMAP4_JET               4413
-tegra_roth             MACH_TEGRA_ROTH         TEGRA_ROTH              4414
-m7dcg                  MACH_M7DCG              M7DCG                   4415
-m7dug                  MACH_M7DUG              M7DUG                   4416
-m7dtg                  MACH_M7DTG              M7DTG                   4417
-ap42x                  MACH_AP42X              AP42X                   4418
-var_som_mx6            MACH_VAR_SOM_MX6        VAR_SOM_MX6             4419
-pdlu                   MACH_PDLU               PDLU                    4420
-hydrogen               MACH_HYDROGEN           HYDROGEN                4421
-npa211e                        MACH_NPA211E            NPA211E                 4422
-arcadia                        MACH_ARCADIA            ARCADIA                 4423
-arcadia_l              MACH_ARCADIA_L          ARCADIA_L               4424
-msm8930dt              MACH_MSM8930DT          MSM8930DT               4425
-ktam3874               MACH_KTAM3874           KTAM3874                4426
-cec4                   MACH_CEC4               CEC4                    4427
-ape6evm                        MACH_APE6EVM            APE6EVM                 4428
-tx6                    MACH_TX6                TX6                     4429
-cfa10037               MACH_CFA10037           CFA10037                4431
-ezp1000                        MACH_EZP1000            EZP1000                 4433
-wgr826v                        MACH_WGR826V            WGR826V                 4434
-exuma                  MACH_EXUMA              EXUMA                   4435
-fregate                        MACH_FREGATE            FREGATE                 4436
-osirisimx508           MACH_OSIRISIMX508       OSIRISIMX508            4437
-st_exigo               MACH_ST_EXIGO           ST_EXIGO                4438
-pismo                  MACH_PISMO              PISMO                   4439
-atc7                   MACH_ATC7               ATC7                    4440
-nspireclp              MACH_NSPIRECLP          NSPIRECLP               4441
-nspiretp               MACH_NSPIRETP           NSPIRETP                4442
-nspirecx               MACH_NSPIRECX           NSPIRECX                4443
-maya                   MACH_MAYA               MAYA                    4444
-wecct                  MACH_WECCT              WECCT                   4445
-m2s                    MACH_M2S                M2S                     4446
-msm8625q_evbd          MACH_MSM8625Q_EVBD      MSM8625Q_EVBD           4447
-tiny210                        MACH_TINY210            TINY210                 4448
-g3                     MACH_G3                 G3                      4449
-hurricane              MACH_HURRICANE          HURRICANE               4450
-mx6_pod                        MACH_MX6_POD            MX6_POD                 4451
-elondcn                        MACH_ELONDCN            ELONDCN                 4452
-cwmx535                        MACH_CWMX535            CWMX535                 4453
-m7_wlj                 MACH_M7_WLJ             M7_WLJ                  4454
-qsp_arm                        MACH_QSP_ARM            QSP_ARM                 4455
-msm8625q_skud          MACH_MSM8625Q_SKUD      MSM8625Q_SKUD           4456
-htcmondrian            MACH_HTCMONDRIAN        HTCMONDRIAN             4457
-watson_ead             MACH_WATSON_EAD         WATSON_EAD              4458
-mitwoa                 MACH_MITWOA             MITWOA                  4459
-omap3_wolverine                MACH_OMAP3_WOLVERINE    OMAP3_WOLVERINE         4460
-mapletree              MACH_MAPLETREE          MAPLETREE               4461
-msm8625_fih_sae                MACH_MSM8625_FIH_SAE    MSM8625_FIH_SAE         4462
-epc35                  MACH_EPC35              EPC35                   4463
-smartrtu               MACH_SMARTRTU           SMARTRTU                4464
-rcm101                 MACH_RCM101             RCM101                  4465
-amx_imx53_mxx          MACH_AMX_IMX53_MXX      AMX_IMX53_MXX           4466
-acer_a12               MACH_ACER_A12           ACER_A12                4470
-sbc6x                  MACH_SBC6X              SBC6X                   4471
-u2                     MACH_U2                 U2                      4472
-smdk4270               MACH_SMDK4270           SMDK4270                4473
-priscillag             MACH_PRISCILLAG         PRISCILLAG              4474
-priscillac             MACH_PRISCILLAC         PRISCILLAC              4475
-priscilla              MACH_PRISCILLA          PRISCILLA               4476
-innova_shpu_v2         MACH_INNOVA_SHPU_V2     INNOVA_SHPU_V2          4477
-mach_type_dep2410      MACH_MACH_TYPE_DEP2410  MACH_TYPE_DEP2410       4479
-bctre3                 MACH_BCTRE3             BCTRE3                  4480
-omap_m100              MACH_OMAP_M100          OMAP_M100               4481
-flo                    MACH_FLO                FLO                     4482
-nanobone               MACH_NANOBONE           NANOBONE                4483
-stm_b2105              MACH_STM_B2105          STM_B2105               4484
-omap4_bsc_bap_v3       MACH_OMAP4_BSC_BAP_V3   OMAP4_BSC_BAP_V3        4485
-ss1pam                 MACH_SS1PAM             SS1PAM                  4486
-primominiu             MACH_PRIMOMINIU         PRIMOMINIU              4488
-mrt_35hd_dualnas_e     MACH_MRT_35HD_DUALNAS_E MRT_35HD_DUALNAS_E      4489
-kiwi                   MACH_KIWI               KIWI                    4490
-hw90496                        MACH_HW90496            HW90496                 4491
-mep2440                        MACH_MEP2440            MEP2440                 4492
-colibri_t30            MACH_COLIBRI_T30        COLIBRI_T30             4493
-cwv1                   MACH_CWV1               CWV1                    4494
-nsa325                 MACH_NSA325             NSA325                  4495
-dpxmtc                 MACH_DPXMTC             DPXMTC                  4497
-tt_stuttgart           MACH_TT_STUTTGART       TT_STUTTGART            4498
-miranda_apcii          MACH_MIRANDA_APCII      MIRANDA_APCII           4499
-mx6q_moderox           MACH_MX6Q_MODEROX       MX6Q_MODEROX            4500
-mudskipper             MACH_MUDSKIPPER         MUDSKIPPER              4501
-urania                 MACH_URANIA             URANIA                  4502
-stm_b2112              MACH_STM_B2112          STM_B2112               4503
-mx6q_ats_phoenix       MACH_MX6Q_ATS_PHOENIX   MX6Q_ATS_PHOENIX        4505
-stm_b2116              MACH_STM_B2116          STM_B2116               4506
-mythology              MACH_MYTHOLOGY          MYTHOLOGY               4507
-fc360v1                        MACH_FC360V1            FC360V1                 4508
-gps_sensor             MACH_GPS_SENSOR         GPS_SENSOR              4509
-gazelle                        MACH_GAZELLE            GAZELLE                 4510
-mpq8064_dma            MACH_MPQ8064_DMA        MPQ8064_DMA             4511
-wems_asd01             MACH_WEMS_ASD01         WEMS_ASD01              4512
-apalis_t30             MACH_APALIS_T30         APALIS_T30              4513
-armstonea9             MACH_ARMSTONEA9         ARMSTONEA9              4515
-omap_blazetablet       MACH_OMAP_BLAZETABLET   OMAP_BLAZETABLET        4516
-ar6mxq                 MACH_AR6MXQ             AR6MXQ                  4517
-ar6mxs                 MACH_AR6MXS             AR6MXS                  4518
-gwventana              MACH_GWVENTANA          GWVENTANA               4520
-igep0033               MACH_IGEP0033           IGEP0033                4521
-h52c1_concerto         MACH_H52C1_CONCERTO     H52C1_CONCERTO          4524
-fcmbrd                 MACH_FCMBRD             FCMBRD                  4525
-pcaaxs1                        MACH_PCAAXS1            PCAAXS1                 4526
-ls_orca                        MACH_LS_ORCA            LS_ORCA                 4527
-pcm051lb               MACH_PCM051LB           PCM051LB                4528
-mx6s_lp507_gvci                MACH_MX6S_LP507_GVCI    MX6S_LP507_GVCI         4529
-dido                   MACH_DIDO               DIDO                    4530
-swarco_itc3_9g20       MACH_SWARCO_ITC3_9G20   SWARCO_ITC3_9G20        4531
-robo_roady             MACH_ROBO_ROADY         ROBO_ROADY              4532
-rskrza1                        MACH_RSKRZA1            RSKRZA1                 4533
-swarco_sid             MACH_SWARCO_SID         SWARCO_SID              4534
-mx6_iwg15s_sbc         MACH_MX6_IWG15S_SBC     MX6_IWG15S_SBC          4535
-mx6q_camaro            MACH_MX6Q_CAMARO        MX6Q_CAMARO             4536
-hb6mxs                 MACH_HB6MXS             HB6MXS                  4537
-lager                  MACH_LAGER              LAGER                   4538
-lp8x4x                 MACH_LP8X4X             LP8X4X                  4539
-tegratab7              MACH_TEGRATAB7          TEGRATAB7               4540
-andromeda              MACH_ANDROMEDA          ANDROMEDA               4541
-bootes                 MACH_BOOTES             BOOTES                  4542
-nethmi                 MACH_NETHMI             NETHMI                  4543
-tegratab               MACH_TEGRATAB           TEGRATAB                4544
-som5_evb               MACH_SOM5_EVB           SOM5_EVB                4545
-venaticorum            MACH_VENATICORUM        VENATICORUM             4546
-stm_b2110              MACH_STM_B2110          STM_B2110               4547
-elux_hathor            MACH_ELUX_HATHOR        ELUX_HATHOR             4548
-helios_v7              MACH_HELIOS_V7          HELIOS_V7               4549
-xc10v1                 MACH_XC10V1             XC10V1                  4550
-cp2u                   MACH_CP2U               CP2U                    4551
-iap_f                  MACH_IAP_F              IAP_F                   4552
-iap_g                  MACH_IAP_G              IAP_G                   4553
-aae                    MACH_AAE                AAE                     4554
-pegasus                        MACH_PEGASUS            PEGASUS                 4555
-cygnus                 MACH_CYGNUS             CYGNUS                  4556
-centaurus              MACH_CENTAURUS          CENTAURUS               4557
-msm8930_qrd8930                MACH_MSM8930_QRD8930    MSM8930_QRD8930         4558
-quby_tim               MACH_QUBY_TIM           QUBY_TIM                4559
-zedi3250a              MACH_ZEDI3250A          ZEDI3250A               4560
-grus                   MACH_GRUS               GRUS                    4561
-apollo3                        MACH_APOLLO3            APOLLO3                 4562
-cowon_r7               MACH_COWON_R7           COWON_R7                4563
-tonga3                 MACH_TONGA3             TONGA3                  4564
-p535                   MACH_P535               P535                    4565
-sa3874i                        MACH_SA3874I            SA3874I                 4566
-mx6_navico_com         MACH_MX6_NAVICO_COM     MX6_NAVICO_COM          4567
-proxmobil2             MACH_PROXMOBIL2         PROXMOBIL2              4568
-ubinux1                        MACH_UBINUX1            UBINUX1                 4569
-istos                  MACH_ISTOS              ISTOS                   4570
-benvolio4              MACH_BENVOLIO4          BENVOLIO4               4571
-eco5_bx2               MACH_ECO5_BX2           ECO5_BX2                4572
-eukrea_cpuimx28sd      MACH_EUKREA_CPUIMX28SD  EUKREA_CPUIMX28SD       4573
-domotab                        MACH_DOMOTAB            DOMOTAB                 4574
-pfla03                 MACH_PFLA03             PFLA03                  4575
+ckb_rza1h              MACH_CKB_RZA1H          CKB_RZA1H               4780
+bcm2835                        MACH_BCM2835            BCM2835                 4828
+cm_3g                  MACH_CM_3G              CM_3G                   4943
+empc_aimx6             MACH_EMPC_AIMX6         EMPC_AIMX6              4958
+diyefis6410            MACH_DIYEFIS6410        DIYEFIS6410             5063
+mx53_turing            MACH_MX53_TURING        MX53_TURING             5064
+mx6dl_turing           MACH_MX6DL_TURING       MX6DL_TURING            5066
+mx53_indash            MACH_MX53_INDASH        MX53_INDASH             5067
+mx6q_indash            MACH_MX6Q_INDASH        MX6Q_INDASH             5068
+mx6dl_indash           MACH_MX6DL_INDASH       MX6DL_INDASH            5069
+rts_g6                 MACH_RTS_G6             RTS_G6                  5070
+ka_titan               MACH_KA_TITAN           KA_TITAN                5071
+cl_som_imx7            MACH_CL_SOM_IMX7        CL_SOM_IMX7             5072
+vvdn_mgsi_vsis         MACH_VVDN_MGSI_VSIS     VVDN_MGSI_VSIS          5073
+mx6q_nano              MACH_MX6Q_NANO          MX6Q_NANO               5074
+pdu001                 MACH_PDU001             PDU001                  5075
+cab_proyk              MACH_CAB_PROYK          CAB_PROYK               5076
+klin                   MACH_KLIN               KLIN                    5077
+enman_steuerbox                MACH_ENMAN_STEUERBOX    ENMAN_STEUERBOX         5078
+ls_stingray            MACH_LS_STINGRAY        LS_STINGRAY             5079
+ipdu                   MACH_IPDU               IPDU                    5080
+linda                  MACH_LINDA              LINDA                   5081
+mx6q_openrex           MACH_MX6Q_OPENREX       MX6Q_OPENREX            5082
+on100                  MACH_ON100              ON100                   5083
+eminds_rtu12           MACH_EMINDS_RTU12       EMINDS_RTU12            5084
+eminds_avl10           MACH_EMINDS_AVL10       EMINDS_AVL10            5085
+main_plc_lme           MACH_MAIN_PLC_LME       MAIN_PLC_LME            5086
+mspx                   MACH_MSPX               MSPX                    5087
+cgw_300                        MACH_CGW_300            CGW_300                 5088
+mx7d_cicada            MACH_MX7D_CICADA        MX7D_CICADA             5089
+virt2real_dm365                MACH_VIRT2REAL_DM365    VIRT2REAL_DM365         5090
+dm365_virt2real                MACH_DM365_VIRT2REAL    DM365_VIRT2REAL         5091
+h6073                  MACH_H6073              H6073                   5092
+gtgateway              MACH_GTGATEWAY          GTGATEWAY               5093
+xarina_standard                MACH_XARINA_STANDARD    XARINA_STANDARD         5094
+novasoms               MACH_NOVASOMS           NOVASOMS                5095
+novasomp               MACH_NOVASOMP           NOVASOMP                5096
+novasomu               MACH_NOVASOMU           NOVASOMU                5097
+mx6q_mpbd              MACH_MX6Q_MPBD          MX6Q_MPBD               5098
+ncr_1930               MACH_NCR_1930           NCR_1930                5099
+uap301                 MACH_UAP301             UAP301                  5100
+urt02                  MACH_URT02              URT02                   5101
+atc8                   MACH_ATC8               ATC8                    5102
+iot_gateway            MACH_IOT_GATEWAY        IOT_GATEWAY             5103
+hsm_phoenix            MACH_HSM_PHOENIX        HSM_PHOENIX             5104
+missouri               MACH_MISSOURI           MISSOURI                5105
+remarkable             MACH_REMARKABLE         REMARKABLE              5106
+fa0113                 MACH_FA0113             FA0113                  5107
+innova_statnettawm     MACH_INNOVA_STATNETTAWM INNOVA_STATNETTAWM      5108
diff --git a/arch/arm/tools/syscall.tbl b/arch/arm/tools/syscall.tbl
new file mode 100644 (file)
index 0000000..3c2cb5d
--- /dev/null
@@ -0,0 +1,413 @@
+#
+# Linux system call numbers and entry vectors
+#
+# The format is:
+# <num>        <abi>   <name>                  [<entry point>                  [<oabi compat entry point>]]
+#
+# Where abi is:
+#  common - for system calls shared between oabi and eabi (may have compat)
+#  oabi   - for oabi-only system calls (may have compat)
+#  eabi   - for eabi-only system calls
+#
+# For each syscall number, "common" is mutually exclusive with oabi and eabi
+#
+0      common  restart_syscall         sys_restart_syscall
+1      common  exit                    sys_exit
+2      common  fork                    sys_fork
+3      common  read                    sys_read
+4      common  write                   sys_write
+5      common  open                    sys_open
+6      common  close                   sys_close
+# 7 was sys_waitpid
+8      common  creat                   sys_creat
+9      common  link                    sys_link
+10     common  unlink                  sys_unlink
+11     common  execve                  sys_execve
+12     common  chdir                   sys_chdir
+13     oabi    time                    sys_time
+14     common  mknod                   sys_mknod
+15     common  chmod                   sys_chmod
+16     common  lchown                  sys_lchown16
+# 17 was sys_break
+# 18 was sys_stat
+19     common  lseek                   sys_lseek
+20     common  getpid                  sys_getpid
+21     common  mount                   sys_mount
+22     oabi    umount                  sys_oldumount
+23     common  setuid                  sys_setuid16
+24     common  getuid                  sys_getuid16
+25     oabi    stime                   sys_stime
+26     common  ptrace                  sys_ptrace
+27     oabi    alarm                   sys_alarm
+# 28 was sys_fstat
+29     common  pause                   sys_pause
+30     oabi    utime                   sys_utime
+# 31 was sys_stty
+# 32 was sys_gtty
+33     common  access                  sys_access
+34     common  nice                    sys_nice
+# 35 was sys_ftime
+36     common  sync                    sys_sync
+37     common  kill                    sys_kill
+38     common  rename                  sys_rename
+39     common  mkdir                   sys_mkdir
+40     common  rmdir                   sys_rmdir
+41     common  dup                     sys_dup
+42     common  pipe                    sys_pipe
+43     common  times                   sys_times
+# 44 was sys_prof
+45     common  brk                     sys_brk
+46     common  setgid                  sys_setgid16
+47     common  getgid                  sys_getgid16
+# 48 was sys_signal
+49     common  geteuid                 sys_geteuid16
+50     common  getegid                 sys_getegid16
+51     common  acct                    sys_acct
+52     common  umount2                 sys_umount
+# 53 was sys_lock
+54     common  ioctl                   sys_ioctl
+55     common  fcntl                   sys_fcntl
+# 56 was sys_mpx
+57     common  setpgid                 sys_setpgid
+# 58 was sys_ulimit
+# 59 was sys_olduname
+60     common  umask                   sys_umask
+61     common  chroot                  sys_chroot
+62     common  ustat                   sys_ustat
+63     common  dup2                    sys_dup2
+64     common  getppid                 sys_getppid
+65     common  getpgrp                 sys_getpgrp
+66     common  setsid                  sys_setsid
+67     common  sigaction               sys_sigaction
+# 68 was sys_sgetmask
+# 69 was sys_ssetmask
+70     common  setreuid                sys_setreuid16
+71     common  setregid                sys_setregid16
+72     common  sigsuspend              sys_sigsuspend
+73     common  sigpending              sys_sigpending
+74     common  sethostname             sys_sethostname
+75     common  setrlimit               sys_setrlimit
+# Back compat 2GB limited rlimit
+76     oabi    getrlimit               sys_old_getrlimit
+77     common  getrusage               sys_getrusage
+78     common  gettimeofday            sys_gettimeofday
+79     common  settimeofday            sys_settimeofday
+80     common  getgroups               sys_getgroups16
+81     common  setgroups               sys_setgroups16
+82     oabi    select                  sys_old_select
+83     common  symlink                 sys_symlink
+# 84 was sys_lstat
+85     common  readlink                sys_readlink
+86     common  uselib                  sys_uselib
+87     common  swapon                  sys_swapon
+88     common  reboot                  sys_reboot
+89     oabi    readdir                 sys_old_readdir
+90     oabi    mmap                    sys_old_mmap
+91     common  munmap                  sys_munmap
+92     common  truncate                sys_truncate
+93     common  ftruncate               sys_ftruncate
+94     common  fchmod                  sys_fchmod
+95     common  fchown                  sys_fchown16
+96     common  getpriority             sys_getpriority
+97     common  setpriority             sys_setpriority
+# 98 was sys_profil
+99     common  statfs                  sys_statfs
+100    common  fstatfs                 sys_fstatfs
+# 101 was sys_ioperm
+102    oabi    socketcall              sys_socketcall          sys_oabi_socketcall
+103    common  syslog                  sys_syslog
+104    common  setitimer               sys_setitimer
+105    common  getitimer               sys_getitimer
+106    common  stat                    sys_newstat
+107    common  lstat                   sys_newlstat
+108    common  fstat                   sys_newfstat
+# 109 was sys_uname
+# 110 was sys_iopl
+111    common  vhangup                 sys_vhangup
+# 112 was sys_idle
+# syscall to call a syscall!
+113    oabi    syscall                 sys_syscall
+114    common  wait4                   sys_wait4
+115    common  swapoff                 sys_swapoff
+116    common  sysinfo                 sys_sysinfo
+117    oabi    ipc                     sys_ipc                 sys_oabi_ipc
+118    common  fsync                   sys_fsync
+119    common  sigreturn               sys_sigreturn_wrapper
+120    common  clone                   sys_clone
+121    common  setdomainname           sys_setdomainname
+122    common  uname                   sys_newuname
+# 123 was sys_modify_ldt
+124    common  adjtimex                sys_adjtimex
+125    common  mprotect                sys_mprotect
+126    common  sigprocmask             sys_sigprocmask
+# 127 was sys_create_module
+128    common  init_module             sys_init_module
+129    common  delete_module           sys_delete_module
+# 130 was sys_get_kernel_syms
+131    common  quotactl                sys_quotactl
+132    common  getpgid                 sys_getpgid
+133    common  fchdir                  sys_fchdir
+134    common  bdflush                 sys_bdflush
+135    common  sysfs                   sys_sysfs
+136    common  personality             sys_personality
+# 137 was sys_afs_syscall
+138    common  setfsuid                sys_setfsuid16
+139    common  setfsgid                sys_setfsgid16
+140    common  _llseek                 sys_llseek
+141    common  getdents                sys_getdents
+142    common  _newselect              sys_select
+143    common  flock                   sys_flock
+144    common  msync                   sys_msync
+145    common  readv                   sys_readv
+146    common  writev                  sys_writev
+147    common  getsid                  sys_getsid
+148    common  fdatasync               sys_fdatasync
+149    common  _sysctl                 sys_sysctl
+150    common  mlock                   sys_mlock
+151    common  munlock                 sys_munlock
+152    common  mlockall                sys_mlockall
+153    common  munlockall              sys_munlockall
+154    common  sched_setparam          sys_sched_setparam
+155    common  sched_getparam          sys_sched_getparam
+156    common  sched_setscheduler      sys_sched_setscheduler
+157    common  sched_getscheduler      sys_sched_getscheduler
+158    common  sched_yield             sys_sched_yield
+159    common  sched_get_priority_max  sys_sched_get_priority_max
+160    common  sched_get_priority_min  sys_sched_get_priority_min
+161    common  sched_rr_get_interval   sys_sched_rr_get_interval
+162    common  nanosleep               sys_nanosleep
+163    common  mremap                  sys_mremap
+164    common  setresuid               sys_setresuid16
+165    common  getresuid               sys_getresuid16
+# 166 was sys_vm86
+# 167 was sys_query_module
+168    common  poll                    sys_poll
+169    common  nfsservctl
+170    common  setresgid               sys_setresgid16
+171    common  getresgid               sys_getresgid16
+172    common  prctl                   sys_prctl
+173    common  rt_sigreturn            sys_rt_sigreturn_wrapper
+174    common  rt_sigaction            sys_rt_sigaction
+175    common  rt_sigprocmask          sys_rt_sigprocmask
+176    common  rt_sigpending           sys_rt_sigpending
+177    common  rt_sigtimedwait         sys_rt_sigtimedwait
+178    common  rt_sigqueueinfo         sys_rt_sigqueueinfo
+179    common  rt_sigsuspend           sys_rt_sigsuspend
+180    common  pread64                 sys_pread64             sys_oabi_pread64
+181    common  pwrite64                sys_pwrite64            sys_oabi_pwrite64
+182    common  chown                   sys_chown16
+183    common  getcwd                  sys_getcwd
+184    common  capget                  sys_capget
+185    common  capset                  sys_capset
+186    common  sigaltstack             sys_sigaltstack
+187    common  sendfile                sys_sendfile
+# 188 reserved
+# 189 reserved
+190    common  vfork                   sys_vfork
+# SuS compliant getrlimit
+191    common  ugetrlimit              sys_getrlimit
+192    common  mmap2                   sys_mmap2
+193    common  truncate64              sys_truncate64          sys_oabi_truncate64
+194    common  ftruncate64             sys_ftruncate64         sys_oabi_ftruncate64
+195    common  stat64                  sys_stat64              sys_oabi_stat64
+196    common  lstat64                 sys_lstat64             sys_oabi_lstat64
+197    common  fstat64                 sys_fstat64             sys_oabi_fstat64
+198    common  lchown32                sys_lchown
+199    common  getuid32                sys_getuid
+200    common  getgid32                sys_getgid
+201    common  geteuid32               sys_geteuid
+202    common  getegid32               sys_getegid
+203    common  setreuid32              sys_setreuid
+204    common  setregid32              sys_setregid
+205    common  getgroups32             sys_getgroups
+206    common  setgroups32             sys_setgroups
+207    common  fchown32                sys_fchown
+208    common  setresuid32             sys_setresuid
+209    common  getresuid32             sys_getresuid
+210    common  setresgid32             sys_setresgid
+211    common  getresgid32             sys_getresgid
+212    common  chown32                 sys_chown
+213    common  setuid32                sys_setuid
+214    common  setgid32                sys_setgid
+215    common  setfsuid32              sys_setfsuid
+216    common  setfsgid32              sys_setfsgid
+217    common  getdents64              sys_getdents64
+218    common  pivot_root              sys_pivot_root
+219    common  mincore                 sys_mincore
+220    common  madvise                 sys_madvise
+221    common  fcntl64                 sys_fcntl64             sys_oabi_fcntl64
+# 222 for tux
+# 223 is unused
+224    common  gettid                  sys_gettid
+225    common  readahead               sys_readahead           sys_oabi_readahead
+226    common  setxattr                sys_setxattr
+227    common  lsetxattr               sys_lsetxattr
+228    common  fsetxattr               sys_fsetxattr
+229    common  getxattr                sys_getxattr
+230    common  lgetxattr               sys_lgetxattr
+231    common  fgetxattr               sys_fgetxattr
+232    common  listxattr               sys_listxattr
+233    common  llistxattr              sys_llistxattr
+234    common  flistxattr              sys_flistxattr
+235    common  removexattr             sys_removexattr
+236    common  lremovexattr            sys_lremovexattr
+237    common  fremovexattr            sys_fremovexattr
+238    common  tkill                   sys_tkill
+239    common  sendfile64              sys_sendfile64
+240    common  futex                   sys_futex
+241    common  sched_setaffinity       sys_sched_setaffinity
+242    common  sched_getaffinity       sys_sched_getaffinity
+243    common  io_setup                sys_io_setup
+244    common  io_destroy              sys_io_destroy
+245    common  io_getevents            sys_io_getevents
+246    common  io_submit               sys_io_submit
+247    common  io_cancel               sys_io_cancel
+248    common  exit_group              sys_exit_group
+249    common  lookup_dcookie          sys_lookup_dcookie
+250    common  epoll_create            sys_epoll_create
+251    common  epoll_ctl               sys_epoll_ctl           sys_oabi_epoll_ctl
+252    common  epoll_wait              sys_epoll_wait          sys_oabi_epoll_wait
+253    common  remap_file_pages        sys_remap_file_pages
+# 254 for set_thread_area
+# 255 for get_thread_area
+256    common  set_tid_address         sys_set_tid_address
+257    common  timer_create            sys_timer_create
+258    common  timer_settime           sys_timer_settime
+259    common  timer_gettime           sys_timer_gettime
+260    common  timer_getoverrun        sys_timer_getoverrun
+261    common  timer_delete            sys_timer_delete
+262    common  clock_settime           sys_clock_settime
+263    common  clock_gettime           sys_clock_gettime
+264    common  clock_getres            sys_clock_getres
+265    common  clock_nanosleep         sys_clock_nanosleep
+266    common  statfs64                sys_statfs64_wrapper
+267    common  fstatfs64               sys_fstatfs64_wrapper
+268    common  tgkill                  sys_tgkill
+269    common  utimes                  sys_utimes
+270    common  arm_fadvise64_64        sys_arm_fadvise64_64
+271    common  pciconfig_iobase        sys_pciconfig_iobase
+272    common  pciconfig_read          sys_pciconfig_read
+273    common  pciconfig_write         sys_pciconfig_write
+274    common  mq_open                 sys_mq_open
+275    common  mq_unlink               sys_mq_unlink
+276    common  mq_timedsend            sys_mq_timedsend
+277    common  mq_timedreceive         sys_mq_timedreceive
+278    common  mq_notify               sys_mq_notify
+279    common  mq_getsetattr           sys_mq_getsetattr
+280    common  waitid                  sys_waitid
+281    common  socket                  sys_socket
+282    common  bind                    sys_bind                sys_oabi_bind
+283    common  connect                 sys_connect             sys_oabi_connect
+284    common  listen                  sys_listen
+285    common  accept                  sys_accept
+286    common  getsockname             sys_getsockname
+287    common  getpeername             sys_getpeername
+288    common  socketpair              sys_socketpair
+289    common  send                    sys_send
+290    common  sendto                  sys_sendto              sys_oabi_sendto
+291    common  recv                    sys_recv
+292    common  recvfrom                sys_recvfrom
+293    common  shutdown                sys_shutdown
+294    common  setsockopt              sys_setsockopt
+295    common  getsockopt              sys_getsockopt
+296    common  sendmsg                 sys_sendmsg             sys_oabi_sendmsg
+297    common  recvmsg                 sys_recvmsg
+298    common  semop                   sys_semop               sys_oabi_semop
+299    common  semget                  sys_semget
+300    common  semctl                  sys_semctl
+301    common  msgsnd                  sys_msgsnd
+302    common  msgrcv                  sys_msgrcv
+303    common  msgget                  sys_msgget
+304    common  msgctl                  sys_msgctl
+305    common  shmat                   sys_shmat
+306    common  shmdt                   sys_shmdt
+307    common  shmget                  sys_shmget
+308    common  shmctl                  sys_shmctl
+309    common  add_key                 sys_add_key
+310    common  request_key             sys_request_key
+311    common  keyctl                  sys_keyctl
+312    common  semtimedop              sys_semtimedop          sys_oabi_semtimedop
+313    common  vserver
+314    common  ioprio_set              sys_ioprio_set
+315    common  ioprio_get              sys_ioprio_get
+316    common  inotify_init            sys_inotify_init
+317    common  inotify_add_watch       sys_inotify_add_watch
+318    common  inotify_rm_watch        sys_inotify_rm_watch
+319    common  mbind                   sys_mbind
+320    common  get_mempolicy           sys_get_mempolicy
+321    common  set_mempolicy           sys_set_mempolicy
+322    common  openat                  sys_openat
+323    common  mkdirat                 sys_mkdirat
+324    common  mknodat                 sys_mknodat
+325    common  fchownat                sys_fchownat
+326    common  futimesat               sys_futimesat
+327    common  fstatat64               sys_fstatat64           sys_oabi_fstatat64
+328    common  unlinkat                sys_unlinkat
+329    common  renameat                sys_renameat
+330    common  linkat                  sys_linkat
+331    common  symlinkat               sys_symlinkat
+332    common  readlinkat              sys_readlinkat
+333    common  fchmodat                sys_fchmodat
+334    common  faccessat               sys_faccessat
+335    common  pselect6                sys_pselect6
+336    common  ppoll                   sys_ppoll
+337    common  unshare                 sys_unshare
+338    common  set_robust_list         sys_set_robust_list
+339    common  get_robust_list         sys_get_robust_list
+340    common  splice                  sys_splice
+341    common  arm_sync_file_range     sys_sync_file_range2
+342    common  tee                     sys_tee
+343    common  vmsplice                sys_vmsplice
+344    common  move_pages              sys_move_pages
+345    common  getcpu                  sys_getcpu
+346    common  epoll_pwait             sys_epoll_pwait
+347    common  kexec_load              sys_kexec_load
+348    common  utimensat               sys_utimensat
+349    common  signalfd                sys_signalfd
+350    common  timerfd_create          sys_timerfd_create
+351    common  eventfd                 sys_eventfd
+352    common  fallocate               sys_fallocate
+353    common  timerfd_settime         sys_timerfd_settime
+354    common  timerfd_gettime         sys_timerfd_gettime
+355    common  signalfd4               sys_signalfd4
+356    common  eventfd2                sys_eventfd2
+357    common  epoll_create1           sys_epoll_create1
+358    common  dup3                    sys_dup3
+359    common  pipe2                   sys_pipe2
+360    common  inotify_init1           sys_inotify_init1
+361    common  preadv                  sys_preadv
+362    common  pwritev                 sys_pwritev
+363    common  rt_tgsigqueueinfo       sys_rt_tgsigqueueinfo
+364    common  perf_event_open         sys_perf_event_open
+365    common  recvmmsg                sys_recvmmsg
+366    common  accept4                 sys_accept4
+367    common  fanotify_init           sys_fanotify_init
+368    common  fanotify_mark           sys_fanotify_mark
+369    common  prlimit64               sys_prlimit64
+370    common  name_to_handle_at       sys_name_to_handle_at
+371    common  open_by_handle_at       sys_open_by_handle_at
+372    common  clock_adjtime           sys_clock_adjtime
+373    common  syncfs                  sys_syncfs
+374    common  sendmmsg                sys_sendmmsg
+375    common  setns                   sys_setns
+376    common  process_vm_readv        sys_process_vm_readv
+377    common  process_vm_writev       sys_process_vm_writev
+378    common  kcmp                    sys_kcmp
+379    common  finit_module            sys_finit_module
+380    common  sched_setattr           sys_sched_setattr
+381    common  sched_getattr           sys_sched_getattr
+382    common  renameat2               sys_renameat2
+383    common  seccomp                 sys_seccomp
+384    common  getrandom               sys_getrandom
+385    common  memfd_create            sys_memfd_create
+386    common  bpf                     sys_bpf
+387    common  execveat                sys_execveat
+388    common  userfaultfd             sys_userfaultfd
+389    common  membarrier              sys_membarrier
+390    common  mlock2                  sys_mlock2
+391    common  copy_file_range         sys_copy_file_range
+392    common  preadv2                 sys_preadv2
+393    common  pwritev2                sys_pwritev2
+394    common  pkey_mprotect           sys_pkey_mprotect
+395    common  pkey_alloc              sys_pkey_alloc
+396    common  pkey_free               sys_pkey_free
diff --git a/arch/arm/tools/syscallhdr.sh b/arch/arm/tools/syscallhdr.sh
new file mode 100644 (file)
index 0000000..72d4b2e
--- /dev/null
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+in="$1"
+out="$2"
+my_abis=`echo "($3)" | tr ',' '|'`
+prefix="$4"
+offset="$5"
+
+fileguard=_ASM_ARM_`basename "$out" | sed \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
+    -e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'`
+if echo $out | grep -q uapi; then
+    fileguard="_UAPI$fileguard"
+fi
+grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
+    echo "#ifndef ${fileguard}"
+    echo "#define ${fileguard} 1"
+    echo ""
+
+    while read nr abi name entry ; do
+       if [ -z "$offset" ]; then
+           echo "#define __NR_${prefix}${name} $nr"
+       else
+           echo "#define __NR_${prefix}${name} ($offset + $nr)"
+        fi
+    done
+
+    echo ""
+    echo "#endif /* ${fileguard} */"
+) > "$out"
diff --git a/arch/arm/tools/syscallnr.sh b/arch/arm/tools/syscallnr.sh
new file mode 100644 (file)
index 0000000..d297129
--- /dev/null
@@ -0,0 +1,33 @@
+#!/bin/sh
+in="$1"
+out="$2"
+my_abis=`echo "($3)" | tr ',' '|'`
+align=1
+
+fileguard=_ASM_ARM_`basename "$out" | sed \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
+    -e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'`
+
+grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | tail -n1 | (
+    echo "#ifndef ${fileguard}
+#define ${fileguard} 1
+
+/*
+ * This needs to be greater than __NR_last_syscall+1 in order to account
+ * for the padding in the syscall table.
+ */
+"
+
+    while read nr abi name entry; do
+        nr=$(($nr + 1))
+        while [ "$(($nr / (256 * $align) ))" -gt 0 ]; do
+            align=$(( $align * 4 ))
+        done
+        nr=$(( ($nr + $align - 1) & ~($align - 1) ))
+        echo "/* aligned to $align */"
+        echo "#define __NR_syscalls $nr"
+    done
+
+    echo ""
+    echo "#endif /* ${fileguard} */"
+) > "$out"
diff --git a/arch/arm/tools/syscalltbl.sh b/arch/arm/tools/syscalltbl.sh
new file mode 100644 (file)
index 0000000..5ca8345
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/sh
+in="$1"
+out="$2"
+my_abis=`echo "($3)" | tr ',' '|'`
+
+grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
+    while read nr abi name entry compat; do
+        if [ "$abi" = "eabi" -a -n "$compat" ]; then
+            echo "$in: error: a compat entry for an EABI syscall ($name) makes no sense" >&2
+            exit 1
+        fi
+
+       if [ -n "$entry" ]; then
+            if [ -z "$compat" ]; then
+                echo "NATIVE($nr, $entry)"
+            else
+                echo "COMPAT($nr, $entry, $compat)"
+            fi
+        fi
+    done
+) > "$out"
index c8c98dd..89773e5 100644 (file)
@@ -155,8 +155,8 @@ struct vfp_single {
        u32     significand;
 };
 
-extern s32 vfp_get_float(unsigned int reg);
-extern void vfp_put_float(s32 val, unsigned int reg);
+asmlinkage s32 vfp_get_float(unsigned int reg);
+asmlinkage void vfp_put_float(s32 val, unsigned int reg);
 
 /*
  * VFP_SINGLE_MANTISSA_BITS - number of bits in the mantissa
@@ -270,8 +270,8 @@ struct vfp_double {
 #else
 #define VFP_REG_ZERO   16
 #endif
-extern u64 vfp_get_double(unsigned int reg);
-extern void vfp_put_double(u64 val, unsigned int reg);
+asmlinkage u64 vfp_get_double(unsigned int reg);
+asmlinkage void vfp_put_double(u64 val, unsigned int reg);
 
 #define VFP_DOUBLE_MANTISSA_BITS       (52)
 #define VFP_DOUBLE_EXPONENT_BITS       (11)
@@ -377,4 +377,4 @@ struct op {
        u32 flags;
 };
 
-extern void vfp_save_state(void *location, u32 fpexc);
+asmlinkage void vfp_save_state(void *location, u32 fpexc);
index da0b33d..0351f56 100644 (file)
 /*
  * Our undef handlers (in entry.S)
  */
-void vfp_testing_entry(void);
-void vfp_support_entry(void);
-void vfp_null_entry(void);
+asmlinkage void vfp_testing_entry(void);
+asmlinkage void vfp_support_entry(void);
+asmlinkage void vfp_null_entry(void);
 
-void (*vfp_vector)(void) = vfp_null_entry;
+asmlinkage void (*vfp_vector)(void) = vfp_null_entry;
 
 /*
  * Dual-use variable.
index 97ae60f..bb8a77a 100644 (file)
@@ -448,12 +448,20 @@ EXPORT_SYMBOL(clk_register_clkdev);
  *
  * con_id or dev_id may be NULL as a wildcard, just as in the rest of
  * clkdev.
+ *
+ * To make things easier for mass registration, we detect error clk_hws
+ * from a previous clk_hw_register_*() call, and return the error code for
+ * those.  This is to permit this function to be called immediately
+ * after clk_hw_register_*().
  */
 int clk_hw_register_clkdev(struct clk_hw *hw, const char *con_id,
        const char *dev_id)
 {
        struct clk_lookup *cl;
 
+       if (IS_ERR(hw))
+               return PTR_ERR(hw);
+
        /*
         * Since dev_id can be NULL, and NULL is handled specially, we must
         * pass it as either a NULL format string, or with "%s".