[rtems commit] LEON3: fix GRETH interrupt initialization bug
Joel Sherrill
joel at rtems.org
Thu Mar 29 16:19:40 UTC 2012
Module: rtems
Branch: master
Commit: d0dbcf8a1a9ac837861c7c8b6f12b2200a061f3f
Changeset: http://git.rtems.org/rtems/commit/?id=d0dbcf8a1a9ac837861c7c8b6f12b2200a061f3f
Author: Daniel Hellstrom <daniel at gaisler.com>
Date: Thu Mar 29 06:52:11 2012 -0500
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 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;
More information about the vc
mailing list