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]>

Reply via email to