summaryrefslogtreecommitdiff
path: root/nuttx/arch/z80
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2008-02-11 17:15:52 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2008-02-11 17:15:52 +0000
commitc57406e92f257c877a7dc8e9a8bfd21693f12b5c (patch)
treea459527b4f8fad789adf3d7232701179749c821a /nuttx/arch/z80
parent3d2d6dfb406717ac8a90761890e512b138f7389c (diff)
downloadpx4-nuttx-c57406e92f257c877a7dc8e9a8bfd21693f12b5c.tar.gz
px4-nuttx-c57406e92f257c877a7dc8e9a8bfd21693f12b5c.tar.bz2
px4-nuttx-c57406e92f257c877a7dc8e9a8bfd21693f12b5c.zip
Add Z8Encore\!
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@667 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/z80')
-rw-r--r--nuttx/arch/z80/include/z8/arch.h77
-rw-r--r--nuttx/arch/z80/include/z8/irq.h148
-rw-r--r--nuttx/arch/z80/src/z8/Make.defs49
3 files changed, 274 insertions, 0 deletions
diff --git a/nuttx/arch/z80/include/z8/arch.h b/nuttx/arch/z80/include/z8/arch.h
new file mode 100644
index 000000000..d5f02a49a
--- /dev/null
+++ b/nuttx/arch/z80/include/z8/arch.h
@@ -0,0 +1,77 @@
+/****************************************************************************
+ * arch/z8/arch.h
+ * arch/chip/arch.h
+ *
+ * Copyright (C) 2008 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name NuttX nor the names of its contributors may be
+ * used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+
+/* This file should never be included directed but, rather,
+ * only indirectly through nuttx/arch.h (via arch/arch.h)
+ */
+
+#ifndef __ARCH_Z8_ARCH_H
+#define __ARCH_Z8_ARCH_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+/****************************************************************************
+ * Definitions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Public Types
+ ****************************************************************************/
+
+/****************************************************************************
+ * Public Variables
+ ****************************************************************************/
+
+/****************************************************************************
+ * Public Function Prototypes
+ ****************************************************************************/
+
+#ifdef __cplusplus
+#define EXTERN extern "C"
+extern "C" {
+#else
+#define EXTERN extern
+#endif
+
+#undef EXTERN
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __ARCH_Z8_ARCH_H */
+
diff --git a/nuttx/arch/z80/include/z8/irq.h b/nuttx/arch/z80/include/z8/irq.h
new file mode 100644
index 000000000..91a5ffd1c
--- /dev/null
+++ b/nuttx/arch/z80/include/z8/irq.h
@@ -0,0 +1,148 @@
+/****************************************************************************
+ * arch/z8/irq.h
+ * arch/chip/irq.h
+ *
+ * Copyright (C) 2008 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name NuttX nor the names of its contributors may be
+ * used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+
+/* This file should never be included directed but, rather,
+ * only indirectly through nuttx/irq.h (via arch/irq.h)
+ */
+
+#ifndef __ARCH_Z8_IRQ_H
+#define __ARCH_Z8_IRQ_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+/****************************************************************************
+ * Definitions
+ ****************************************************************************/
+
+/* Z80 Interrupts */
+
+#define Z80_RST0 (0)
+#define Z80_RST1 (1)
+#define Z80_RST2 (2)
+#define Z80_RST3 (3)
+#define Z80_RST4 (4)
+#define Z80_RST5 (5)
+#define Z80_RST6 (6)
+#define Z80_RST7 (7)
+
+#define Z80_IRQ_SYSTIMER Z80_RST7
+#define NR_IRQS (8)
+
+/* IRQ Stack Frame Format
+ *
+ * This stack frame is created on each interrupt. These registers are stored
+ * in the TCB to many context switches.
+ */
+
+#define XCPT_I (0) /* Offset 0: Saved I w/interrupt state in carry */
+#define XCPT_BC (1) /* Offset 1: Saved BC register */
+#define XCPT_DE (2) /* Offset 2: Saved DE register */
+#define XCPT_IX (3) /* Offset 3: Saved IX register */
+#define XCPT_IY (4) /* Offset 4: Saved IY register */
+#define XCPT_SP (5) /* Offset 5: Offset to SP at time of interrupt */
+#define XCPT_HL (6) /* Offset 6: Saved HL register */
+#define XCPT_AF (7) /* Offset 7: Saved AF register */
+#define XCPT_PC (8) /* Offset 8: Offset to PC at time of interrupt */
+
+#define XCPTCONTEXT_REGS (9)
+#define XCPTCONTEXT_SIZE (2 * XCPTCONTEXT_REGS)
+
+/****************************************************************************
+ * Public Types
+ ****************************************************************************/
+
+#ifndef __ASSEMBLY__
+
+/* This is the the type of the register save array */
+
+typedef uint16 chipreg_t;
+
+/* This struct defines the way the registers are stored. */
+
+struct xcptcontext
+{
+ /* Register save area */
+
+ uint16 regs[XCPTCONTEXT_REGS];
+
+ /* The following function pointer is non-zero if there
+ * are pending signals to be processed.
+ */
+
+#ifndef CONFIG_DISABLE_SIGNALS
+ void *sigdeliver; /* Actual type is sig_deliver_t */
+
+ /* The following retains that state during signal execution */
+
+ uint16 saved_pc; /* Saved return address */
+ uint16 saved_i; /* Saved interrupt state */
+#endif
+};
+#endif
+
+/****************************************************************************
+ * Inline functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Public Variables
+ ****************************************************************************/
+
+/****************************************************************************
+ * Public Function Prototypes
+ ****************************************************************************/
+
+#ifndef __ASSEMBLY__
+#ifdef __cplusplus
+#define EXTERN extern "C"
+extern "C" {
+#else
+#define EXTERN extern
+#endif
+
+EXTERN irqstate_t irqsave(void) __naked;
+EXTERN void irqrestore(irqstate_t flags) __naked;
+
+#undef EXTERN
+#ifdef __cplusplus
+}
+#endif
+#endif
+
+#endif /* __ARCH_Z8_IRQ_H */
+
diff --git a/nuttx/arch/z80/src/z8/Make.defs b/nuttx/arch/z80/src/z8/Make.defs
new file mode 100644
index 000000000..8488efc96
--- /dev/null
+++ b/nuttx/arch/z80/src/z8/Make.defs
@@ -0,0 +1,49 @@
+############################################################################
+# arch/z80/src/z8/Make.defs
+#
+# Copyright (C) 2008 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# 3. Neither the name NuttX nor the names of its contributors may be
+# used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+############################################################################
+
+HEAD_ASRC = z8_head.asm
+
+CMN_ASRCS =
+CMN_CSRCS = up_initialize.c up_allocateheap.c up_initialstate.c \
+ up_createstack.c up_releasestack.c up_interruptcontext.c \
+ up_blocktask.c up_unblocktask.c up_exit.c up_releasepending.c \
+ up_reprioritizertr.c up_copystate.c up_irq.c up_idle.c \
+ up_assert.c up_mdelay.c up_udelay.c \
+ up_schedulesigaction.c up_sigdeliver.c \
+ up_registerdump.c up_usestack.c
+
+CHIP_ASRCS = z8_saveusercontext.asm z8_restoreusercontext.asm
+CHIP_CSRCS =
+