AG patches chunkD
Daniel Hellstrom
daniel at gaisler.com
Thu Apr 5 15:22:38 UTC 2012
Hello,
This is the fourth chunk of patches, it consist of shared-IRQ implementation for the LEON family and LEON3 console improvements. No bug fixes, only improvements.
Thanks,
Daniel
PATCH 27 consists of three patches:
bd680fd LEON: implemented shared-irq using libbsp/shared layer
2545225 SMC91111: updated to use shared IRQ service
587dffe GRETH: use shared-irq service instead of BSP specific set_vec()
LEON3 BSP specific patches
f587d88 LEON3: cleanup console UART indexing handling
678abd1 LEON3: console use register pointers instead of UART indexes
c305ccc LEON3: halt boot if IRQ controller not found
8a98ec1 LEON3: added IRQAMP support
commit 8a98ec1844698b88c7ce2e439145c9113553c51e
Author: Daniel Hellstrom <daniel at gaisler.com>
Date: Tue Dec 13 09:24:34 2011 +0100
LEON3: added IRQAMP support
c/src/lib/libbsp/sparc/leon3/amba/amba.c | 14 ++++++++++++++
c/src/lib/libbsp/sparc/shared/include/ambapp.h | 7 ++++---
2 files changed, 18 insertions(+), 3 deletions(-)
commit c305ccc7e579ebc5853d40f95d38e4e7f9c360f0
Author: Daniel Hellstrom <daniel at gaisler.com>
Date: Mon Dec 12 17:24:38 2011 +0100
LEON3: halt boot if IRQ controller not found
Signed-off-by: Daniel Hellstrom <daniel at gaisler.com>
c/src/lib/libbsp/sparc/leon3/amba/amba.c | 13 +++++++++----
1 files changed, 9 insertions(+), 4 deletions(-)
commit 678abd1634184e240b68a222eeeba0c693eff93b
Author: Daniel Hellstrom <daniel at gaisler.com>
Date: Wed Dec 7 17:26:31 2011 +0100
LEON3: console use register pointers instead of UART indexes
Signed-off-by: Daniel Hellstrom <daniel at gaisler.com>
c/src/lib/libbsp/sparc/leon3/console/console.c | 16 ++++----
c/src/lib/libbsp/sparc/leon3/console/debugputs.c | 50 +++++++++++-----------
2 files changed, 33 insertions(+), 33 deletions(-)
commit f587d88dd95880be31ab6aaf27ccb8f9499df0f5
Author: Daniel Hellstrom <daniel at gaisler.com>
Date: Wed Dec 7 14:29:37 2011 +0100
LEON3: cleanup console UART indexing handling
The UART indexing was rather a mess when MP was enabled. The changes
introduces two weak variables syscon_uart_index and debug_uart_index
so that the user can override the default system debug console (printk)
and system console UART (/dev/console).
The two weak variables is updated on boot to reflect the "real" UART
index.
MINOR DEVICE-FS-NAME UART
0 /dev/console Default /dev/console_a, user selectable
1 /dev/console_a APBUART[0] (missing by default)
2 /dev/console_b APBUART[1]
...
/dev/console_a is by default renamed /dev/console and assigned minor=0,
but user can select /dev/console_['a'+N] to be renamed to /dev/console
by setting syscon_uart_index=N.
On a MP system the console renamed to /dev/console is selected by CPU
index (LEON3_Cpu_Index). /dev/console_['a' + LEON3_Cpu_Index] is
renamed unless overrided. Resource sharing is performed by the user,
one should not open/access a console that another OS instance uses.
This patch also moves the initialization of the UART to the open()
call, note that before APBUART[0] was always enabled as debug uart
even on MP systems. The debug UART is initialized at boot time.
Signed-off-by: Daniel Hellstrom <daniel at gaisler.com>
c/src/lib/libbsp/sparc/leon3/console/console.c | 114 ++++++++++++++-------
c/src/lib/libbsp/sparc/leon3/console/debugputs.c | 73 ++++++++++-----
2 files changed, 126 insertions(+), 61 deletions(-)
commit 587dffef5274b515f30e6ddf483e8eecadc7a6a4
Author: Daniel Hellstrom <daniel at gaisler.com>
Date: Fri Dec 2 14:15:53 2011 +0100
GRETH: use shared-irq service instead of BSP specific set_vec()
The ISR code is updated to use argument instead of global greth
structure, now that the greth private is available in the ISR.
The shared-irq routines will unmask the IRQ, so the forced LEON3
BSP unmask/clear IRQ is removed.
Signed-off-by: Daniel Hellstrom <daniel at gaisler.com>
.../lib/libbsp/sparc/leon3/leon_greth/leon_greth.c | 7 +---
c/src/libchip/network/greth.c | 36 ++++++++------------
c/src/libchip/network/greth.h | 2 +-
3 files changed, 17 insertions(+), 28 deletions(-)
commit 2545225f448288fed18d628b3f50f312b1c996db
Author: Daniel Hellstrom <daniel at gaisler.com>
Date: Mon Nov 28 14:08:14 2011 +0100
SMC91111: updated to use shared IRQ service
Signed-off-by: Daniel Hellstrom <daniel at gaisler.com>
.../sparc/leon2/leon_smc91111/leon_smc91111.c | 10 ++++------
.../sparc/leon3/leon_smc91111/leon_smc91111.c | 4 ++--
c/src/libchip/network/smc91111.c | 19 ++++++++-----------
c/src/libchip/network/smc91111exp.h | 2 +-
4 files changed, 15 insertions(+), 20 deletions(-)
commit bd680fdaf6b88ddbf18833eb1d1f5b16ad8acdc6
Author: Daniel Hellstrom <daniel at gaisler.com>
Date: Fri Nov 25 13:50:28 2011 +0100
LEON: implemented shared-irq using libbsp/shared layer
The implementation use IRQ number instead of vector number since
some IRQs does not have a unique vector, for example the extended
interrupts all enter the same trap vector entry.
Added support for the LEON3 extended interrupt controller when using
the shared IRQ layer.
Signed-off-by: Daniel Hellstrom <daniel at gaisler.com>
c/src/lib/libbsp/sparc/Makefile.am | 3 +
c/src/lib/libbsp/sparc/leon2/Makefile.am | 14 +++-
c/src/lib/libbsp/sparc/leon2/include/bsp.h | 74 +++++++++++++
c/src/lib/libbsp/sparc/leon2/include/bsp/irq.h | 20 ++++
c/src/lib/libbsp/sparc/leon2/include/leon.h | 5 +
c/src/lib/libbsp/sparc/leon2/preinstall.am | 12 ++
.../lib/libbsp/sparc/leon2/startup/bsppredriver.c | 25 +++++
c/src/lib/libbsp/sparc/leon3/Makefile.am | 15 +++-
c/src/lib/libbsp/sparc/leon3/amba/amba.c | 6 +
c/src/lib/libbsp/sparc/leon3/include/bsp.h | 74 +++++++++++++
c/src/lib/libbsp/sparc/leon3/include/bsp/irq.h | 36 +++++++
c/src/lib/libbsp/sparc/leon3/include/leon.h | 17 +++
c/src/lib/libbsp/sparc/leon3/preinstall.am | 12 ++
.../lib/libbsp/sparc/leon3/startup/bsppredriver.c | 27 +++++
c/src/lib/libbsp/sparc/leon3/startup/eirq.c | 27 +++++
c/src/lib/libbsp/sparc/shared/include/ambapp.h | 2 +
c/src/lib/libbsp/sparc/shared/irq/irq-shared.c | 110 ++++++++++++++++++++
17 files changed, 477 insertions(+), 2 deletions(-)
More information about the devel
mailing list