diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-nios2/bitops.h | 37 | ||||
| -rw-r--r-- | include/asm-nios2/byteorder.h | 30 | ||||
| -rw-r--r-- | include/asm-nios2/cache.h | 30 | ||||
| -rw-r--r-- | include/asm-nios2/global_data.h | 50 | ||||
| -rw-r--r-- | include/asm-nios2/io.h | 36 | ||||
| -rw-r--r-- | include/asm-nios2/opcodes.h | 131 | ||||
| -rw-r--r-- | include/asm-nios2/posix_types.h | 63 | ||||
| -rw-r--r-- | include/asm-nios2/processor.h | 26 | ||||
| -rw-r--r-- | include/asm-nios2/psr.h | 28 | ||||
| -rw-r--r-- | include/asm-nios2/ptrace.h | 33 | ||||
| -rw-r--r-- | include/asm-nios2/status_led.h | 31 | ||||
| -rw-r--r-- | include/asm-nios2/string.h | 47 | ||||
| -rw-r--r-- | include/asm-nios2/system.h | 26 | ||||
| -rw-r--r-- | include/asm-nios2/types.h | 57 | ||||
| -rw-r--r-- | include/asm-nios2/u-boot.h | 41 | ||||
| -rw-r--r-- | include/configs/MPC8541CDS.h | 12 | ||||
| -rw-r--r-- | include/configs/MPC8555CDS.h | 12 | ||||
| -rw-r--r-- | include/configs/PCI5441.h | 155 | ||||
| -rw-r--r-- | include/configs/PK1C20.h | 188 | ||||
| -rw-r--r-- | include/image.h | 1 | ||||
| -rw-r--r-- | include/nios2-io.h | 200 | ||||
| -rw-r--r-- | include/nios2.h | 63 | ||||
| -rw-r--r-- | include/status_led.h | 3 | 
23 files changed, 1276 insertions, 24 deletions
| diff --git a/include/asm-nios2/bitops.h b/include/asm-nios2/bitops.h new file mode 100644 index 000000000..e6c1a850d --- /dev/null +++ b/include/asm-nios2/bitops.h @@ -0,0 +1,37 @@ +/* + * (C) Copyright 2004, Psyent Corporation <www.psyent.com> + * Scott McNutt <smcnutt@psyent.com> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __ASM_NIOS2_BITOPS_H_ +#define __ASM_NIOS2_BITOPS_H_ + + +extern void set_bit(int nr, volatile void * a); +extern void clear_bit(int nr, volatile void * a); +extern int test_and_clear_bit(int nr, volatile void * a); +extern void change_bit(unsigned long nr, volatile void *addr); +extern int test_and_set_bit(int nr, volatile void * a); +extern int test_and_change_bit(int nr, volatile void * addr); +extern int test_bit(int nr, volatile void * a); +extern int ffs(int i); + +#endif /* __ASM_NIOS2_BITOPS_H */ diff --git a/include/asm-nios2/byteorder.h b/include/asm-nios2/byteorder.h new file mode 100644 index 000000000..495c823af --- /dev/null +++ b/include/asm-nios2/byteorder.h @@ -0,0 +1,30 @@ +/* +* (C) Copyright 2004, Psyent Corporation <www.psyent.com> +* Scott McNutt <smcnutt@psyent.com> +* +* See file CREDITS for list of people who contributed to this +* project. +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place, Suite 330, Boston, +* MA 02111-1307 USA +*/ + +#ifndef __ASM_NIOS2_BYTEORDER_H_ +#define __ASM_NIOS2_BYTEORDER_H_ + +#include <asm/types.h> +#include <linux/byteorder/little_endian.h> + +#endif /* __ASM_NIOS2_BYTEORDER_H_ */ diff --git a/include/asm-nios2/cache.h b/include/asm-nios2/cache.h new file mode 100644 index 000000000..c78f34308 --- /dev/null +++ b/include/asm-nios2/cache.h @@ -0,0 +1,30 @@ +/* + * (C) Copyright 2004, Psyent Corporation <www.psyent.com> + * Scott McNutt <smcnutt@psyent.com> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __ASM_NIOS2_CACHE_H_ +#define __ASM_NIOS2_CACHE_H_ + +extern void flush_dcache (unsigned long start, unsigned long size); +extern void flush_icache (unsigned long start, unsigned long size); + +#endif /* __ASM_NIOS2_CACHE_H_ */ diff --git a/include/asm-nios2/global_data.h b/include/asm-nios2/global_data.h new file mode 100644 index 000000000..a1ac28856 --- /dev/null +++ b/include/asm-nios2/global_data.h @@ -0,0 +1,50 @@ +/* + * (C) Copyright 2004, Psyent Corporation <www.psyent.com> + * Scott McNutt <smcnutt@psyent.com> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ +#ifndef	__ASM_NIOS2_GLOBALDATA_H_ +#define __ASM_NIOS2_GLOBALDATA_H_ + +typedef	struct	global_data { +	bd_t		*bd; +	unsigned long	flags; +	unsigned long	baudrate; +	unsigned long	cpu_clk;	/* CPU clock in Hz!		*/ +	unsigned long	have_console;	/* serial_init() was called */ +	unsigned long	ram_size;	/* RAM size */ +	unsigned long	reloc_off;	/* Relocation Offset */ +	unsigned long	env_addr;	/* Address  of Environment struct */ +	unsigned long	env_valid;	/* Checksum of Environment valid */ +#if defined(CONFIG_POST) || defined(CONFIG_LOGBUFFER) +	unsigned long	post_log_word;	/* Record POST activities */ +	unsigned long	post_init_f_time; /* When post_init_f started */ +#endif +	void		**jt;		/* Standalone app jump table */ +} gd_t; + +/* flags */ +#define	GD_FLG_RELOC	0x00001		/* Code was relocated to RAM		*/ +#define	GD_FLG_DEVINIT	0x00002		/* Devices have been initialized	*/ +#define	GD_FLG_SILENT	0x00004		/* Silent mode				*/ + +#define DECLARE_GLOBAL_DATA_PTR     register gd_t *gd asm ("r15") + +#endif /* __ASM_NIOS2_GLOBALDATA_H_ */ diff --git a/include/asm-nios2/io.h b/include/asm-nios2/io.h new file mode 100644 index 000000000..c2c8ffcc3 --- /dev/null +++ b/include/asm-nios2/io.h @@ -0,0 +1,36 @@ +/* + * (C) Copyright 2004, Psyent Corporation <www.psyent.com> + * Scott McNutt <smcnutt@psyent.com> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __ASM_NIOS2_IO_H_ +#define __ASM_NIOS2_IO_H_ + +#define sync() asm volatile ("sync" : : : "memory"); + +extern unsigned char inb (unsigned char *port); +extern unsigned short inw (unsigned short *port); +extern unsigned inl (unsigned port); +extern void outb (unsigned char val, unsigned char *port); +extern void outw (unsigned short val, unsigned short *port); +extern void outl (unsigned val, unsigned port); + +#endif /* __ASM_NIOS2_IO_H_ */ diff --git a/include/asm-nios2/opcodes.h b/include/asm-nios2/opcodes.h new file mode 100644 index 000000000..211f8ba9d --- /dev/null +++ b/include/asm-nios2/opcodes.h @@ -0,0 +1,131 @@ +/* + * (C) Copyright 2004, Psyent Corporation <www.psyent.com> + * Scott McNutt <smcnutt@psyent.com> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __ASM_NIOS2_OPCODES_H_ +#define __ASM_NIOS2_OPCODES_H_ + +#define OPCODE_OP(inst)	((inst) & 0x3f) +#define OPCODE_OPX(inst) (((inst)>>11) & 0x3f) +#define OPCODE_RA(inst) (((inst)>>27) & 01f) +#define OPCODE_RB(inst) (((inst)>>22) & 01f) +#define OPCODE_RC(inst) (((inst)>>17) & 01f) + +/* I-TYPE (immediate) and J-TYPE (jump) opcodes + */ +#define OPCODE_CALL	0x00 +#define OPCODE_LDBU	0x03 +#define OPCODE_ADDI	0x04 +#define OPCODE_STB	0x05 +#define OPCODE_BR	0x06 +#define OPCODE_LDB	0x07 +#define OPCODE_CMPGEI	0x08 +#define OPCODE_LDHU	0x0B +#define OPCODE_ANDI	0x0C +#define OPCODE_STH	0x0D +#define OPCODE_BGE	0x0E +#define OPCODE_LDH	0x0F +#define OPCODE_CMPLTI	0x10 +#define OPCODE_XORI	0x1C +#define OPCODE_ORI	0x14 +#define OPCODE_STW	0x15 +#define OPCODE_BLT	0x16 +#define OPCODE_LDW	0x17 +#define OPCODE_CMPNEI	0x18 +#define OPCODE_BNE	0x1E +#define OPCODE_CMPEQI	0x20 +#define OPCODE_LDBUIO	0x23 +#define OPCODE_MULI	0x24 +#define OPCODE_STBIO	0x25 +#define OPCODE_BEQ	0x26 +#define OPCODE_LDBIO	0x27 +#define OPCODE_CMPGEUI	0x28 +#define OPCODE_ANDHI	0x2C +#define OPCODE_STHIO	0x2D +#define OPCODE_BGEU	0x2E +#define OPCODE_LDHIO	0x2F +#define OPCODE_CMPLTUI	0x30 +#define OPCODE_CUSTOM	0x32 +#define OPCODE_INITD	0x33 +#define OPCODE_ORHI	0x34 +#define OPCODE_STWIO	0x35 +#define OPCODE_BLTU	0x36 +#define OPCODE_LDWIO	0x37 +#define OPCODE_RTYPE	0x3A +#define OPCODE_LDHUIO	0x2B +#define OPCODE_FLUSHD	0x3B +#define OPCODE_XORHI	0x3C + +/* R-Type (register) OPX field encodings + */ +#define OPCODE_ERET	0x01 +#define OPCODE_ROLI	0x02 +#define OPCODE_ROL	0x03 +#define OPCODE_FLUSHP	0x04 +#define OPCODE_RET	0x05 +#define OPCODE_NOR	0x06 +#define OPCODE_MULXUU	0x07 +#define OPCODE_CMPGE	0x08 +#define OPCODE_BRET	0x09 +#define OPCODE_ROR	0x0B +#define OPCODE_FLUSHI	0x0C +#define OPCODE_JMP	0x0D +#define OPCODE_AND	0x0E + +#define OPCODE_CMPLT	0x10 +#define OPCODE_SLLI	0x12 +#define OPCODE_SLL	0x13 +#define OPCODE_OR	0x16 +#define OPCODE_MULXSU	0x17 +#define OPCODE_CMPNE	0x18 +#define OPCODE_SRLI	0x1A +#define OPCODE_SRL	0x1B +#define OPCODE_NEXTPC	0x1C +#define OPCODE_CALLR	0x1D +#define OPCODE_XOR	0x1E +#define OPCODE_MULXSS	0x1F + +#define OPCODE_CMPEQ	0x20 +#define OPCODE_CMPLTU	0x30 +#define OPCODE_ADD	0x31 +#define OPCODE_DIVU	0x24 +#define OPCODE_DIV	0x25 +#define OPCODE_RDCTL	0x26 +#define OPCODE_MUL	0x27 +#define OPCODE_CMPGEU	0x28 +#define OPCODE_TRAP	0x2D +#define OPCODE_WRCTL	0x2E + +#define OPCODE_BREAK	0x34 +#define OPCODE_SYNC	0x36 +#define OPCODE_INITI	0x29 +#define OPCODE_SUB	0x39 +#define OPCODE_SRAI	0x3A +#define OPCODE_SRA	0x3B + +/*Full instruction encodings for R-Type, without the R's ;-) + * + * TODO: BREAK, BRET, ERET, RET, SYNC (as needed) + */ +#define OPC_TRAP	0x003b683a + +#endif /* __ASM_NIOS2_OPCODES_H_ */ diff --git a/include/asm-nios2/posix_types.h b/include/asm-nios2/posix_types.h new file mode 100644 index 000000000..c2deea6bf --- /dev/null +++ b/include/asm-nios2/posix_types.h @@ -0,0 +1,63 @@ +#ifndef __ASM_NIOS2_POSIX_TYPES_H_ +#define __ASM_NIOS2_POSIX_TYPES_H_ + +/* + * This file is generally used by user-level software, so you need to + * be a little careful about namespace pollution etc.  Also, we cannot + * assume GCC is being used. + */ + +typedef unsigned short	__kernel_dev_t; +typedef unsigned long	__kernel_ino_t; +typedef unsigned short	__kernel_mode_t; +typedef unsigned short	__kernel_nlink_t; +typedef long		__kernel_off_t; +typedef int		__kernel_pid_t; +typedef unsigned short	__kernel_ipc_pid_t; +typedef unsigned short	__kernel_uid_t; +typedef unsigned short	__kernel_gid_t; +typedef unsigned long	__kernel_size_t; +typedef int		__kernel_ssize_t; +typedef int		__kernel_ptrdiff_t; +typedef long		__kernel_time_t; +typedef long		__kernel_suseconds_t; +typedef long		__kernel_clock_t; +typedef int		__kernel_daddr_t; +typedef char *		__kernel_caddr_t; +typedef unsigned short	__kernel_uid16_t; +typedef unsigned short	__kernel_gid16_t; +typedef unsigned int	__kernel_uid32_t; +typedef unsigned int	__kernel_gid32_t; + +typedef unsigned short	__kernel_old_uid_t; +typedef unsigned short	__kernel_old_gid_t; + +#ifdef __GNUC__ +typedef long long	__kernel_loff_t; +#endif + +typedef struct { +#if defined(__KERNEL__) || defined(__USE_ALL) +	int	val[2]; +#else /* !defined(__KERNEL__) && !defined(__USE_ALL) */ +	int	__val[2]; +#endif /* !defined(__KERNEL__) && !defined(__USE_ALL) */ +} __kernel_fsid_t; + +#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) + +#undef	__FD_SET +#define	__FD_SET(d, set)	((set)->fds_bits[__FDELT(d)] |= __FDMASK(d)) + +#undef	__FD_CLR +#define	__FD_CLR(d, set)	((set)->fds_bits[__FDELT(d)] &= ~__FDMASK(d)) + +#undef	__FD_ISSET +#define	__FD_ISSET(d, set)	((set)->fds_bits[__FDELT(d)] & __FDMASK(d)) + +#undef	__FD_ZERO +#define __FD_ZERO(fdsetp) (memset (fdsetp, 0, sizeof(*(fd_set *)fdsetp))) + +#endif /* defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) */ + +#endif /* __ASM_NIOS2_POSIX_TYPES_H_ */ diff --git a/include/asm-nios2/processor.h b/include/asm-nios2/processor.h new file mode 100644 index 000000000..68502a530 --- /dev/null +++ b/include/asm-nios2/processor.h @@ -0,0 +1,26 @@ +/* + * (C) Copyright 2004, Psyent Corporation <www.psyent.com> + * Scott McNutt <smcnutt@psyent.com> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __ASM_NIOS2_PROCESSOR_H_ +#define __ASM_NIOS2_PROCESSOR_H_ +#endif /* __ASM_NIOS2_PROCESSOR_H_ */ diff --git a/include/asm-nios2/psr.h b/include/asm-nios2/psr.h new file mode 100644 index 000000000..a498b46cf --- /dev/null +++ b/include/asm-nios2/psr.h @@ -0,0 +1,28 @@ +/* + * (C) Copyright 2004, Psyent Corporation <www.psyent.com> + * Scott McNutt <smcnutt@psyent.com> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __ASM_NIOS2_PSR_H_ +#define __ASM_NIOS2_PSR_H_ + + +#endif /* __ASM_NIOS2_PSR_H_ */ diff --git a/include/asm-nios2/ptrace.h b/include/asm-nios2/ptrace.h new file mode 100644 index 000000000..543088014 --- /dev/null +++ b/include/asm-nios2/ptrace.h @@ -0,0 +1,33 @@ +/* + * (C) Copyright 2004, Psyent Corporation <www.psyent.com> + * Scott McNutt <smcnutt@psyent.com> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __ASM_NIOS2_PTRACE_H_ +#define __ASM_NIOS2_PTRACE_H_ + +struct pt_regs { +	unsigned reg[32]; +	unsigned status; +}; + + +#endif /* __ASM_NIOS2_PTRACE_H_ */ diff --git a/include/asm-nios2/status_led.h b/include/asm-nios2/status_led.h new file mode 100644 index 000000000..20f8d9019 --- /dev/null +++ b/include/asm-nios2/status_led.h @@ -0,0 +1,31 @@ +/* + * (C) Copyright 2004, Psyent Corporation <www.psyent.com> + * Scott McNutt <smcnutt@psyent.com> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ +#ifndef __ASM_STATUS_LED_H__ +#define __ASM_STATUS_LED_H__ + +typedef unsigned led_id_t; +extern void __led_init (led_id_t mask, int state); +extern void __led_set (led_id_t mask, int state); +inline void __led_toggle (led_id_t mask); + +#endif	/* __ASM_STATUS_LED_H__ */ diff --git a/include/asm-nios2/string.h b/include/asm-nios2/string.h new file mode 100644 index 000000000..e86490354 --- /dev/null +++ b/include/asm-nios2/string.h @@ -0,0 +1,47 @@ +/* + * (C) Copyright 2004, Psyent Corporation <www.psyent.com> + * Scott McNutt <smcnutt@psyent.com> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ +#ifndef __ASM_NIOS2_STRING_H_ +#define __ASM_NIOS2_STRING_H_ + +#undef __HAVE_ARCH_STRRCHR +extern char * strrchr(const char * s, int c); + +#undef __HAVE_ARCH_STRCHR +extern char * strchr(const char * s, int c); + +#undef __HAVE_ARCH_MEMCPY +extern void * memcpy(void *, const void *, __kernel_size_t); + +#undef __HAVE_ARCH_MEMMOVE +extern void * memmove(void *, const void *, __kernel_size_t); + +#undef __HAVE_ARCH_MEMCHR +extern void * memchr(const void *, int, __kernel_size_t); + +#undef __HAVE_ARCH_MEMSET +extern void * memset(void *, int, __kernel_size_t); + +#undef __HAVE_ARCH_MEMZERO +extern void memzero(void *ptr, __kernel_size_t n); + +#endif /* __ASM_NIOS2_STRING_H_ */ diff --git a/include/asm-nios2/system.h b/include/asm-nios2/system.h new file mode 100644 index 000000000..ec84f5935 --- /dev/null +++ b/include/asm-nios2/system.h @@ -0,0 +1,26 @@ +/* + * (C) Copyright 2004, Psyent Corporation <www.psyent.com> + * Scott McNutt <smcnutt@psyent.com> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ +#ifndef __ASM_NIOS2_SYSTEM_H_ +#define __ASM_NIOS2_SYSTEM_H_ + +#endif /* __ASM_NIOS2_SYSTEM_H */ diff --git a/include/asm-nios2/types.h b/include/asm-nios2/types.h new file mode 100644 index 000000000..39e264178 --- /dev/null +++ b/include/asm-nios2/types.h @@ -0,0 +1,57 @@ +#ifndef __ASM_NIOS2_TYPES_H_ +#define __ASM_NIOS2_TYPES_H_ + +/* + * This file is never included by application software unless + * explicitly requested (e.g., via linux/types.h) in which case the + * application is Linux specific so (user-) name space pollution is + * not a major issue.  However, for interoperability, libraries still + * need to be careful to avoid a name clashes. + */ + +typedef unsigned short umode_t; + +/* + * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the + * header files exported to user space + */ + +typedef __signed__ char __s8; +typedef unsigned char __u8; + +typedef __signed__ short __s16; +typedef unsigned short __u16; + +typedef __signed__ int __s32; +typedef unsigned int __u32; + +#if defined(__GNUC__) && !defined(__STRICT_ANSI__) +typedef __signed__ long long __s64; +typedef unsigned long long __u64; +#endif + +/* + * These aren't exported outside the kernel to avoid name space clashes + */ +#ifdef __KERNEL__ + +typedef signed char s8; +typedef unsigned char u8; + +typedef signed short s16; +typedef unsigned short u16; + +typedef signed int s32; +typedef unsigned int u32; + +typedef signed long long s64; +typedef unsigned long long u64; + +#define BITS_PER_LONG 32 + +/* Dma addresses are 32-bits wide.  */ + +typedef u32 dma_addr_t; +#endif /* __KERNEL__ */ + +#endif /* __ASM_NIOS2_TYPES_H */ diff --git a/include/asm-nios2/u-boot.h b/include/asm-nios2/u-boot.h new file mode 100644 index 000000000..b820e4ca8 --- /dev/null +++ b/include/asm-nios2/u-boot.h @@ -0,0 +1,41 @@ +/* + * (C) Copyright 2004, Psyent Corporation <www.psyent.com> + * Scott McNutt <smcnutt@psyent.com> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __ASM_NIOS2_U_BOOT_H_ +#define __ASM_NIOS2_U_BOOT_H_ + +typedef struct bd_info { +	unsigned long	bi_memstart;	/* start of DRAM memory */ +	unsigned long	bi_memsize;	/* size	 of DRAM memory in bytes */ +	unsigned long	bi_flashstart;	/* start of FLASH memory */ +	unsigned long	bi_flashsize;	/* size	 of FLASH memory */ +	unsigned long	bi_flashoffset; /* reserved area for startup monitor */ +	unsigned long	bi_sramstart;	/* start of SRAM memory */ +	unsigned long	bi_sramsize;	/* size	 of SRAM memory */ +	unsigned long	bi_ip_addr;	/* IP Address */ +	unsigned char	bi_enetaddr[6]; /* Ethernet adress */ +	unsigned long	bi_baudrate;	/* Console Baudrate */ +} bd_t; + + +#endif	/* __ASM_NIOS2_U_BOOT_H_ */ diff --git a/include/configs/MPC8541CDS.h b/include/configs/MPC8541CDS.h index 0b54db37b..982424140 100644 --- a/include/configs/MPC8541CDS.h +++ b/include/configs/MPC8541CDS.h @@ -26,7 +26,6 @@   * Please refer to doc/README.mpc85xxcds for more info.   *   */ -  #ifndef __CONFIG_H  #define __CONFIG_H @@ -72,7 +71,6 @@ extern unsigned long get_clock_freq(void);  #define CFG_MEMTEST_START	0x00200000	/* memtest works on */  #define CFG_MEMTEST_END		0x00400000 -  /*   * Base addresses -- Note these are effective addresses where the   * actual resources get mapped (not physical addresses) @@ -81,7 +79,6 @@ extern unsigned long get_clock_freq(void);  #define CFG_CCSRBAR		0xe0000000	/* relocated CCSRBAR */  #define CFG_IMMR		CFG_CCSRBAR	/* PQII uses CFG_IMMR */ -  /*   * DDR Setup   */ @@ -97,8 +94,6 @@ extern unsigned long get_clock_freq(void);  #error ("CONFIG_SPD_EEPROM is required by MPC85555CDS")  #endif - -  /*   * SDRAM on the Local Bus   */ @@ -244,7 +239,6 @@ extern unsigned long get_clock_freq(void);  #define CFG_BR3_PRELIM   0xf8000801  #define CFG_OR3_PRELIM   0xfff00ff7 -  #define CONFIG_L1_INIT_RAM  #define CFG_INIT_RAM_LOCK 	1  #define CFG_INIT_RAM_ADDR	0xe4010000	/* Initial RAM address */ @@ -344,8 +338,6 @@ extern unsigned long get_clock_freq(void);  #endif	/* CONFIG_TSEC_ENET */ - -  /*   * Environment   */ @@ -369,8 +361,6 @@ extern unsigned long get_clock_freq(void);  				| CFG_CMD_I2C \  				| CFG_CMD_MII)  #endif - -  #include <cmd_confdefs.h>  #undef CONFIG_WATCHDOG			/* watchdog disabled */ @@ -418,7 +408,6 @@ extern unsigned long get_clock_freq(void);  #define CONFIG_KGDB_SER_INDEX	2	/* which serial port to use */  #endif -  /*   * Environment Configuration   */ @@ -470,5 +459,4 @@ extern unsigned long get_clock_freq(void);  #define CONFIG_BOOTCOMMAND  CONFIG_NFSBOOTCOMMAND -  #endif	/* __CONFIG_H */ diff --git a/include/configs/MPC8555CDS.h b/include/configs/MPC8555CDS.h index 73436353c..6b4191ef9 100644 --- a/include/configs/MPC8555CDS.h +++ b/include/configs/MPC8555CDS.h @@ -26,7 +26,6 @@   * Please refer to doc/README.mpc85xxcds for more info.   *   */ -  #ifndef __CONFIG_H  #define __CONFIG_H @@ -72,7 +71,6 @@ extern unsigned long get_clock_freq(void);  #define CFG_MEMTEST_START	0x00200000	/* memtest works on */  #define CFG_MEMTEST_END		0x00400000 -  /*   * Base addresses -- Note these are effective addresses where the   * actual resources get mapped (not physical addresses) @@ -81,7 +79,6 @@ extern unsigned long get_clock_freq(void);  #define CFG_CCSRBAR		0xe0000000	/* relocated CCSRBAR */  #define CFG_IMMR		CFG_CCSRBAR	/* PQII uses CFG_IMMR */ -  /*   * DDR Setup   */ @@ -97,8 +94,6 @@ extern unsigned long get_clock_freq(void);  #error ("CONFIG_SPD_EEPROM is required by MPC85555CDS")  #endif - -  /*   * SDRAM on the Local Bus   */ @@ -244,7 +239,6 @@ extern unsigned long get_clock_freq(void);  #define CFG_BR3_PRELIM   0xf8000801  #define CFG_OR3_PRELIM   0xfff00ff7 -  #define CONFIG_L1_INIT_RAM  #define CFG_INIT_RAM_LOCK 	1  #define CFG_INIT_RAM_ADDR	0xe4010000	/* Initial RAM address */ @@ -344,8 +338,6 @@ extern unsigned long get_clock_freq(void);  #endif	/* CONFIG_TSEC_ENET */ - -  /*   * Environment   */ @@ -369,8 +361,6 @@ extern unsigned long get_clock_freq(void);  				| CFG_CMD_I2C \  				| CFG_CMD_MII)  #endif - -  #include <cmd_confdefs.h>  #undef CONFIG_WATCHDOG			/* watchdog disabled */ @@ -418,7 +408,6 @@ extern unsigned long get_clock_freq(void);  #define CONFIG_KGDB_SER_INDEX	2	/* which serial port to use */  #endif -  /*   * Environment Configuration   */ @@ -470,5 +459,4 @@ extern unsigned long get_clock_freq(void);  #define CONFIG_BOOTCOMMAND  CONFIG_NFSBOOTCOMMAND -  #endif	/* __CONFIG_H */ diff --git a/include/configs/PCI5441.h b/include/configs/PCI5441.h new file mode 100644 index 000000000..3a7f7f064 --- /dev/null +++ b/include/configs/PCI5441.h @@ -0,0 +1,155 @@ +/* + * (C) Copyright 2004, Psyent Corporation <www.psyent.com> + * Scott McNutt <smcnutt@psyent.com> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __CONFIG_H +#define __CONFIG_H + +/*------------------------------------------------------------------------ + * BOARD/CPU + *----------------------------------------------------------------------*/ +#define	CONFIG_PCI5441		1		/* PCI-5441 board	*/ +#define CONFIG_SYS_CLK_FREQ	50000000	/* 50 MHz core clk	*/ + +#define CFG_RESET_ADDR		0x00000000	/* Hard-reset address	*/ +#define CFG_EXCEPTION_ADDR	0x01000020	/* Exception entry point*/ +#define CFG_NIOS_SYSID_BASE	0x00920828	/* System id address	*/ +#define	CONFIG_BOARD_EARLY_INIT_F 1	/* enable early board-spec. init*/ + +/*------------------------------------------------------------------------ + * CACHE -- the following will support II/s and II/f. The II/s does not + * have dcache, so the cache instructions will behave as NOPs. + *----------------------------------------------------------------------*/ +#define CFG_ICACHE_SIZE		4096		/* 4 KByte total	*/ +#define CFG_ICACHELINE_SIZE	32		/* 32 bytes/line	*/ +#define CFG_DCACHE_SIZE		2048		/* 2 KByte (II/f)	*/ +#define CFG_DCACHELINE_SIZE	4		/* 4 bytes/line (II/f)	*/ + +/*------------------------------------------------------------------------ + * MEMORY BASE ADDRESSES + *----------------------------------------------------------------------*/ +#define CFG_FLASH_BASE		0x00000000	/* FLASH base addr	*/ +#define CFG_FLASH_SIZE		0x00800000	/* 8 MByte		*/ +#define CFG_SDRAM_BASE		0x01000000	/* SDRAM base addr	*/ +#define CFG_SDRAM_SIZE		0x01000000	/* 16 MByte		*/ + +/*------------------------------------------------------------------------ + * MEMORY ORGANIZATION + * 	-Monitor at top. + * 	-The heap is placed below the monitor. + * 	-Global data is placed below the heap. + * 	-The stack is placed below global data (&grows down). + *----------------------------------------------------------------------*/ +#define CFG_MONITOR_LEN		(128 * 1024)	/* Reserve 128k		*/ +#define CFG_GBL_DATA_SIZE	128		/* Global data size rsvd*/ +#define CFG_MALLOC_LEN		(CFG_ENV_SIZE + 128*1024) + +#define CFG_MONITOR_BASE	TEXT_BASE +#define CFG_MALLOC_BASE		(CFG_MONITOR_BASE - CFG_MALLOC_LEN) +#define CFG_GBL_DATA_OFFSET	(CFG_MALLOC_BASE - CFG_GBL_DATA_SIZE) +#define CFG_INIT_SP		CFG_GBL_DATA_OFFSET + +/*------------------------------------------------------------------------ + * FLASH (AM29LV065D) + *----------------------------------------------------------------------*/ +#define CFG_MAX_FLASH_SECT	128		/* Max # sects per bank */ +#define CFG_MAX_FLASH_BANKS	1		/* Max # of flash banks */ +#define CFG_FLASH_ERASE_TOUT	8000		/* Erase timeout (msec) */ +#define CFG_FLASH_WRITE_TOUT	100		/* Write timeout (msec) */ +#define CFG_FLASH_WORD_SIZE	unsigned char	/* flash word size	*/ + +/*------------------------------------------------------------------------ + * ENVIRONMENT -- Put environment in sector CFG_MONITOR_LEN above + * CFG_RESET_ADDR, since we assume the monitor is stored at the + * reset address, no? This will keep the environment in user region + * of flash. NOTE: the monitor length must be multiple of sector size + * (which is common practice). + *----------------------------------------------------------------------*/ +#define	CFG_ENV_IS_IN_FLASH	1		/* Environment in flash */ +#define CFG_ENV_SIZE		(64 * 1024)	/* 64 KByte (1 sector)	*/ +#define CONFIG_ENV_OVERWRITE			/* Serial change Ok	*/ +#define CFG_ENV_ADDR 	(CFG_RESET_ADDR + CFG_MONITOR_LEN) + +/*------------------------------------------------------------------------ + * CONSOLE + *----------------------------------------------------------------------*/ +#if defined(CONFIG_CONSOLE_JTAG) +#define CFG_NIOS_CONSOLE	0x00920820	/* JTAG UART base addr	*/ +#else +#define CFG_NIOS_CONSOLE	0x009208a0	/* UART base addr	*/ +#endif + +#define CFG_NIOS_FIXEDBAUD	1		/* Baudrate is fixed	*/ +#define CONFIG_BAUDRATE		115200		/* Initial baudrate	*/ +#define CFG_BAUDRATE_TABLE	{115200}	/* It's fixed ;-)	*/ + +#define CFG_CONSOLE_INFO_QUIET	1		/* Suppress console info*/ + +/*------------------------------------------------------------------------ + * DEBUG + *----------------------------------------------------------------------*/ +#undef CONFIG_ROM_STUBS				/* Stubs not in ROM	*/ + +/*------------------------------------------------------------------------ + * TIMEBASE -- + * + * The high res timer defaults to 1 msec. Since it includes the period + * registers, we can slow it down to 10 msec using TMRCNT. If the default + * period is acceptable, TMRCNT can be left undefined. + *----------------------------------------------------------------------*/ +#define CFG_NIOS_TMRBASE	0x00920860	/* Tick timer base addr	*/ +#define CFG_NIOS_TMRIRQ		3		/* Timer IRQ num	*/ +#define CFG_NIOS_TMRMS		10		/* 10 msec per tick	*/ +#define CFG_NIOS_TMRCNT	(CFG_NIOS_TMRMS * (CONFIG_SYS_CLK_FREQ/1000)) +#define	CFG_HZ		(CONFIG_SYS_CLK_FREQ/(CFG_NIOS_TMRCNT + 1)) + +/*------------------------------------------------------------------------ + * COMMANDS + *----------------------------------------------------------------------*/ +#define CONFIG_COMMANDS		(CFG_CMD_BDI	| \ +				 CFG_CMD_ECHO	| \ +				 CFG_CMD_ENV	| \ +				 CFG_CMD_FLASH	| \ +				 CFG_CMD_IMI	| \ +				 CFG_CMD_IRQ	| \ +				 CFG_CMD_LOADS	| \ +				 CFG_CMD_LOADB	| \ +				 CFG_CMD_MEMORY	| \ +				 CFG_CMD_MISC	| \ +				 CFG_CMD_RUN	| \ +				 CFG_CMD_SAVES	) +#include <cmd_confdefs.h> + +/*------------------------------------------------------------------------ + * MISC + *----------------------------------------------------------------------*/ +#define	CFG_LONGHELP				/* Provide extended help*/ +#define	CFG_PROMPT		"==> "		/* Command prompt	*/ +#define	CFG_CBSIZE		256		/* Console I/O buf size	*/ +#define	CFG_MAXARGS		16	    	/* Max command args	*/ +#define CFG_BARGSIZE		CFG_CBSIZE 	/* Boot arg buf size	*/ +#define	CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print buf size	*/ +#define	CFG_LOAD_ADDR		CFG_SDRAM_BASE	/* Default load address	*/ +#define CFG_MEMTEST_START	CFG_SDRAM_BASE	/* Start addr for test	*/ +#define CFG_MEMTEST_END		CFG_INIT_SP - 0x00020000 + +#endif	/* __CONFIG_H */ diff --git a/include/configs/PK1C20.h b/include/configs/PK1C20.h new file mode 100644 index 000000000..865c69b5b --- /dev/null +++ b/include/configs/PK1C20.h @@ -0,0 +1,188 @@ +/* + * (C) Copyright 2004, Psyent Corporation <www.psyent.com> + * Scott McNutt <smcnutt@psyent.com> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __CONFIG_H +#define __CONFIG_H + +/*------------------------------------------------------------------------ + * BOARD/CPU + *----------------------------------------------------------------------*/ +#define CONFIG_PK1C20		1		/* PK1C20 board		*/ +#define CONFIG_SYS_CLK_FREQ	50000000	/* 50 MHz core clk	*/ + +#define CFG_RESET_ADDR		0x00000000	/* Hard-reset address	*/ +#define CFG_EXCEPTION_ADDR	0x01000020	/* Exception entry point*/ +#define CFG_NIOS_SYSID_BASE	0x00920828	/* System id address	*/ +#define CONFIG_BOARD_EARLY_INIT_F 1	/* enable early board-spec. init*/ + +/*------------------------------------------------------------------------ + * CACHE -- the following will support II/s and II/f. The II/s does not + * have dcache, so the cache instructions will behave as NOPs. + *----------------------------------------------------------------------*/ +#define CFG_ICACHE_SIZE		4096		/* 4 KByte total	*/ +#define CFG_ICACHELINE_SIZE	32		/* 32 bytes/line	*/ +#define CFG_DCACHE_SIZE		2048		/* 2 KByte (II/f)	*/ +#define CFG_DCACHELINE_SIZE	4		/* 4 bytes/line (II/f)	*/ + +/*------------------------------------------------------------------------ + * MEMORY BASE ADDRESSES + *----------------------------------------------------------------------*/ +#define CFG_FLASH_BASE		0x00000000	/* FLASH base addr	*/ +#define CFG_FLASH_SIZE		0x00800000	/* 8 MByte		*/ +#define CFG_SDRAM_BASE		0x01000000	/* SDRAM base addr	*/ +#define CFG_SDRAM_SIZE		0x01000000	/* 16 MByte		*/ +#define CFG_SRAM_BASE		0x00800000	/* SRAM base addr	*/ +#define CFG_SRAM_SIZE		0x00200000	/* 2 MByte		*/ + +/*------------------------------------------------------------------------ + * MEMORY ORGANIZATION + *	-Monitor at top. + *	-The heap is placed below the monitor. + *	-Global data is placed below the heap. + *	-The stack is placed below global data (&grows down). + *----------------------------------------------------------------------*/ +#define CFG_MONITOR_LEN		(128 * 1024)	/* Reserve 128k		*/ +#define CFG_GBL_DATA_SIZE	128		/* Global data size rsvd*/ +#define CFG_MALLOC_LEN		(CFG_ENV_SIZE + 128*1024) + +#define CFG_MONITOR_BASE	TEXT_BASE +#define CFG_MALLOC_BASE		(CFG_MONITOR_BASE - CFG_MALLOC_LEN) +#define CFG_GBL_DATA_OFFSET	(CFG_MALLOC_BASE - CFG_GBL_DATA_SIZE) +#define CFG_INIT_SP		CFG_GBL_DATA_OFFSET + +/*------------------------------------------------------------------------ + * FLASH (AM29LV065D) + *----------------------------------------------------------------------*/ +#define CFG_MAX_FLASH_SECT	128		/* Max # sects per bank */ +#define CFG_MAX_FLASH_BANKS	1		/* Max # of flash banks */ +#define CFG_FLASH_ERASE_TOUT	8000		/* Erase timeout (msec) */ +#define CFG_FLASH_WRITE_TOUT	100		/* Write timeout (msec) */ +#define CFG_FLASH_WORD_SIZE	unsigned char	/* flash word size	*/ + +/*------------------------------------------------------------------------ + * ENVIRONMENT -- Put environment in sector CFG_MONITOR_LEN above + * CFG_RESET_ADDR, since we assume the monitor is stored at the + * reset address, no? This will keep the environment in user region + * of flash. NOTE: the monitor length must be multiple of sector size + * (which is common practice). + *----------------------------------------------------------------------*/ +#define CFG_ENV_IS_IN_FLASH	1		/* Environment in flash */ +#define CFG_ENV_SIZE		(64 * 1024)	/* 64 KByte (1 sector)	*/ +#define CONFIG_ENV_OVERWRITE			/* Serial change Ok	*/ +#define CFG_ENV_ADDR	(CFG_RESET_ADDR + CFG_MONITOR_LEN) + +/*------------------------------------------------------------------------ + * CONSOLE + *----------------------------------------------------------------------*/ +#if defined(CONFIG_CONSOLE_JTAG) +#define CFG_NIOS_CONSOLE	0x00920820	/* JTAG UART base addr	*/ +#else +#define CFG_NIOS_CONSOLE	0x009208a0	/* UART base addr	*/ +#endif + +#define CFG_NIOS_FIXEDBAUD	1		/* Baudrate is fixed	*/ +#define CONFIG_BAUDRATE		115200		/* Initial baudrate	*/ +#define CFG_BAUDRATE_TABLE	{115200}	/* It's fixed ;-)	*/ + +#define CFG_CONSOLE_INFO_QUIET	1		/* Suppress console info*/ + +/*------------------------------------------------------------------------ + * DEBUG + *----------------------------------------------------------------------*/ +#undef CONFIG_ROM_STUBS				/* Stubs not in ROM	*/ + +/*------------------------------------------------------------------------ + * TIMEBASE -- + * + * The high res timer defaults to 1 msec. Since it includes the period + * registers, we can slow it down to 10 msec using TMRCNT. If the default + * period is acceptable, TMRCNT can be left undefined. + *----------------------------------------------------------------------*/ +#define CFG_NIOS_TMRBASE	0x00920860	/* Tick timer base addr */ +#define CFG_NIOS_TMRIRQ		3		/* Timer IRQ num	*/ +#define CFG_NIOS_TMRMS		10		/* 10 msec per tick	*/ +#define CFG_NIOS_TMRCNT (CFG_NIOS_TMRMS * (CONFIG_SYS_CLK_FREQ/1000)) +#define CFG_HZ		(CONFIG_SYS_CLK_FREQ/(CFG_NIOS_TMRCNT + 1)) + +/*------------------------------------------------------------------------ + * STATUS LED -- Provides a simple blinking led. For Nios2 each board + * must implement its own led routines -- leds are, after all, + * board-specific, no? + *----------------------------------------------------------------------*/ +#define CFG_LEDPIO_ADDR		0x00920840	/* LED PIO base addr	*/ +#define CONFIG_STATUS_LED			/* Enable status driver */ + +#define STATUS_LED_BIT		1		/* Bit-0 on PIO		*/ +#define STATUS_LED_STATE	1		/* Blinking		*/ +#define STATUS_LED_PERIOD	(500/CFG_NIOS_TMRMS) /* Every 500 msec	*/ + +/*------------------------------------------------------------------------ + * ETHERNET -- The header file for the SMC91111 driver hurts my eyes ... + * and really doesn't need any additional clutter. So I choose the lazy + * way out to avoid changes there -- define the base address to ensure + * cache bypass so there's no need to monkey with inx/outx macros. + *----------------------------------------------------------------------*/ +#define CONFIG_SMC91111_BASE	0x80910300	/* Base addr (bypass)	*/ +#define CONFIG_DRIVER_SMC91111			/* Using SMC91c111	*/ +#undef	CONFIG_SMC91111_EXT_PHY			/* Internal PHY		*/ +#define CONFIG_SMC_USE_32_BIT			/* 32-bit interface	*/ + +#define CONFIG_ETHADDR		08:00:3e:26:0a:5b +#define CONFIG_NETMASK		255.255.255.0 +#define CONFIG_IPADDR		192.168.2.21 +#define CONFIG_SERVERIP		192.168.2.16 + +/*------------------------------------------------------------------------ + * COMMANDS + *----------------------------------------------------------------------*/ +#define CONFIG_COMMANDS		(CFG_CMD_BDI	| \ +				 CFG_CMD_DHCP	| \ +				 CFG_CMD_ECHO	| \ +				 CFG_CMD_ENV	| \ +				 CFG_CMD_FLASH	| \ +				 CFG_CMD_IMI	| \ +				 CFG_CMD_IRQ	| \ +				 CFG_CMD_LOADS	| \ +				 CFG_CMD_LOADB	| \ +				 CFG_CMD_MEMORY | \ +				 CFG_CMD_MISC	| \ +				 CFG_CMD_NET	| \ +				 CFG_CMD_PING	| \ +				 CFG_CMD_RUN	| \ +				 CFG_CMD_SAVES	) +#include <cmd_confdefs.h> + +/*------------------------------------------------------------------------ + * MISC + *----------------------------------------------------------------------*/ +#define CFG_LONGHELP				/* Provide extended help*/ +#define CFG_PROMPT		"==> "		/* Command prompt	*/ +#define CFG_CBSIZE		256		/* Console I/O buf size */ +#define CFG_MAXARGS		16		/* Max command args	*/ +#define CFG_BARGSIZE		CFG_CBSIZE	/* Boot arg buf size	*/ +#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print buf size */ +#define CFG_LOAD_ADDR		CFG_SDRAM_BASE	/* Default load address */ +#define CFG_MEMTEST_START	CFG_SDRAM_BASE	/* Start addr for test	*/ +#define CFG_MEMTEST_END		CFG_INIT_SP - 0x00020000 + +#endif	/* __CONFIG_H */ diff --git a/include/image.h b/include/image.h index b319210f3..55210d564 100644 --- a/include/image.h +++ b/include/image.h @@ -67,6 +67,7 @@  #define IH_CPU_M68K		12	/* M68K		*/  #define IH_CPU_NIOS		13	/* Nios-32	*/  #define IH_CPU_MICROBLAZE	14	/* MicroBlaze   */ +#define IH_CPU_NIOS2		15	/* Nios-II	*/  /*   * Image Types diff --git a/include/nios2-io.h b/include/nios2-io.h new file mode 100644 index 000000000..d2aeabb94 --- /dev/null +++ b/include/nios2-io.h @@ -0,0 +1,200 @@ +/* + * (C) Copyright 2004, Psyent Corporation <www.psyent.com> + * Scott McNutt <smcnutt@psyent.com> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +/************************************************************************* + * Altera Nios2 Standard Peripherals + ************************************************************************/ + +#ifndef __NIOS2IO_H__ +#define __NIOS2IO_H__ + +/*------------------------------------------------------------------------ + * UART (http://www.altera.com/literature/ds/ds_nios_uart.pdf) + *----------------------------------------------------------------------*/ +typedef volatile struct nios_uart_t { +	unsigned	rxdata;		/* Rx data reg */ +	unsigned	txdata;		/* Tx data reg */ +	unsigned	status;		/* Status reg */ +	unsigned	control;	/* Control reg */ +	unsigned	divisor;	/* Baud rate divisor reg */ +	unsigned	endofpacket;	/* End-of-packet reg */ +}nios_uart_t; + +/* status register */ +#define NIOS_UART_PE		(1 << 0)	/* parity error */ +#define NIOS_UART_FE		(1 << 1)	/* frame error */ +#define NIOS_UART_BRK		(1 << 2)	/* break detect */ +#define NIOS_UART_ROE		(1 << 3)	/* rx overrun */ +#define NIOS_UART_TOE		(1 << 4)	/* tx overrun */ +#define NIOS_UART_TMT		(1 << 5)	/* tx empty */ +#define NIOS_UART_TRDY		(1 << 6)	/* tx ready */ +#define NIOS_UART_RRDY		(1 << 7)	/* rx ready */ +#define NIOS_UART_E		(1 << 8)	/* exception */ +#define NIOS_UART_DCTS		(1 << 10)	/* cts change */ +#define NIOS_UART_CTS		(1 << 11)	/* cts */ +#define NIOS_UART_EOP		(1 << 12)	/* eop detected */ + +/* control register */ +#define NIOS_UART_IPE		(1 << 0)	/* parity error int ena*/ +#define NIOS_UART_IFE		(1 << 1)	/* frame error int ena */ +#define NIOS_UART_IBRK		(1 << 2)	/* break detect int ena */ +#define NIOS_UART_IROE		(1 << 3)	/* rx overrun int ena */ +#define NIOS_UART_ITOE		(1 << 4)	/* tx overrun int ena */ +#define NIOS_UART_ITMT		(1 << 5)	/* tx empty int ena */ +#define NIOS_UART_ITRDY		(1 << 6)	/* tx ready int ena */ +#define NIOS_UART_IRRDY		(1 << 7)	/* rx ready int ena */ +#define NIOS_UART_IE		(1 << 8)	/* exception int ena */ +#define NIOS_UART_TBRK		(1 << 9)	/* transmit break */ +#define NIOS_UART_IDCTS		(1 << 10)	/* cts change int ena */ +#define NIOS_UART_RTS		(1 << 11)	/* rts */ +#define NIOS_UART_IEOP		(1 << 12)	/* eop detected int ena */ + + +/*------------------------------------------------------------------------ + * TIMER (http://www.altera.com/literature/ds/ds_nios_timer.pdf) + *----------------------------------------------------------------------*/ +typedef volatile struct nios_timer_t { +	unsigned	status;			/* Timer status reg */ +	unsigned	control;		/* Timer control reg */ +	unsigned	periodl;		/* Timeout period low */ +	unsigned	periodh;		/* Timeout period high */ +	unsigned	snapl;			/* Snapshot low */ +	unsigned	snaph;			/* Snapshot high */ +}nios_timer_t; + +/* status register */ +#define NIOS_TIMER_TO		(1 << 0)	/* Timeout */ +#define NIOS_TIMER_RUN		(1 << 1)	/* Timer running */ + +/* control register */ +#define NIOS_TIMER_ITO		(1 << 0)	/* Timeout int ena */ +#define NIOS_TIMER_CONT		(1 << 1)	/* Continuous mode */ +#define NIOS_TIMER_START	(1 << 2)	/* Start timer */ +#define NIOS_TIMER_STOP		(1 << 3)	/* Stop timer */ + + +/*------------------------------------------------------------------------ + * PIO (http://www.altera.com/literature/ds/ds_nios_pio.pdf) + *----------------------------------------------------------------------*/ +typedef volatile struct nios_pio_t { +	unsigned int	data;		/* Data value at each PIO in/out */ +	unsigned int	direction;	/* Data direct. for each PIO bit */ +	unsigned int	interruptmask;	/* Per-bit IRQ enable/disable */ +	unsigned int	edgecapture;	/* Per-bit sync. edge detect & hold */ +}nios_pio_t; + +/* direction register */ +#define NIOS_PIO_OUT		(1)		/* PIO bit is output */ +#define NIOS_PIO_IN		(0)		/* PIO bit is input */ + + +/*------------------------------------------------------------------------ + * SPI (http://www.altera.com/literature/ds/ds_nios_spi.pdf) + *----------------------------------------------------------------------*/ +typedef volatile struct nios_spi_t { +	unsigned	rxdata;		/* Rx data reg */ +	unsigned	txdata;		/* Tx data reg */ +	unsigned	status;		/* Status reg */ +	unsigned	control;	/* Control reg */ +	unsigned	reserved;	/* (master only) */ +	unsigned	slaveselect;	/* SPI slave select mask (master only) */ +}nios_spi_t; + +/* status register */ +#define NIOS_SPI_ROE		(1 << 3)	/* rx overrun */ +#define NIOS_SPI_TOE		(1 << 4)	/* tx overrun */ +#define NIOS_SPI_TMT		(1 << 5)	/* tx empty */ +#define NIOS_SPI_TRDY		(1 << 6)	/* tx ready */ +#define NIOS_SPI_RRDY		(1 << 7)	/* rx ready */ +#define NIOS_SPI_E		(1 << 8)	/* exception */ + +/* control register */ +#define NIOS_SPI_IROE		(1 << 3)	/* rx overrun int ena */ +#define NIOS_SPI_ITOE		(1 << 4)	/* tx overrun int ena */ +#define NIOS_SPI_ITRDY		(1 << 6)	/* tx ready int ena */ +#define NIOS_SPI_IRRDY		(1 << 7)	/* rx ready int ena */ +#define NIOS_SPI_IE		(1 << 8)	/* exception int ena */ +#define NIOS_SPI_SSO		(1 << 10)	/* override SS_n output */ + +/*------------------------------------------------------------------------ + * ASMI + *----------------------------------------------------------------------*/ +typedef volatile struct nios_asmi_t { +	unsigned	rxdata;		/* Rx data reg */ +	unsigned	txdata;		/* Tx data reg */ +	unsigned	status;		/* Status reg */ +	unsigned	control;	/* Control reg */ +	unsigned	reserved; +	unsigned	slavesel;	/* Slave select */ +	unsigned	endofpacket;	/* End-of-packet reg */ +}nios_asmi_t; + +/* status register */ +#define NIOS_ASMI_ROE		(1 << 3)	/* rx overrun */ +#define NIOS_ASMI_TOE		(1 << 4)	/* tx overrun */ +#define NIOS_ASMI_TMT		(1 << 5)	/* tx empty */ +#define NIOS_ASMI_TRDY		(1 << 6)	/* tx ready */ +#define NIOS_ASMI_RRDY		(1 << 7)	/* rx ready */ +#define NIOS_ASMI_E		(1 << 8)	/* exception */ +#define NIOS_ASMI_EOP		(1 << 9)	/* eop detected */ + +/* control register */ +#define NIOS_ASMI_IROE		(1 << 3)	/* rx overrun int ena */ +#define NIOS_ASMI_ITOE		(1 << 4)	/* tx overrun int ena */ +#define NIOS_ASMI_ITRDY		(1 << 6)	/* tx ready int ena */ +#define NIOS_ASMI_IRRDY		(1 << 7)	/* rx ready int ena */ +#define NIOS_ASMI_IE		(1 << 8)	/* exception int ena */ +#define NIOS_ASMI_IEOP		(1 << 9)	/* rx eop int ena */ +#define NIOS_ASMI_SSO		(1 << 10)	/* slave select enable */ + +/*------------------------------------------------------------------------ + * JTAG UART + *----------------------------------------------------------------------*/ +typedef volatile struct nios_jtag_t { +	unsigned	data;			/* Data register */ +	unsigned	control;		/* Control register */ +}nios_jtag_t; + +/* data register */ +#define NIOS_JTAG_RVALID	(1<<15)		/* Read valid */ +#define NIOS_JTAG_DATA(d)	((d)&0x0ff)	/* Read data */ +#define NIOS_JTAG_RAVAIL(d)	((d)>>16)	/* Read space avail */ + +/* control register */ +#define NIOS_JTAG_RE		(1 << 0)	/* read intr enable */ +#define NIOS_JTAG_WE		(1 << 1)	/* write intr enable */ +#define NIOS_JTAG_RI		(1 << 8)	/* read intr pending */ +#define NIOS_JTAG_WI		(1 << 9)	/* write intr pending*/ +#define NIOS_JTAG_AC		(1 << 10)	/* activity indicator */ +#define NIOS_JTAG_RRDY		(1 << 12)	/* read available */ +#define NIOS_JTAG_WSPACE(d) 	((d)>>16)	/* Write space avail */ + +/*------------------------------------------------------------------------ + * SYSTEM ID + *----------------------------------------------------------------------*/ +typedef volatile struct nios_sysid_t { +	unsigned 	id;			/* The system build id*/ +	unsigned 	timestamp;		/* Timestamp */ +}nios_sysid_t; + +#endif /* __NIOS2IO_H__ */ diff --git a/include/nios2.h b/include/nios2.h new file mode 100644 index 000000000..54954e3f5 --- /dev/null +++ b/include/nios2.h @@ -0,0 +1,63 @@ +/* + * (C) Copyright 2004, Psyent Corporation <www.psyent.com> + * Scott McNutt <smcnutt@psyent.com> + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __NIOS2_H__ +#define __NIOS2_H__ + +/*------------------------------------------------------------------------ + * Control registers -- use with wrctl() & rdctl() + *----------------------------------------------------------------------*/ +#define CTL_STATUS	0		/* Processor status reg		*/ +#define CTL_ESTATUS	1		/* Exception status reg		*/ +#define CTL_BSTATUS	2		/* Break status reg		*/ +#define CTL_IENABLE	3		/* Interrut enable reg		*/ +#define CTL_IPENDING	4		/* Interrut pending reg		*/ + +/*------------------------------------------------------------------------ + * Access to control regs + *----------------------------------------------------------------------*/ +#define _str_(x) #x + +#define rdctl(reg)\ +	({unsigned int val;\ +	asm volatile( "rdctl %0, ctl" _str_(reg)\ +		: "=r" (val) ); val;}) + +#define wrctl(reg,val)\ +	asm volatile( "wrctl ctl" _str_(reg) ",%0"\ +		: : "r" (val)) + +/*------------------------------------------------------------------------ + * Control reg bit masks + *----------------------------------------------------------------------*/ +#define STATUS_IE	(1<<0)		/* Interrupt enable		*/ +#define STATUS_U	(1<<1)		/* User-mode			*/ + +/*------------------------------------------------------------------------ + * Bit-31 Cache bypass -- only valid for data access. When data cache + * is not implemented, bit 31 is ignored for compatibility. + *----------------------------------------------------------------------*/ +#define CACHE_BYPASS(a) ((a) | 0x80000000) +#define CACHE_NO_BYPASS(a) ((a) & ~0x80000000) + +#endif /* __NIOS2_H__ */ diff --git a/include/status_led.h b/include/status_led.h index 76a0dfdf3..b80780a69 100644 --- a/include/status_led.h +++ b/include/status_led.h @@ -340,6 +340,9 @@ void status_led_set  (int led, int state);  #elif defined(CONFIG_WRSBC8240)  /* XXX empty just to avoid the error */  /************************************************************************/ +#elif defined(CONFIG_NIOS2) +/* XXX empty just to avoid the error */ +/************************************************************************/  #else  # error Status LED configuration missing  #endif |