← Back to team overview

t-kernel team mailing list archive

[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