UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Explorer
Explorer
7,357 Views
Registered: ‎02-18-2014

uartlite too large boot error

Jump to solution

I am currently in the process of migrating from petalinux 2014.1 to petalinux 2014.4. I have had all 14 of my uarts (2 PS uarts, and 12 axi uartlites) functioning for quite some time now. However when i migrated to 2014.4 I am now getting the below errors:

 

42c00000.serial: ttyUL1 at MMIO 0x42c00000 (irq = 61, base_baud = 0) is a uartlite
42c10000.serial: ttyUL2 at MMIO 0x42c10000 (irq = 62, base_baud = 0) is a uartlite
42c20000.serial: ttyUL3 at MMIO 0x42c20000 (irq = 63, base_baud = 0) is a uartlite
uartlite 42c30000.serial: ttyUL4 too large
uartlite: probe of 42c30000.serial failed with error -22
uartlite 42c40000.serial: ttyUL5 too large
uartlite: probe of 42c40000.serial failed with error -22
uartlite 42c50000.serial: ttyUL6 too large
uartlite: probe of 42c50000.serial failed with error -22
uartlite 42c60000.serial: ttyUL7 too large
uartlite: probe of 42c60000.serial failed with error -22
uartlite 42c70000.serial: ttyUL8 too large
uartlite: probe of 42c70000.serial failed with error -22
uartlite 42c80000.serial: ttyUL9 too large
uartlite: probe of 42c80000.serial failed with error -22
uartlite 42c90000.serial: ttyUL10 too large
uartlite: probe of 42c90000.serial failed with error -22
uartlite 42ca0000.serial: ttyUL11 too large
uartlite: probe of 42ca0000.serial failed with error -22
uartlite 42cb0000.serial: ttyUL12 too large
uartlite: probe of 42cb0000.serial failed with error -22
e0000000.serial: ttyPS0 at MMIO 0xe0000000 (irq = 59, base_baud = 3125000) is a xuartps
console [ttyPS0] enabled
e0001000.serial: ttyPS1 at MMIO 0xe0001000 (irq = 82, base_baud = 3125000) is a xuartps
xdevcfg f8007000.devcfg: ioremap 0xf8007000 to 80852000

 

As is noted, the first 3 uartlites initialize correctly, while the others return with a too large error. Attached is the entire boot log for those who are curious.

 

What could be causing this problem? Why would my uartlites work for the first few and not the rest?

 

Thanks!

0 Kudos
1 Solution

Accepted Solutions
Xilinx Employee
Xilinx Employee
13,294 Views
Registered: ‎09-10-2008

Re: uartlite too large boot error

Jump to solution
Hi Justin,

The 1st place to look is the driver source code as that's the power of an open source project (rather than closed source).

Looking at the UART Lite driver it has a constant in there for the max number of UARTs which is 4. I'm surprised that the log does not show UL0 also as I would have thought they start at 0, but that's a tangent I think.

ULITE_NR_UARTS

https://github.com/Xilinx/linux-xlnx/blob/master/drivers/tty/serial/uartlite.c

if (id < 0 || id >= ULITE_NR_UARTS) {
dev_err(dev, "%s%i too large\n", ULITE_NAME, id);
return -EINVAL;
}

I would say to alter the device driver to allow more devices. I will also see why we don't change that to be 16 or why there even has to be such a constant as that seems like a more reasonable limit to prevent these problems.

Thanks,
John

View solution in original post

0 Kudos
2 Replies
Xilinx Employee
Xilinx Employee
13,295 Views
Registered: ‎09-10-2008

Re: uartlite too large boot error

Jump to solution
Hi Justin,

The 1st place to look is the driver source code as that's the power of an open source project (rather than closed source).

Looking at the UART Lite driver it has a constant in there for the max number of UARTs which is 4. I'm surprised that the log does not show UL0 also as I would have thought they start at 0, but that's a tangent I think.

ULITE_NR_UARTS

https://github.com/Xilinx/linux-xlnx/blob/master/drivers/tty/serial/uartlite.c

if (id < 0 || id >= ULITE_NR_UARTS) {
dev_err(dev, "%s%i too large\n", ULITE_NAME, id);
return -EINVAL;
}

I would say to alter the device driver to allow more devices. I will also see why we don't change that to be 16 or why there even has to be such a constant as that seems like a more reasonable limit to prevent these problems.

Thanks,
John

View solution in original post

0 Kudos
Scholar vanmierlo
Scholar
6,672 Views
Registered: ‎06-10-2008

Re: uartlite too large boot error

Jump to solution

Hi John,

 

I asked the same question at xilinx github and was told to take the question upstream. See here:

https://github.com/Xilinx/linux-xlnx/issues/24

The issue also mentions a spinlock problem in the interrupt handler that seems to stay ignored, but is really relevant on a Zynq. Currently the driver only works properly on a single-core like the microblaze.

 

I hope you have more influence.

Maarten (also author of uartlite wiki page)

0 Kudos