How to change UARTs RTEMS

Jan.Sommer at dlr.de Jan.Sommer at dlr.de
Wed Sep 6 11:32:15 UTC 2017



> -----Original Message-----
> From: mfg [mailto:mfg at ugr.es]
> Sent: Wednesday, September 06, 2017 8:42 AM
> To: Sommer, Jan
> Cc: users at rtems.org
> Subject: RE: How to change UARTs RTEMS
> 
> Thanks for the reply Jan.
> 
> In your path you have xilinx_scosa, is it some xilinx's board?
>

Yes it's essentially a Zedboard. We used the standard Xilinx bsp as a starting point and
then added drivers and functions of custom devices.
 
> My console-config is different, it hasn't console_tbl structure (I attach it to the
> mail).
> 

I just noticed there has been an update to a new Termios device driver a few months ago.
Internally we don't update the tree very often that's why we still have the old version.

> I did not know there was a list of rtems developers, I'm going to ask that list,
> thank you very much.
> 

Most of the core developers read the user list as well.

Looking at your first example it looks to me as if you forgot to reassign the interrupt handlers.
Does it work if you change thinks like this:

zynq_uart_context zynq_uart_instances[2] = {
   {
     .base = RTEMS_TERMIOS_DEVICE_CONTEXT_INITIALIZER( "Zynq UART 0" ),
     .regs = (volatile struct zynq_uart *) 0xe0001000,
  //it was 0xe0000000,
     .irq = ZYNQ_IRQ_UART_1 // Change from   .irq = ZYNQ_IRQ_UART_0
   }, {
     .base = RTEMS_TERMIOS_DEVICE_CONTEXT_INITIALIZER( "Zynq UART 1" ),
     .regs = (volatile struct zynq_uart *) 0xe0000000, //it was 0xe0001000,
     .irq = ZYNQ_IRQ_UART_0 // Change from   .irq = ZYNQ_IRQ_UART_1
   }
};

Cheers,

   Jan

> Marco Fuentes García
> 
> 
> El 2017-08-31 16:32, Jan.Sommer at dlr.de escribió:
> > I think I encountered this problem as well.
> > I found this patch in my history. Maybe it helps:
> >
> > diff --git
> > a/c/src/lib/libbsp/arm/xilinx_scosa/console/console-config.c
> > b/c/src/lib/libbsp/arm/xilinx_scosa/console/console-config.c
> > index 94e5e4f799..6db8d0da88 100644
> > --- a/c/src/lib/libbsp/arm/xilinx_scosa/console/console-config.c
> > +++ b/c/src/lib/libbsp/arm/xilinx_scosa/console/console-config.c
> > @@ -30,7 +30,7 @@ console_tbl Console_Configuration_Ports[] = {
> >      .ulMargin = 0,
> >      .ulHysteresis = 0,
> >      .pDeviceParams = (void *) 115200,
> > -    .ulCtrlPort1 = 0xe0000000,
> > +    .ulCtrlPort1 = 0xe0001000,
> >      .ulCtrlPort2 = 0,
> >      .ulDataPort = 0,
> >      .getRegister = NULL,
> > @@ -38,7 +38,7 @@ console_tbl Console_Configuration_Ports[] = {
> >      .getData = NULL,
> >      .setData = NULL,
> >      .ulClock = 0,
> > -    .ulIntVector = ZYNQ_IRQ_UART_0
> > +    .ulIntVector = ZYNQ_IRQ_UART_1
> >    }, {
> >      .sDeviceName = "/dev/ttyS1",
> >      .deviceType = SERIAL_CUSTOM,
> > @@ -48,7 +48,7 @@ console_tbl Console_Configuration_Ports[] = {
> >      .ulMargin = 0,
> >      .ulHysteresis = 0,
> >      .pDeviceParams = (void *) 115200,
> > -    .ulCtrlPort1 = 0xe0001000,
> > +        .ulCtrlPort1 = 0xe0000000,
> >      .ulCtrlPort2 = 0,
> >      .ulDataPort = 0,
> >      .getRegister = NULL,
> > @@ -56,7 +56,7 @@ console_tbl Console_Configuration_Ports[] = {
> >      .getData = NULL,
> >      .setData = NULL,
> >      .ulClock = 0,
> > -    .ulIntVector = ZYNQ_IRQ_UART_1
> > +    .ulIntVector = ZYNQ_IRQ_UART_0
> >    }
> >  };
> >
> >
> > Best regards
> >
> >    Jan
> >
> >> -----Original Message-----
> >> From: users [mailto:users-bounces at rtems.org] On Behalf Of mfg
> >> Sent: Thursday, August 31, 2017 2:32 PM
> >> To: users at rtems.org
> >> Subject: How to change UARTs RTEMS
> >>
> >> Hello,
> >>
> >> I'm using the Zedboard's BSP and my objetive is to print what goes
> >> out through the uart1 interface for uart0 and vice versa.
> >> I thought changing the memory addresses of the “console-config.c”
> >> configuration file would suffice, but it is not.
> >>
> >> zynq_uart_context zynq_uart_instances[2] = {
> >>    {
> >>      .base = RTEMS_TERMIOS_DEVICE_CONTEXT_INITIALIZER( "Zynq UART 0"
> >> ),
> >>      .regs = (volatile struct zynq_uart *) 0xe0001000,
> >>   //it was 0xe0000000,
> >>      .irq = ZYNQ_IRQ_UART_0
> >>    }, {
> >>      .base = RTEMS_TERMIOS_DEVICE_CONTEXT_INITIALIZER( "Zynq UART 1"
> >> ),
> >>      .regs = (volatile struct zynq_uart *) 0xe0000000, //it was
> >> 0xe0001000,
> >>      .irq = ZYNQ_IRQ_UART_1
> >>    }
> >> };
> >>
> >> Do I have to modify more files like zyn-uart-regs.h?
> >> Has anyone done it or can it guide me?
> >>
> >> Thanks in advance.
> >>
> >> Marco Fuentes Garcia
> >>
> >> _______________________________________________
> >> users mailing list
> >> users at rtems.org
> >> http://lists.rtems.org/mailman/listinfo/users


More information about the users mailing list