t-kernel team mailing list archive
-
t-kernel team
-
Mailing list archive
-
Message #00037
[PATCH] mx28: [wip] icoll, compiled
From: Du Huanpeng <u74147@xxxxxxxxx>
Signed-off-by: Du Huanpeng <u74147@xxxxxxxxx>
---
tkernel_source/Makefile | 7 +++--
.../monitor/hwdepend/arm/mach-mx28/icoll.c | 35 +++++++++-------------
.../arm/mach-mx28/include/mach/cpudepend.h | 1 +
.../monitor/hwdepend/arm/mach-mx28/regs-icoll.h | 4 +--
.../hwdepend/arm/mach-mx28/reset-lowlevel.S | 1 -
5 files changed, 21 insertions(+), 27 deletions(-)
diff --git a/tkernel_source/Makefile b/tkernel_source/Makefile
index b8eb827..9a3513b 100644
--- a/tkernel_source/Makefile
+++ b/tkernel_source/Makefile
@@ -191,9 +191,10 @@ tkernel: $(OBJ)
@echo " LD\t" $@
@$(CROSS_COMPILE)objdump -DS $@ >tm.S
@echo " DIS\t" tm.S
- @$(CROSS_COMPILE)objcopy -O binary $@ tm.bin
- @echo "OBJDUMP\t" tm.bin
- @$(COPY) tm.bin $(TFTPBOOT)
+ @$(CROSS_COMPILE)objcopy -O binary $@ Image
+ @xz -zf9k Image
+ @echo "OBJDUMP\t" "Image"
+ @$(COPY) Image $(TFTPBOOT)
@$(CROSS_COMPILE)nm $@ >tm.map
@echo " SYSMAP\t" tm.map
diff --git a/tkernel_source/monitor/hwdepend/arm/mach-mx28/icoll.c b/tkernel_source/monitor/hwdepend/arm/mach-mx28/icoll.c
index b6cab58..69a0c63 100644
--- a/tkernel_source/monitor/hwdepend/arm/mach-mx28/icoll.c
+++ b/tkernel_source/monitor/hwdepend/arm/mach-mx28/icoll.c
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright (C) 2016 Du Huanpeng<u74147@xxxxxxxxx>
*
* 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
@@ -16,16 +17,18 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/irq.h>
-#include <linux/delay.h>
-
-#include <mach/hardware.h>
-#include <mach/device.h>
-#include <mach/irqs.h>
+/*
+ * based on linux/arch/arm/plat-mxs/icoll.c
+ */
+
#include "regs-icoll.h"
+#include <mach/mx28.h>
+#include <mach/cpudepend.h>
+#include <tmonitor.h>
+#include <typedef.h>
+
+
volatile void *g_icoll_base;
@@ -61,14 +64,7 @@ static int icoll_set_wake_irq(unsigned int irq, unsigned int enabled)
return 0;
}
-static struct irq_chip icoll_chip = {
- .ack = icoll_ack_irq,
- .mask = icoll_mask_irq,
- .unmask = icoll_unmask_irq,
- .set_wake = icoll_set_wake_irq,
-};
-
-void __init avic_init_irq(void __iomem *base, int nr_irqs)
+void avic_init_irq(void *base, int nr_irqs)
{
int i;
g_icoll_base = base;
@@ -80,10 +76,10 @@ void __init avic_init_irq(void __iomem *base, int nr_irqs)
if (!(in_w(g_icoll_base + HW_ICOLL_CTRL) &
BM_ICOLL_CTRL_SFTRST))
break;
- udelay(2);
+ waitUsec(2);
}
if (i >= 100000) {
- printk(KERN_ERR "%s:%d timeout when enableing\n",
+ printk("%s:%d timeout when enableing\n",
__func__, __LINE__);
return;
}
@@ -91,9 +87,6 @@ void __init avic_init_irq(void __iomem *base, int nr_irqs)
for (i = 0; i < nr_irqs; i++) {
out_w(0, g_icoll_base + HW_ICOLL_INTERRUPTn(i));
- set_irq_chip(i, &icoll_chip);
- set_irq_handler(i, handle_level_irq);
- set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
}
out_w(BF_ICOLL_LEVELACK_IRQLEVELACK
diff --git a/tkernel_source/monitor/hwdepend/arm/mach-mx28/include/mach/cpudepend.h b/tkernel_source/monitor/hwdepend/arm/mach-mx28/include/mach/cpudepend.h
index 4cb6193..caf9541 100644
--- a/tkernel_source/monitor/hwdepend/arm/mach-mx28/include/mach/cpudepend.h
+++ b/tkernel_source/monitor/hwdepend/arm/mach-mx28/include/mach/cpudepend.h
@@ -22,6 +22,7 @@
#define __MONITOR_ARM_CPUDEPEND_H__
#include <machine.h>
+#include <typedef.h>
/*
* monitor stack area
diff --git a/tkernel_source/monitor/hwdepend/arm/mach-mx28/regs-icoll.h b/tkernel_source/monitor/hwdepend/arm/mach-mx28/regs-icoll.h
index f06ac0d..2b7aa30 100644
--- a/tkernel_source/monitor/hwdepend/arm/mach-mx28/regs-icoll.h
+++ b/tkernel_source/monitor/hwdepend/arm/mach-mx28/regs-icoll.h
@@ -23,8 +23,8 @@
* Template revision: 26195
*/
-#ifndef __ARCH_ARM___ICOLL_H
-#define __ARCH_ARM___ICOLL_H
+#ifndef __ICOLL_H__
+#define __ICOLL_H__
#define HW_ICOLL_VECTOR (0x00000000)
#define HW_ICOLL_VECTOR_SET (0x00000004)
diff --git a/tkernel_source/monitor/hwdepend/arm/mach-mx28/reset-lowlevel.S b/tkernel_source/monitor/hwdepend/arm/mach-mx28/reset-lowlevel.S
index 6b04976..81a8e6a 100644
--- a/tkernel_source/monitor/hwdepend/arm/mach-mx28/reset-lowlevel.S
+++ b/tkernel_source/monitor/hwdepend/arm/mach-mx28/reset-lowlevel.S
@@ -27,7 +27,6 @@
#include <tk/sysdef.h>
#include <sys/sysinfo.h>
-#include <mach/asm9260.h>
#include <setup_em1d512.h>
/*----------------------------------------------------------------------
--
1.9.1
References