Browse Source

Merge branch 'master' of git://git.denx.de/u-boot-microblaze

* 'master' of git://git.denx.de/u-boot-microblaze:
  microblaze: Enable TFTP put command
  microblaze: avoid interrupt race conditions
  microblaze: fix build failure due to undefined reference to `get_ticks'
Wolfgang Denk 13 years ago
parent
commit
54e96680cb

+ 2 - 2
arch/microblaze/cpu/interrupts.c

@@ -155,8 +155,6 @@ void interrupt_handler (void)
 #endif
 #endif
 	struct irq_action *act = vecs + irqs;
 	struct irq_action *act = vecs + irqs;
 
 
-	intc->iar = mask << irqs;
-
 #ifdef DEBUG_INT
 #ifdef DEBUG_INT
 	printf
 	printf
 	    ("Jumping to interrupt handler rutine addr %x,count %x,arg %x\n",
 	    ("Jumping to interrupt handler rutine addr %x,count %x,arg %x\n",
@@ -165,6 +163,8 @@ void interrupt_handler (void)
 	act->handler (act->arg);
 	act->handler (act->arg);
 	act->count++;
 	act->count++;
 
 
+	intc->iar = mask << irqs;
+
 #ifdef DEBUG_INT
 #ifdef DEBUG_INT
 	printf ("Dump INTC reg, isr %x, ier %x, iar %x, mer %x\n", intc->isr,
 	printf ("Dump INTC reg, isr %x, ier %x, iar %x, mer %x\n", intc->isr,
 		intc->ier, intc->iar, intc->mer);
 		intc->ier, intc->iar, intc->mer);

+ 18 - 0
arch/microblaze/cpu/timer.c

@@ -62,3 +62,21 @@ int timer_init (void)
 }
 }
 #endif
 #endif
 #endif
 #endif
+
+/*
+ * This function is derived from PowerPC code (read timebase as long long).
+ * On Microblaze it just returns the timer value.
+ */
+unsigned long long get_ticks(void)
+{
+	return get_timer(0);
+}
+
+/*
+ * This function is derived from PowerPC code (timebase clock frequency).
+ * On Microblaze it returns the number of timer ticks per second.
+ */
+ulong get_tbclk(void)
+{
+	return CONFIG_SYS_HZ;
+}

+ 1 - 0
include/configs/microblaze-generic.h

@@ -255,6 +255,7 @@
 #else
 #else
 # define CONFIG_CMD_PING
 # define CONFIG_CMD_PING
 # define CONFIG_CMD_DHCP
 # define CONFIG_CMD_DHCP
+# define CONFIG_CMD_TFTPPUT
 #endif
 #endif
 
 
 #if defined(CONFIG_SYSTEMACE)
 #if defined(CONFIG_SYSTEMACE)