Using a second UART to control a serial device

Pflaum, Clemens clemens.pflaum at
Mon Apr 20 15:47:59 CEST 2015

Thank you for your fast response, I've adapted your code to my needs 
(using the uart_pxa driver in drivers-frst). It compiles and starts up 
fine on the BananaPi but sadly I'm not getting any response on the uart3 
pins... It seems to have a problem in the 
l4\pkg\drivers-frst\uart\src\ when calling the 
Uart_16550::startup(regs). I get a few wierd boxlike characters on the 
console and then "failed to startup uart regs".

This is my init() :

    #define IRQ_NUM 86
    #define UART_BASE 0x01C28C00
bool Maestro_server::init()
       l4_addr_t virt_base = 0;

       if (l4io_request_iomem((l4_addr_t)UART_BASE, 0x1000, 
L4IO_MEM_NONCACHED, &virt_base))
           printf("maestro-drv: request io-memory from l4io failed.\n");
           return false;
       printf("maestro-drv: virtual base at:%lx\n", virt_base);

       L4::Io_register_block_mmio *regs = new 

       _uart = new (malloc(sizeof(L4::Uart_16550))) 
L4::Uart_16550((unsigned long) 115200);
     printf("failed to startup uart regs!");

       if(!(_uart->change_mode(0x00 | 0x03 | 0x00, 115200))){
           printf("failed to change uart mode!");

the rest of it is equal to the serial-drv example. Any idea what i 
couldve done wrong?


More information about the l4-hackers mailing list