[PR 20] LEON3: fix GRETH interrupt initialization bug

Joel Sherrill joel.sherrill at OARcorp.com
Thu Mar 29 12:44:04 UTC 2012


Ok to apply

Daniel Hellstrom <daniel at gaisler.com> wrote:

>Fixed a bug where the vector number is used to clean and unmask
>the IRQ at the IRQ controller, the irq number must be used.
>
>Signed-off-by: Daniel Hellstrom <daniel at gaisler.com>
>---
> .../lib/libbsp/sparc/leon3/leon_greth/leon_greth.c |    8 ++++----
> 1 files changed, 4 insertions(+), 4 deletions(-)
>
>diff --git a/c/src/lib/libbsp/sparc/leon3/leon_greth/leon_greth.c b/c/src/lib/libbsp/sparc/leon3/leon_greth/leon_greth.c
>index 341bd27..dd301d7 100644
>--- a/c/src/lib/libbsp/sparc/leon3/leon_greth/leon_greth.c
>+++ b/c/src/lib/libbsp/sparc/leon3/leon_greth/leon_greth.c
>@@ -41,19 +41,19 @@ int rtems_leon_greth_driver_attach(
>   if (device_found == 1)
>   {
> 		base_addr = apbgreth.start;
>-		eth_irq = apbgreth.irq + 0x10;
>+		eth_irq = apbgreth.irq;
> 
>     /* clear control register and reset NIC */
>     *(volatile int *) base_addr = 0;
>     *(volatile int *) base_addr = GRETH_CTRL_RST;
>     *(volatile int *) base_addr = 0;
>     leon_greth_configuration.base_address = base_addr;
>-    leon_greth_configuration.vector = eth_irq;
>+    leon_greth_configuration.vector = eth_irq + 0x10;
>     leon_greth_configuration.txd_count = TDA_COUNT;
>     leon_greth_configuration.rxd_count = RDA_COUNT;
>     if (rtems_greth_driver_attach( config, &leon_greth_configuration )) {
>-      LEON_Clear_interrupt(leon_greth_configuration.vector);
>-      LEON_Unmask_interrupt(leon_greth_configuration.vector);
>+      LEON_Clear_interrupt(eth_irq);
>+      LEON_Unmask_interrupt(eth_irq);
>     }
>   }
>   return 0;
>-- 
>1.7.0.4
>
>_______________________________________________
>rtems-devel mailing list
>rtems-devel at rtems.org
>http://www.rtems.org/mailman/listinfo/rtems-devel




More information about the devel mailing list