summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Hellstrom <daniel@gaisler.com>2012-03-29 06:52:11 -0500
committerJoel Sherrill <joel.sherrill@oarcorp.com>2012-03-29 11:17:42 -0500
commitd0dbcf8a1a9ac837861c7c8b6f12b2200a061f3f (patch)
tree9f9df617b7c84d1d31e1b3fe3d3052f369dc1c60
parentGRETH: removed the use of rtems_set_clock() in auto-nego timeout (diff)
downloadrtems-d0dbcf8a1a9ac837861c7c8b6f12b2200a061f3f.tar.bz2
LEON3: fix GRETH interrupt initialization bug
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@gaisler.com>
-rw-r--r--c/src/lib/libbsp/sparc/leon3/leon_greth/leon_greth.c8
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 341bd2792e..dd301d7737 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;