Hello,
Theo gave a hint to check early console code and I found something curious.
Here is a diff to printf debug...
Index: sxiuart.c
===================================================================
RCS file: /cvs/src/sys/arch/armv7/sunxi/sxiuart.c,v
retrieving revision 1.3
diff -u -p -r1.3 sxiuart.c
--- sxiuart.c 6 Nov 2013 19:03:07 -0000 1.3
+++ sxiuart.c 18 Oct 2014 20:39:38 -0000
@@ -971,15 +971,18 @@ sxiuartcngetc(dev_t dev)
uint8_t c;
s = splhigh();
-
+bus_space_write_1(sxiuartconsiot, sxiuartconsioh, SXIUART_THR, 'a');
while (!ISSET(bus_space_read_1(sxiuartconsiot, sxiuartconsioh,
SXIUART_LSR), LSR_RXRDY))
continue;
+bus_space_write_1(sxiuartconsiot, sxiuartconsioh, SXIUART_THR, 'b');
c = bus_space_read_1(sxiuartconsiot, sxiuartconsioh, SXIUART_RBR);
/* clear any pending interrupts */
+bus_space_write_1(sxiuartconsiot, sxiuartconsioh, SXIUART_THR, 'c');
(void)bus_space_read_1(sxiuartconsiot, sxiuartconsioh, SXIUART_IIR);
+bus_space_write_1(sxiuartconsiot, sxiuartconsioh, SXIUART_THR, 'd');
splx(s);
return (c);
}
UKC stalls at polling LSR_RXRDY flag.
User Kernel Config
UKC> a
but ddb works no problem.
panic: uvm_fault: fault on non-pageable map (0xc0af328c, 0xc55aa000)
Stopped at 0xc0a1d4ac: ldrb r15, [r15, r15, ror r15]!
RUN AT LEAST 'trace' AND 'ps' AND INCLUDE OUTPUT WHEN REPORTING THIS PANIC!
DO NOT EVEN BOTHER REPORTING THIS WITHOUT INCLUDING THAT INFORMATION!
ddb>abd
I think sxiuartcngetc() have no problem and something makes worse.
Do I have to check page table (memory attribute of ARMv7 MMU)
when running UKC?
--
SASANO Takayoshi <[email protected]>