<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>change log for rtems (2010-05-24)</title>
</head>
<body text='#000000' bgcolor='#ffffff'>
<a name='cs1'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>joel</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-05-24 Joel Sherrill <joel.sherrill@oarcorp.com>

        * Makefile.am, amba/amba.c, console/console.c, console/debugputs.c,
        startup/bspstart.c: Rework initialization order so AMBA bus is
        scanned earlier. This lets us look for UARTs earlier and support
        printk as early as bsp_start() returning.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog.diff?r1=text&tr1=1.94&r2=text&tr2=1.95&diff_format=h">M</a></td><td width='1%'>1.95</td><td width='100%'>c/src/lib/libbsp/sparc/leon3/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/leon3/Makefile.am.diff?r1=text&tr1=1.27&r2=text&tr2=1.28&diff_format=h">M</a></td><td width='1%'>1.28</td><td width='100%'>c/src/lib/libbsp/sparc/leon3/Makefile.am</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/leon3/amba/amba.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.12&diff_format=h">M</a></td><td width='1%'>1.12</td><td width='100%'>c/src/lib/libbsp/sparc/leon3/amba/amba.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/leon3/console/console.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.14&diff_format=h">M</a></td><td width='1%'>1.14</td><td width='100%'>c/src/lib/libbsp/sparc/leon3/console/console.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/leon3/console/debugputs.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.10&diff_format=h">M</a></td><td width='1%'>1.10</td><td width='100%'>c/src/lib/libbsp/sparc/leon3/console/debugputs.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/sparc/leon3/startup/bspstart.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.18&diff_format=h">M</a></td><td width='1%'>1.18</td><td width='100%'>c/src/lib/libbsp/sparc/leon3/startup/bspstart.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog:1.94 rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog:1.95
--- rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog:1.94   Tue May 11 02:41:21 2010
+++ rtems/c/src/lib/libbsp/sparc/leon3/ChangeLog        Mon May 24 10:05:18 2010
</font><font color='#997700'>@@ -1,3 +1,10 @@
</font><font color='#000088'>+2010-05-24    Joel Sherrill <joel.sherrill@oarcorp.com>
+
+       * Makefile.am, amba/amba.c, console/console.c, console/debugputs.c,
+       startup/bspstart.c: Rework initialization order so AMBA bus is
+       scanned earlier. This lets us look for UARTs earlier and support
+       printk as early as bsp_start() returning.
+
</font> 2010-05-11        Sebastian Huber <sebastian.huber@embedded-brains.de>
 
        * startup/linkcmds: Include basic linker command file and define only

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/leon3/Makefile.am:1.27 rtems/c/src/lib/libbsp/sparc/leon3/Makefile.am:1.28
--- rtems/c/src/lib/libbsp/sparc/leon3/Makefile.am:1.27 Tue May 11 02:41:22 2010
+++ rtems/c/src/lib/libbsp/sparc/leon3/Makefile.am      Mon May 24 10:05:19 2010
</font><font color='#997700'>@@ -39,7 +39,7 @@
</font> # startup
 libbsp_a_SOURCES += ../../shared/bspclean.c ../../shared/bsplibc.c \
     ../../shared/bsppost.c ../../shared/bootcard.c startup/bspstart.c \
<font color='#880000'>-    ../../sparc/shared/bsppretaskinghook.c \
</font><font color='#000088'>+    ../../sparc/shared/bsppretaskinghook.c ../../shared/bsppredriverhook.c \
</font>     ../../sparc/shared/bspgetworkarea.c ../../shared/sbrk.c startup/setvec.c \
     startup/spurious.c startup/bspidle.S
 # gnatsupp

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/leon3/amba/amba.c:1.11 rtems/c/src/lib/libbsp/sparc/leon3/amba/amba.c:1.12
--- rtems/c/src/lib/libbsp/sparc/leon3/amba/amba.c:1.11 Sun Nov 29 09:33:27 2009
+++ rtems/c/src/lib/libbsp/sparc/leon3/amba/amba.c      Mon May 24 10:05:19 2010
</font><font color='#997700'>@@ -24,9 +24,9 @@
</font> int LEON3_Cpu_Index = 0;
 
 /*
<font color='#880000'>- *  bsp_predriver_hook
</font><font color='#000088'>+ *  amba_initialize
</font>  *
<font color='#880000'>- *  BSP predriver hook.  Called just before drivers are initialized.
</font><font color='#000088'>+ *  Must be called just before drivers are initialized.
</font>  *  Used to scan system bus. Probes for AHB masters, AHB slaves and
  *  APB slaves. Addresses to configuration areas of the AHB masters,
  *  AHB slaves, APB slaves and APB master are storeds in
<font color='#997700'>@@ -43,8 +43,9 @@
</font> 
 
 extern rtems_configuration_table Configuration;
<font color='#000088'>+extern int scan_uarts(void);
</font> 
<font color='#880000'>-void bsp_predriver_hook(void)
</font><font color='#000088'>+void amba_initialize(void)
</font> {
   int i;
   amba_apb_device dev;
<font color='#997700'>@@ -71,4 +72,6 @@
</font>     LEON3_Timer_Regs = (volatile LEON3_Timer_Regs_Map *) dev.start;
   }
 
<font color='#000088'>+  /* find UARTS */
+  scan_uarts();
</font> }

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/leon3/console/console.c:1.13 rtems/c/src/lib/libbsp/sparc/leon3/console/console.c:1.14
--- rtems/c/src/lib/libbsp/sparc/leon3/console/console.c:1.13   Thu Dec 10 08:43:52 2009
+++ rtems/c/src/lib/libbsp/sparc/leon3/console/console.c        Mon May 24 10:05:19 2010
</font><font color='#997700'>@@ -76,27 +76,8 @@
</font>  *
  */
 int uarts = 0;
<font color='#880000'>-static int isinit = 0;
</font> volatile LEON3_UART_Regs_Map *LEON3_Console_Uart[LEON3_APBUARTS];
 
<font color='#880000'>-int scan_uarts(void) {
-  int i;
-  amba_apb_device apbuarts[LEON3_APBUARTS];
-
-  if (isinit == 0) {
-    i = 0;
-    uarts = 0;
-
-    uarts = amba_find_apbslvs(
-      &amba_conf, VENDOR_GAISLER, GAISLER_APBUART, apbuarts, LEON3_APBUARTS);
-    for(i=0; i<uarts; i++) {
-      LEON3_Console_Uart[i] = (volatile LEON3_UART_Regs_Map *)apbuarts[i].start;
-    }
-    isinit = 1;
-  }
-  return uarts;
-}
-
</font> rtems_device_driver console_initialize(
   rtems_device_major_number  major,
   rtems_device_minor_number  minor,
<font color='#997700'>@@ -109,10 +90,7 @@
</font> 
   rtems_termios_initialize();
 
<font color='#880000'>-  /* Find UARTs */
-  scan_uarts();
-
-  /* default to zero and override if multiprocessing */
</font><font color='#000088'>+  /* default console to zero and override if multiprocessing */
</font>   uart0 = 0;
   #if defined(RTEMS_MULTIPROCESSING)
     if (rtems_configuration_get_user_multiprocessing_table() != NULL)
<font color='#997700'>@@ -120,22 +98,18 @@
</font>   #endif
 
   /*  Register Device Names */
<font color='#880000'>-
-  if (uarts && (uart0 < uarts))
-  {
</font><font color='#000088'>+  if (uarts && (uart0 < uarts)) {
</font>     status = rtems_io_register_name( "/dev/console", major, 0 );
     if (status != RTEMS_SUCCESSFUL)
       rtems_fatal_error_occurred(status);
 
     strcpy(console_name,"/dev/console_a");
<font color='#880000'>-    for (i = uart0+1; i < uarts; i++)
-    {
</font><font color='#000088'>+    for (i = uart0+1; i < uarts; i++) {
</font>       console_name[13]++;
       status = rtems_io_register_name( console_name, major, i);
     }
   }
 
<font color='#880000'>-
</font>   /*
    *  Initialize Hardware if ONLY CPU or first CPU in MP system
    */

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/leon3/console/debugputs.c:1.9 rtems/c/src/lib/libbsp/sparc/leon3/console/debugputs.c:1.10
--- rtems/c/src/lib/libbsp/sparc/leon3/console/debugputs.c:1.9  Sun Nov 29 09:33:27 2009
+++ rtems/c/src/lib/libbsp/sparc/leon3/console/debugputs.c      Mon May 24 10:05:19 2010
</font><font color='#997700'>@@ -27,6 +27,38 @@
</font>  */
 extern int uarts;
 
<font color='#000088'>+static int isinit = 0;
+
+/*
+ *  Scan for UARTS in configuration
+ */
+int scan_uarts(void)
+{
+  int i;
+  amba_apb_device apbuarts[LEON3_APBUARTS];
+
+  if (isinit == 0) {
+    i = 0;
+    uarts = 0;
+
+    uarts = amba_find_apbslvs(
+      &amba_conf, VENDOR_GAISLER, GAISLER_APBUART, apbuarts, LEON3_APBUARTS);
+    for(i=0; i<uarts; i++) {
+      LEON3_Console_Uart[i] = (volatile LEON3_UART_Regs_Map *)apbuarts[i].start;
+    }
+
+    /* initialize uart 0 if present for printk */
+    if ( uarts ) {
+      LEON3_Console_Uart[0]->ctrl |=
+        LEON_REG_UART_CTRL_RE | LEON_REG_UART_CTRL_TE;
+      LEON3_Console_Uart[0]->status = 0;
+    }
+    isinit = 1;
+  }
+
+  return uarts;
+}
+
</font> /*
  *  console_outbyte_polled
  *

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/sparc/leon3/startup/bspstart.c:1.17 rtems/c/src/lib/libbsp/sparc/leon3/startup/bspstart.c:1.18
--- rtems/c/src/lib/libbsp/sparc/leon3/startup/bspstart.c:1.17  Sun Nov 29 09:33:27 2009
+++ rtems/c/src/lib/libbsp/sparc/leon3/startup/bspstart.c       Mon May 24 10:05:19 2010
</font><font color='#997700'>@@ -27,6 +27,8 @@
</font>  */
 int CPU_SPARC_HAS_SNOOPING;
 
<font color='#000088'>+extern void amba_initialize(void);
+
</font> /*
  * set_snooping
  *
<font color='#997700'>@@ -54,4 +56,7 @@
</font> void bsp_start( void )
 {
   CPU_SPARC_HAS_SNOOPING = set_snooping();
<font color='#000088'>+
+  /* Find UARTs */
+  amba_initialize();
</font> }
</pre>
<p> </p>

<p>--<br />
<small>Generated by <a href="http://www.codewiz.org/projects/index.html#loginfo">Deluxe Loginfo</a> 2.122 by Bernardo Innocenti <bernie@develer.com></small></p>
</body>
</html>