summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorVincent Palatin <vpalatin@chromium.org>2013-10-25 15:37:11 -0700
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2013-12-10 19:17:54 +0000
commit93cc00fde1ba15c1f995fe963f30c9caecb02f77 (patch)
treeabd1b6d512e3e94a1e72aac2a83b2a03d7e4b5cb /include
parent6f348ecf083a3182b7eed83cdd9a9bc19751a0ba (diff)
downloadchrome-ec-93cc00fde1ba15c1f995fe963f30c9caecb02f77.tar.gz
ite: Port OS layer to Andestar v3m architecture
This will be used to support ITE IT8380 chip which contains an Andes N801 core. Signed-off-by: Vincent Palatin <vpalatin@chromium.org> BRANCH=none BUG=chrome-os-partner:23574 TEST=make BOARD=it8380dev Change-Id: I91f9380c51c7712aa6a6418223a11551ab0091ce Reviewed-on: https://chromium-review.googlesource.com/175480 Reviewed-by: Randall Spangler <rspangler@chromium.org> Commit-Queue: Vincent Palatin <vpalatin@chromium.org> Tested-by: Vincent Palatin <vpalatin@chromium.org>
Diffstat (limited to 'include')
-rw-r--r--include/link_defs.h1
-rw-r--r--include/task.h9
2 files changed, 10 insertions, 0 deletions
diff --git a/include/link_defs.h b/include/link_defs.h
index 52782760b1..3346ea8e5a 100644
--- a/include/link_defs.h
+++ b/include/link_defs.h
@@ -73,6 +73,7 @@ extern const struct host_command __hcmds_end[];
/* IRQs (interrupt handlers) */
extern const struct irq_priority __irqprio[];
extern const struct irq_priority __irqprio_end[];
+extern const void *__irqhandler[];
/* Shared memory buffer. Use via shared_mem.h interface. */
extern uint8_t __shared_mem_buf[];
diff --git a/include/task.h b/include/task.h
index edf278c066..1aeb1206b7 100644
--- a/include/task.h
+++ b/include/task.h
@@ -203,6 +203,14 @@ struct irq_priority {
* Macro to connect the interrupt handler "routine" to the irq number "irq" and
* ensure it is enabled in the interrupt controller with the right priority.
*/
+#ifdef __nds32__
+#define DECLARE_IRQ(irq, routine, priority) \
+ void IRQ_HANDLER(CPU_INT(irq))(void) \
+ __attribute__ ((alias(STRINGIFY(routine)))); \
+ const struct irq_priority IRQ_PRIORITY(CPU_INT(irq)) \
+ __attribute__((section(".rodata.irqprio"))) \
+ = {CPU_INT(irq), priority}
+#else
#define DECLARE_IRQ(irq, routine, priority) \
void IRQ_HANDLER(irq)(void) \
{ \
@@ -214,5 +222,6 @@ struct irq_priority {
const struct irq_priority IRQ_PRIORITY(irq) \
__attribute__((section(".rodata.irqprio"))) \
= {irq, priority}
+#endif
#endif /* __CROS_EC_TASK_H */