diff options
-rw-r--r-- | nuttx/ChangeLog | 2 | ||||
-rw-r--r-- | nuttx/Makefile | 16 | ||||
-rw-r--r-- | nuttx/TODO | 11 | ||||
-rw-r--r-- | nuttx/arch/c5471/include/arch.h | 8 | ||||
-rw-r--r-- | nuttx/arch/c5471/include/irq.h | 111 | ||||
-rw-r--r-- | nuttx/arch/c5471/include/serial.h | 4 | ||||
-rw-r--r-- | nuttx/arch/c5471/include/types.h | 8 | ||||
-rw-r--r-- | nuttx/arch/dm320/include/arch.h | 8 | ||||
-rw-r--r-- | nuttx/arch/dm320/include/irq.h | 62 | ||||
-rw-r--r-- | nuttx/arch/dm320/include/serial.h | 4 | ||||
-rw-r--r-- | nuttx/arch/dm320/include/types.h | 8 | ||||
-rw-r--r-- | nuttx/configs/c5471evm/defconfig | 4 | ||||
-rw-r--r-- | nuttx/configs/ntosd-dm320/defconfig | 4 |
13 files changed, 97 insertions, 153 deletions
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog index 84ef49523..9c9908655 100644 --- a/nuttx/ChangeLog +++ b/nuttx/ChangeLog @@ -115,4 +115,6 @@ * Verfied c5471 build under Cygwin on WinXP * Makesystem changes to better support different SoCs. + * Made arch/c5471/include and arch/dm320/include identiry in + preparation for merging into arch/arm * Started m68322 diff --git a/nuttx/Makefile b/nuttx/Makefile index b0af8e938..d27c28f39 100644 --- a/nuttx/Makefile +++ b/nuttx/Makefile @@ -87,10 +87,10 @@ include/arch/board: Make.defs include/arch # Link the configs/<board-name>/src dir to arch/<arch-name>/src/board $(ARCH_SRC)/board: Make.defs - @if [ -e $(ARCH_SRC)/board ]; then \ - if [ -h $(ARCH_SRC)/board ]; then \ - rm -f $(ARCH_SRC)/board ; \ - else \ + @if [ -h $(ARCH_SRC)/board ]; then \ + rm -f $(ARCH_SRC)/board ; \ + else \ + if [ -e $(ARCH_SRC)/board ]; then \ echo "$(ARCH_SRC)/board exists but is not a symbolic link" ; \ exit 1 ; \ fi ; \ @@ -100,10 +100,10 @@ $(ARCH_SRC)/board: Make.defs # Link arch/<arch-name>/include/<chip-name> to arch/<arch-name>/include/chip $(ARCH_SRC)/chip: Make.defs ifneq ($(CONFIG_ARCH_CHIP),) - @if [ -e $(ARCH_SRC)/chip ]; then \ - if [ -h $(ARCH_SRC)/chip ]; then \ - rm -f $(ARCH_SRC)/chip ; \ - else \ + @if [ -h $(ARCH_SRC)/chip ]; then \ + rm -f $(ARCH_SRC)/chip ; \ + else \ + if [ -e $(ARCH_SRC)/chip ]; then \ echo "$(ARCH_SRC)/chip exists but is not a symbolic link" ; \ exit 1 ; \ fi ; \ diff --git a/nuttx/TODO b/nuttx/TODO index 1b229bbb7..b5981f29c 100644 --- a/nuttx/TODO +++ b/nuttx/TODO @@ -13,6 +13,7 @@ o Task/Scheduler MSEC_PER_TICK in sched/clock_internal.h - Consider implementing wait, waitpid, waitid. At present, a parent has no information about child tasks. +- Several APIs do not set errno. Need to review all APIs. o Memory Managment - Add an option to free all memory allocated by a task when the task exits. @@ -24,6 +25,11 @@ o Signals o pthreads - pthread_cancel(): Should implemenent cancellation points and pthread_testcancel() +o Network +- Port FreeBSD TCP/IP stack + +o USB + o Libraries o File system @@ -37,11 +43,10 @@ o Documentation o Build system - Names under arch are incorrect. These should hold processor architectures. - c5471 should be arm7 - dm320 should be arm9 + c5471 and dm320 should be arm pjrc-8051 should be 805x - SoC-specific logic should be in subdirectories under arch/<processor-name>. - Eg. arm7/include/c5471 should hold c5471 specific header files + Eg. arm/include/c5471 should hold c5471 specific header files - configs/pjrc-8051 should be configs/pjrc-87c52 o Applications & Tests diff --git a/nuttx/arch/c5471/include/arch.h b/nuttx/arch/c5471/include/arch.h index 86d6652b6..a64ecb5e9 100644 --- a/nuttx/arch/c5471/include/arch.h +++ b/nuttx/arch/c5471/include/arch.h @@ -1,5 +1,5 @@ /************************************************************ - * arch.h + * arch/arch.h * * Copyright (C) 2007 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> @@ -37,8 +37,8 @@ * only indirectly through nuttx/arch.h */ -#ifndef __ARCH_C5471_ARCH_H -#define __ARCH_C5471_ARCH_H +#ifndef __ARCH_ARCH_H +#define __ARCH_ARCH_H /************************************************************ * Included Files @@ -76,5 +76,5 @@ extern "C" { } #endif -#endif /* __ARCH_C5471_ARCH_H */ +#endif /* __ARCH_ARCH_H */ diff --git a/nuttx/arch/c5471/include/irq.h b/nuttx/arch/c5471/include/irq.h index b5c810cbe..c838ad402 100644 --- a/nuttx/arch/c5471/include/irq.h +++ b/nuttx/arch/c5471/include/irq.h @@ -1,5 +1,5 @@ /************************************************************ - * irq.h + * arch/irq.h * * Copyright (C) 2007 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> @@ -37,13 +37,15 @@ * only indirectly through nuttx/irq.h */ -#ifndef __ARCH_C5471_IRQ_H -#define __ARCH_C5471_IRQ_H +#ifndef __ARCH_IRQ_H +#define __ARCH_IRQ_H /************************************************************ * Included Files ************************************************************/ +#include <arch/chip/irq.h> + /************************************************************ * Definitions ************************************************************/ @@ -60,68 +62,45 @@ * xcp.regs array: */ -#define REG_R0 (0) -#define REG_R1 (1) -#define REG_R2 (2) -#define REG_R3 (3) -#define REG_R4 (4) -#define REG_R5 (5 -#define REG_R6 (6) -#define REG_R7 (7) -#define REG_R8 (8) -#define REG_R9 (9) -#define REG_R10 (10) -#define REG_R11 (11) -#define REG_R12 (12) -#define REG_R13 (13) -#define REG_R14 (14) -#define REG_R15 (15) -#define REG_CPSR (16) - -#define XCPTCONTEXT_REGS (17) -#define XCPTCONTEXT_SIZE (4 * XCPTCONTEXT_REGS) - -#define REG_A1 REG_R0 -#define REG_A2 REG_R1 -#define REG_A3 REG_R2 -#define REG_A4 REG_R3 -#define REG_V1 REG_R4 -#define REG_V2 REG_R5 -#define REG_V3 REG_R6 -#define REG_V4 REG_R7 -#define REG_V5 REG_R8 -#define REG_V6 REG_R9 -#define REG_V7 REG_R10 -#define REG_SB REG_R9 -#define REG_SL REG_R10 -#define REG_FP REG_R11 -#define REG_IP REG_R12 -#define REG_SP REG_R13 -#define REG_LR REG_R14 -#define REG_PC REG_R15 - -/* C5471 Interrupts */ - -#define C5471_IRQ_TIMER0 0 -#define C5471_IRQ_TIMER1 1 -#define C5471_IRQ_TIMER2 2 -#define C5471_IRQ_GPIO0 3 -#define C5471_IRQ_ETHER 4 -#define C5471_IRQ_KBGPIO_0_7 5 -#define C5471_IRQ_UART 6 -#define C5471_IRQ_UART_IRDA 7 -#define C5471_IRQ_KBGPIO_8_15 8 -#define C5471_IRQ_GPIO3 9 -#define C5471_IRQ_GPIO2 10 -#define C5471_IRQ_I2C 11 -#define C5471_IRQ_GPIO1 12 -#define C5471_IRQ_SPI 13 -#define C5471_IRQ_GPIO_4_19 14 -#define C5471_IRQ_API 15 - -#define C5471_IRQ_WATCHDOG C5471_IRQ_TIMER0 -#define C5471_IRQ_SYSTIMER C5471_IRQ_TIMER2 -#define NR_IRQS (C5471_IRQ_API+1) +#define REG_R0 (0) +#define REG_R1 (1) +#define REG_R2 (2) +#define REG_R3 (3) +#define REG_R4 (4) +#define REG_R5 (5) +#define REG_R6 (6) +#define REG_R7 (7) +#define REG_R8 (8) +#define REG_R9 (9) +#define REG_R10 (10) +#define REG_R11 (11) +#define REG_R12 (12) +#define REG_R13 (13) +#define REG_R14 (14) +#define REG_R15 (15) +#define REG_CPSR (16) + +#define XCPTCONTEXT_REGS (17) +#define XCPTCONTEXT_SIZE (4 * XCPTCONTEXT_REGS) + +#define REG_A1 REG_R0 +#define REG_A2 REG_R1 +#define REG_A3 REG_R2 +#define REG_A4 REG_R3 +#define REG_V1 REG_R4 +#define REG_V2 REG_R5 +#define REG_V3 REG_R6 +#define REG_V4 REG_R7 +#define REG_V5 REG_R8 +#define REG_V6 REG_R9 +#define REG_V7 REG_R10 +#define REG_SB REG_R9 +#define REG_SL REG_R10 +#define REG_FP REG_R11 +#define REG_IP REG_R12 +#define REG_SP REG_R13 +#define REG_LR REG_R14 +#define REG_PC REG_R15 /************************************************************ * Public Types @@ -243,5 +222,5 @@ extern "C" { #endif #endif -#endif /* __ARCH_C5471_IRQ_H */ +#endif /* __ARCH_IRQ_H */ diff --git a/nuttx/arch/c5471/include/serial.h b/nuttx/arch/c5471/include/serial.h index c10fa4269..1439300b0 100644 --- a/nuttx/arch/c5471/include/serial.h +++ b/nuttx/arch/c5471/include/serial.h @@ -1,5 +1,5 @@ /************************************************************ - * serial.h + * arch/serial.h * * Copyright (C) 2007 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> @@ -44,7 +44,7 @@ * Definitions ************************************************************/ -/* IOCTL commands supported by the C5471 serial driver */ +/* IOCTL commands supported by the ARM serial driver */ #define TIOCSBRK 0x5401 /* BSD compatibility */ #define TIOCCBRK 0x5402 /* " " " " */ diff --git a/nuttx/arch/c5471/include/types.h b/nuttx/arch/c5471/include/types.h index 5ec6e81e1..760790327 100644 --- a/nuttx/arch/c5471/include/types.h +++ b/nuttx/arch/c5471/include/types.h @@ -1,5 +1,5 @@ /************************************************************ - * types.h + * arch/types.h * * Copyright (C) 2007 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> @@ -37,8 +37,8 @@ * only indirectly through sys/types.h */ -#ifndef __ARCH_C5471_TYPES_H -#define __ARCH_C5471_TYPES_H +#ifndef __ARCH_TYPES_H +#define __ARCH_TYPES_H /************************************************************ * Included Files @@ -79,4 +79,4 @@ typedef unsigned int irqstate_t; * Global Function Prototypes ************************************************************/ -#endif /* __ARCH_C5471_TYPES_H */ +#endif /* __ARCH_TYPES_H */ diff --git a/nuttx/arch/dm320/include/arch.h b/nuttx/arch/dm320/include/arch.h index 6b58d0e36..a64ecb5e9 100644 --- a/nuttx/arch/dm320/include/arch.h +++ b/nuttx/arch/dm320/include/arch.h @@ -1,5 +1,5 @@ /************************************************************ - * arch.h + * arch/arch.h * * Copyright (C) 2007 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> @@ -37,8 +37,8 @@ * only indirectly through nuttx/arch.h */ -#ifndef __ARCH_DM320_ARCH_H -#define __ARCH_DM320_ARCH_H +#ifndef __ARCH_ARCH_H +#define __ARCH_ARCH_H /************************************************************ * Included Files @@ -76,5 +76,5 @@ extern "C" { } #endif -#endif /* __ARCH_DM320_ARCH_H */ +#endif /* __ARCH_ARCH_H */ diff --git a/nuttx/arch/dm320/include/irq.h b/nuttx/arch/dm320/include/irq.h index 9e5daafb3..c838ad402 100644 --- a/nuttx/arch/dm320/include/irq.h +++ b/nuttx/arch/dm320/include/irq.h @@ -1,5 +1,5 @@ /************************************************************ - * irq.h + * arch/irq.h * * Copyright (C) 2007 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> @@ -37,13 +37,15 @@ * only indirectly through nuttx/irq.h */ -#ifndef __ARCH_DM320_IRQ_H -#define __ARCH_DM320_IRQ_H +#ifndef __ARCH_IRQ_H +#define __ARCH_IRQ_H /************************************************************ * Included Files ************************************************************/ +#include <arch/chip/irq.h> + /************************************************************ * Definitions ************************************************************/ @@ -100,58 +102,6 @@ #define REG_LR REG_R14 #define REG_PC REG_R15 -/* DM320 Interrupts */ - -#define DM320_IRQ_TMR0 0 /* IRQ0: Timer 0 Interrupt */ -#define DM320_IRQ_TMR1 1 /* IRQ1: Timer 1 Interrupt */ -#define DM320_IRQ_TMR2 2 /* IRQ2: Timer 2 Interrupt (CCD timer 0) */ -#define DM320_IRQ_TMR3 3 /* IRQ3: Timer 3 Interrupt (CCD timer 1) */ -#define DM320_IRQ_CCDVD0 4 /* IRQ4: CCD VD Interrupt #0 */ -#define DM320_IRQ_CCDVD1 5 /* IRQ5: CCD VD Interrupt #1 */ -#define DM320_IRQ_CCDWEN 6 /* IRQ6: CCD WEN Interrupt */ -#define DM320_IRQ_VENC 7 /* IRQ7: Video Encoder Interrupt */ -#define DM320_IRQ_SP0 8 /* IRQ8: Serial Port 0 Interrupt (with DMA) */ -#define DM320_IRQ_SP1 9 /* IRQ9: Serial Port 1 Interrupt */ -#define DM320_IRQ_EXTHOST 10 /* IRQ10: External host interrupt */ -#define DM320_IRQ_IMGBUF 11 /* IRQ11: Image Buffer */ -#define DM320_IRQ_UART0 12 /* IRQ12: UART0 Interrupt */ -#define DM320_IRQ_UART1 13 /* IRQ13: UART1 Interrupt */ -#define DM320_IRQ_USB0 14 /* IRQ14: USB 0 Interrupt (DMA) */ -#define DM320_IRQ_USB1 15 /* IRQ15: USB 1 Interrupt (Core) */ -#define DM320_IRQ_VLYNQ 16 /* IRQ16: VLYNQ Interrupt */ -#define DM320_IRQ_MTC0 17 /* IRQ17: Memory Traffic Controller 0 (DMA) */ -#define DM320_IRQ_MTC1 18 /* IRQ18: Memory Traffic Controller 1 (CFC_RDY) */ -#define DM320_IRQ_MMCSD0 19 /* IRQ19: MMC/SD or MS 0 Interrupt */ -#define DM320_IRQ_MMCSD1 20 /* IRQ20: MMC/SD or MS 1 Interrupt */ -#define DM320_IRQ_EXT0 21 /* IRQ21: External Interrupt #0 (GIO0) */ -#define DM320_IRQ_EXT1 22 /* IRQ22: External Interrupt #1 (GIO1) */ -#define DM320_IRQ_EXT2 23 /* IRQ23: External Interrupt #2 (GIO2) */ -#define DM320_IRQ_EXT3 24 /* IRQ24: External Interrupt #3 (GIO3) */ -#define DM320_IRQ_EXT4 25 /* IRQ25: External Interrupt #4 (GIO4) */ -#define DM320_IRQ_EXT5 26 /* IRQ26: External Interrupt #5 (GIO5) */ -#define DM320_IRQ_EXT6 27 /* IRQ27: External Interrupt #6 (GIO6) */ -#define DM320_IRQ_EXT7 28 /* IRQ28: External Interrupt #7 (GIO7) */ -#define DM320_IRQ_EXT8 29 /* IRQ29: External Interrupt #8 (GIO8) */ -#define DM320_IRQ_EXT9 30 /* IRQ30: External Interrupt #9 (GIO9) */ -#define DM320_IRQ_EXT10 31 /* IRQ31: External Interrupt #10 (GIO10) */ -#define DM320_IRQ_EXT11 32 /* IRQ32: External Interrupt #11 (GIO11) */ -#define DM320_IRQ_EXT12 33 /* IRQ33: External Interrupt #12 (GIO12) */ -#define DM320_IRQ_EXT13 34 /* IRQ34: External Interrupt #13 (GIO13) */ -#define DM320_IRQ_EXT14 35 /* IRQ35: External Interrupt #14 (GIO14) */ -#define DM320_IRQ_EXT15 36 /* IRQ36: External Interrupt #15 (GIO15) */ -#define DM320_IRQ_PREV0 37 /* IRQ37: Preview Engine 0 (Preview Over) */ -#define DM320_IRQ_PREV1 38 /* IRQ38: Preview Engine 1 (Preview Historgram Over) */ -#define DM320_IRQ_WDT 39 /* IRQ39: Watchdog Timer Interrupt */ -#define DM320_IRQ_I2C 40 /* IRQ40: I2C Interrupt */ -#define DM320_IRQ_CLKC 41 /* IRQ41: Clock controller Interrupt (wake up) */ -#define DM320_IRQ_E2ICE 42 /* IRQ42: Embedded ICE Interrupt */ -#define DM320_IRQ_ARMCOMRX 43 /* IRQ43: ARMCOMM Receive Interrupt */ -#define DM320_IRQ_ARMCOMTX 44 /* IRQ44: ARMCOMM Transmit Interrupt */ -#define DM320_IRQ_RSV 45 /* IRQ45: Reserved Interrupt */ - -#define DM320_IRQ_SYSTIMER DM320_IRQ_TMR0 -#define NR_IRQS (DM320_IRQ_RSV+1) - /************************************************************ * Public Types ************************************************************/ @@ -272,5 +222,5 @@ extern "C" { #endif #endif -#endif /* __ARCH_DM320_IRQ_H */ +#endif /* __ARCH_IRQ_H */ diff --git a/nuttx/arch/dm320/include/serial.h b/nuttx/arch/dm320/include/serial.h index d9cc1ba89..1439300b0 100644 --- a/nuttx/arch/dm320/include/serial.h +++ b/nuttx/arch/dm320/include/serial.h @@ -1,5 +1,5 @@ /************************************************************ - * serial.h + * arch/serial.h * * Copyright (C) 2007 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> @@ -44,7 +44,7 @@ * Definitions ************************************************************/ -/* IOCTL commands supported by the DM320 serial driver */ +/* IOCTL commands supported by the ARM serial driver */ #define TIOCSBRK 0x5401 /* BSD compatibility */ #define TIOCCBRK 0x5402 /* " " " " */ diff --git a/nuttx/arch/dm320/include/types.h b/nuttx/arch/dm320/include/types.h index 740f4590f..760790327 100644 --- a/nuttx/arch/dm320/include/types.h +++ b/nuttx/arch/dm320/include/types.h @@ -1,5 +1,5 @@ /************************************************************ - * types.h + * arch/types.h * * Copyright (C) 2007 Gregory Nutt. All rights reserved. * Author: Gregory Nutt <spudmonkey@racsa.co.cr> @@ -37,8 +37,8 @@ * only indirectly through sys/types.h */ -#ifndef __ARCH_DM320_TYPES_H -#define __ARCH_DM320_TYPES_H +#ifndef __ARCH_TYPES_H +#define __ARCH_TYPES_H /************************************************************ * Included Files @@ -79,4 +79,4 @@ typedef unsigned int irqstate_t; * Global Function Prototypes ************************************************************/ -#endif /* __ARCH_DM320_TYPES_H */ +#endif /* __ARCH_TYPES_H */ diff --git a/nuttx/configs/c5471evm/defconfig b/nuttx/configs/c5471evm/defconfig index 3fd6a2e5d..ac24faf82 100644 --- a/nuttx/configs/c5471evm/defconfig +++ b/nuttx/configs/c5471evm/defconfig @@ -40,6 +40,8 @@ # CONFIG_ARCH_name - for use in C code. This identifies the # particular chip or SoC that the architecture is implemented # in. +# CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory +# CONFIG_ARCH_CHIP_name - For use in C code # CONFIG_ARCH_BOARD - identifies the configs subdirectory and, hence, # the board that supports the particular chip or SoC. # CONFIG_ARCH_BOARD_name - for use in C code @@ -51,6 +53,8 @@ # CONFIG_ARCH=c5471 CONFIG_ARCH_C5471=y +CONFIG_ARCH_CHIP=c5471 +CONFIG_ARCH_CHIP_C5471=y CONFIG_ARCH_BOARD=c5471evm CONFIG_ARCH_BOARD_C5471EVM=y CONFIG_ROM_VECTORS=n diff --git a/nuttx/configs/ntosd-dm320/defconfig b/nuttx/configs/ntosd-dm320/defconfig index bb20353e0..d2b62134a 100644 --- a/nuttx/configs/ntosd-dm320/defconfig +++ b/nuttx/configs/ntosd-dm320/defconfig @@ -40,6 +40,8 @@ # CONFIG_ARCH_name - for use in C code. This identifies the # particular chip or SoC that the architecture is implemented # in. +# CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory +# CONFIG_ARCH_CHIP_name - For use in C code # CONFIG_ARCH_BOARD - identifies the configs subdirectory and, hence, # the board that supports the particular chip or SoC. # CONFIG_ARCH_BOARD_name - for use in C code @@ -49,6 +51,8 @@ # CONFIG_ARCH=dm320 CONFIG_ARCH_DM320=y +CONFIG_ARCH_CHIP=dm320 +CONFIG_ARCH_CHIP_DM320=y CONFIG_ARCH_BOARD=ntosd-dm320 CONFIG_ARCH_BOARD_NTOSD_DM320=y CONFIG_ROM_VECTORS=n |