[PATCH] avr32 architecture
This adds support for the Atmel AVR32 architecture as well as the AT32AP7000
CPU and the AT32STK1000 development board.
AVR32 is a new high-performance 32-bit RISC microprocessor core, designed for
cost-sensitive embedded applications, with particular emphasis on low power
consumption and high code density. The AVR32 architecture is not binary
compatible with earlier 8-bit AVR architectures.
The AVR32 architecture, including the instruction set, is described by the
AVR32 Architecture Manual, available from
http://www.atmel.com/dyn/resources/prod_documents/doc32000.pdf
The Atmel AT32AP7000 is the first CPU implementing the AVR32 architecture. It
features a 7-stage pipeline, 16KB instruction and data caches and a full
Memory Management Unit. It also comes with a large set of integrated
peripherals, many of which are shared with the AT91 ARM-based controllers from
Atmel.
Full data sheet is available from
http://www.atmel.com/dyn/resources/prod_documents/doc32003.pdf
while the CPU core implementation including caches and MMU is documented by
the AVR32 AP Technical Reference, available from
http://www.atmel.com/dyn/resources/prod_documents/doc32001.pdf
Information about the AT32STK1000 development board can be found at
http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3918
including a BSP CD image with an earlier version of this patch, development
tools (binaries and source/patches) and a root filesystem image suitable for
booting from SD card.
Alternatively, there's a preliminary "getting started" guide available at
http://avr32linux.org/twiki/bin/view/Main/GettingStarted which provides links
to the sources and patches you will need in order to set up a cross-compiling
environment for avr32-linux.
This patch, as well as the other patches included with the BSP and the
toolchain patches, is actively supported by Atmel Corporation.
[dmccr@us.ibm.com: Fix more pxx_page macro locations]
[bunk@stusta.de: fix `make defconfig']
Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Dave McCracken <dmccr@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-09-25 23:32:13 -07:00
/*
* Copyright ( C ) 2004 - 2006 Atmel Corporation
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation .
*/
# ifndef __ASM_AVR32_SIGNAL_H
# define __ASM_AVR32_SIGNAL_H
# include <linux/types.h>
/* Avoid too many header ordering problems. */
struct siginfo ;
# ifdef __KERNEL__
/* Most things should be clean enough to redefine this at will, if care
is taken to make libc match . */
# define _NSIG 64
# define _NSIG_BPW 32
# define _NSIG_WORDS (_NSIG / _NSIG_BPW)
typedef unsigned long old_sigset_t ; /* at least 32 bits */
typedef struct {
unsigned long sig [ _NSIG_WORDS ] ;
} sigset_t ;
# else
/* Here we must cater to libcs that poke about in kernel headers. */
# define NSIG 32
typedef unsigned long sigset_t ;
# endif /* __KERNEL__ */
# define SIGHUP 1
# define SIGINT 2
# define SIGQUIT 3
# define SIGILL 4
# define SIGTRAP 5
# define SIGABRT 6
# define SIGIOT 6
# define SIGBUS 7
# define SIGFPE 8
# define SIGKILL 9
# define SIGUSR1 10
# define SIGSEGV 11
# define SIGUSR2 12
# define SIGPIPE 13
# define SIGALRM 14
# define SIGTERM 15
# define SIGSTKFLT 16
# define SIGCHLD 17
# define SIGCONT 18
# define SIGSTOP 19
# define SIGTSTP 20
# define SIGTTIN 21
# define SIGTTOU 22
# define SIGURG 23
# define SIGXCPU 24
# define SIGXFSZ 25
# define SIGVTALRM 26
# define SIGPROF 27
# define SIGWINCH 28
# define SIGIO 29
# define SIGPOLL SIGIO
/*
# define SIGLOST 29
*/
# define SIGPWR 30
# define SIGSYS 31
# define SIGUNUSED 31
/* These should not be considered constants from userland. */
# define SIGRTMIN 32
# define SIGRTMAX (_NSIG-1)
/*
* SA_FLAGS values :
*
* SA_NOCLDSTOP flag to turn off SIGCHLD when children stop .
* SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies .
* SA_SIGINFO deliver the signal with SIGINFO structs
* SA_ONSTACK indicates that a registered stack_t will be used .
* SA_RESTART flag to get restarting signals ( which were the default long ago )
* SA_NODEFER prevents the current signal from being masked in the handler .
* SA_RESETHAND clears the handler when the signal is delivered .
*
* SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
* Unix names RESETHAND and NODEFER respectively .
*/
# define SA_NOCLDSTOP 0x00000001
# define SA_NOCLDWAIT 0x00000002
# define SA_SIGINFO 0x00000004
# define SA_RESTORER 0x04000000
# define SA_ONSTACK 0x08000000
# define SA_RESTART 0x10000000
# define SA_NODEFER 0x40000000
# define SA_RESETHAND 0x80000000
# define SA_NOMASK SA_NODEFER
# define SA_ONESHOT SA_RESETHAND
/*
* sigaltstack controls
*/
# define SS_ONSTACK 1
# define SS_DISABLE 2
# define MINSIGSTKSZ 2048
# define SIGSTKSZ 8192
2009-05-13 22:56:24 +00:00
# include <asm-generic/signal-defs.h>
[PATCH] avr32 architecture
This adds support for the Atmel AVR32 architecture as well as the AT32AP7000
CPU and the AT32STK1000 development board.
AVR32 is a new high-performance 32-bit RISC microprocessor core, designed for
cost-sensitive embedded applications, with particular emphasis on low power
consumption and high code density. The AVR32 architecture is not binary
compatible with earlier 8-bit AVR architectures.
The AVR32 architecture, including the instruction set, is described by the
AVR32 Architecture Manual, available from
http://www.atmel.com/dyn/resources/prod_documents/doc32000.pdf
The Atmel AT32AP7000 is the first CPU implementing the AVR32 architecture. It
features a 7-stage pipeline, 16KB instruction and data caches and a full
Memory Management Unit. It also comes with a large set of integrated
peripherals, many of which are shared with the AT91 ARM-based controllers from
Atmel.
Full data sheet is available from
http://www.atmel.com/dyn/resources/prod_documents/doc32003.pdf
while the CPU core implementation including caches and MMU is documented by
the AVR32 AP Technical Reference, available from
http://www.atmel.com/dyn/resources/prod_documents/doc32001.pdf
Information about the AT32STK1000 development board can be found at
http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3918
including a BSP CD image with an earlier version of this patch, development
tools (binaries and source/patches) and a root filesystem image suitable for
booting from SD card.
Alternatively, there's a preliminary "getting started" guide available at
http://avr32linux.org/twiki/bin/view/Main/GettingStarted which provides links
to the sources and patches you will need in order to set up a cross-compiling
environment for avr32-linux.
This patch, as well as the other patches included with the BSP and the
toolchain patches, is actively supported by Atmel Corporation.
[dmccr@us.ibm.com: Fix more pxx_page macro locations]
[bunk@stusta.de: fix `make defconfig']
Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Dave McCracken <dmccr@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-09-25 23:32:13 -07:00
# ifdef __KERNEL__
struct old_sigaction {
__sighandler_t sa_handler ;
old_sigset_t sa_mask ;
unsigned long sa_flags ;
__sigrestore_t sa_restorer ;
} ;
struct sigaction {
__sighandler_t sa_handler ;
unsigned long sa_flags ;
__sigrestore_t sa_restorer ;
sigset_t sa_mask ; /* mask last for extensibility */
} ;
struct k_sigaction {
struct sigaction sa ;
} ;
# else
/* Here we must cater to libcs that poke about in kernel headers. */
struct sigaction {
union {
__sighandler_t _sa_handler ;
void ( * _sa_sigaction ) ( int , struct siginfo * , void * ) ;
} _u ;
sigset_t sa_mask ;
unsigned long sa_flags ;
void ( * sa_restorer ) ( void ) ;
} ;
# define sa_handler _u._sa_handler
# define sa_sigaction _u._sa_sigaction
# endif /* __KERNEL__ */
typedef struct sigaltstack {
void __user * ss_sp ;
int ss_flags ;
size_t ss_size ;
} stack_t ;
# ifdef __KERNEL__
# include <asm/sigcontext.h>
# undef __HAVE_ARCH_SIG_BITOPS
# define ptrace_signal_deliver(regs, cookie) do { } while (0)
# endif /* __KERNEL__ */
# endif