summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp
diff options
context:
space:
mode:
authorDaniel Hellstrom <daniel@gaisler.com>2012-04-19 15:21:24 +0200
committerGedare Bloom <gedare@rtems.org>2012-04-19 12:34:21 -0400
commit605b4b649d286d88ed12eb50e18f76323ef9bee5 (patch)
treebf969edec0f07827ad4bfa2ef50fa7f423c753bd /c/src/lib/libbsp
parentLEON3: debugputs added printk mem buffer when no UART present (diff)
downloadrtems-605b4b649d286d88ed12eb50e18f76323ef9bee5.tar.bz2
LEON3: debugputs removed pointless isinit code, invoked only once
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
Diffstat (limited to 'c/src/lib/libbsp')
-rw-r--r--c/src/lib/libbsp/sparc/leon3/console/debugputs.c60
1 files changed, 26 insertions, 34 deletions
diff --git a/c/src/lib/libbsp/sparc/leon3/console/debugputs.c b/c/src/lib/libbsp/sparc/leon3/console/debugputs.c
index a189f5b161..7058cf8c8e 100644
--- a/c/src/lib/libbsp/sparc/leon3/console/debugputs.c
+++ b/c/src/lib/libbsp/sparc/leon3/console/debugputs.c
@@ -21,8 +21,6 @@
#include <assert.h>
#include <stdio.h>
-static int isinit = 0;
-
/* Let user override which on-chip APBUART will be debug UART
* 0 = Default APBUART. On MP system CPU0=APBUART0, CPU1=APBUART1...
* 1 = APBUART[0]
@@ -50,44 +48,38 @@ int bsp_debug_uart_init(void)
struct ambapp_dev *adev;
struct ambapp_apb_info *apb;
- if (isinit == 0) {
- /* Update debug_uart_index to index used as debug console.
- * Let user select Debug console by setting debug_uart_index. If the
- * BSP is to provide the default UART (debug_uart_index==0):
- * non-MP: APBUART[0] is debug console
- * MP: LEON CPU index select UART
- */
- if (debug_uart_index == 0) {
+ /* Update debug_uart_index to index used as debug console.
+ * Let user select Debug console by setting debug_uart_index. If the
+ * BSP is to provide the default UART (debug_uart_index==0):
+ * non-MP: APBUART[0] is debug console
+ * MP: LEON CPU index select UART
+ */
+ if (debug_uart_index == 0) {
#if defined(RTEMS_MULTIPROCESSING)
- debug_uart_index = LEON3_Cpu_Index;
+ debug_uart_index = LEON3_Cpu_Index;
#else
- debug_uart_index = 0;
+ debug_uart_index = 0;
#endif
- } else {
- debug_uart_index = debug_uart_index - 1; /* User selected dbg-console */
- }
-
- /* Find APBUART core for System Debug Console */
- i = debug_uart_index;
- adev = (void *)ambapp_for_each(&ambapp_plb, (OPTIONS_ALL|OPTIONS_APB_SLVS),
- VENDOR_GAISLER, GAISLER_APBUART,
- ambapp_find_by_idx, (void *)&i);
- if (adev) {
- /* Found a matching debug console, initialize debug uart if present
- * for printk
- */
- apb = (struct ambapp_apb_info *)adev->devinfo;
- dbg_uart = (ambapp_apb_uart *)apb->start;
- dbg_uart->ctrl |= LEON_REG_UART_CTRL_RE | LEON_REG_UART_CTRL_TE;
- dbg_uart->status = 0;
- }
- isinit = 1;
+ } else {
+ debug_uart_index = debug_uart_index - 1; /* User selected dbg-console */
}
- if (dbg_uart == NULL)
- return 0;
- else
+ /* Find APBUART core for System Debug Console */
+ i = debug_uart_index;
+ adev = (void *)ambapp_for_each(&ambapp_plb, (OPTIONS_ALL|OPTIONS_APB_SLVS),
+ VENDOR_GAISLER, GAISLER_APBUART,
+ ambapp_find_by_idx, (void *)&i);
+ if (adev) {
+ /* Found a matching debug console, initialize debug uart if present
+ * for printk
+ */
+ apb = (struct ambapp_apb_info *)adev->devinfo;
+ dbg_uart = (ambapp_apb_uart *)apb->start;
+ dbg_uart->ctrl |= LEON_REG_UART_CTRL_RE | LEON_REG_UART_CTRL_TE;
+ dbg_uart->status = 0;
return 1;
+ } else
+ return 0;
}
/*