On 07/12/13 00:33, Marek Vasut wrote:
Dear Artturi Alm,

[...]

Checking the linux code, they really seem to use their own thing, not gic. That
sucks.

Best regards,
Marek Vasut


Sucks or not, it's not the problem, interrupts now work as supposed to,
as far as i can tell.

After sending out the last mail with dmesg, i noticed that it had
printed only 16 chars from userland.
Now with modified dev/ic/com.c to support 64byte fifo, it'll print
the whole message before freezing, this is with uart0 irq disabled.
So after discovering that i went through everything related to
interrupts and i found out i had disabled enabling the interrupt in
two places at some point while figuring out how to fix what was not
broken.

It's the uart of the A10 that's incompatible with com.c :(
Issues atm. are:
1. registers need to be shifted.
2. it uses busy detection, which i saw now support for in com.c.
First one was easy to solve, but
hacking these in for uart likely to be found in just a single soc
seems unworthy, unless it would end up being very short diff.
So i might end up solving this with trimmed down version of com.c in the
arch/allwinner/dev, unsure about the right way to go.

random observation i made some time ago:
with no regshifting, kernel is printing faster than i can read, thanks
to register layout of ns8250+, which initially led me to believing
that uart was working out of the box, but with correct definitions in
ns16550.h, it's printing really slow, likely one char at a time.


- Artturi

Reply via email to