I am currently trying to trace the console on and R4400 Indy. It seems
that everything goes through console.c using either con_write or
con_put_char. It would be great if I could communicate with someone that
has a thorough understanding of this code and its interaction with
newport_con.c. I have put some prtink statements in and it seems that
newport_putcs is called several more times than it should. Is there some
interrupt handler that can jump right to it? I have manually traced the
calls from console.c con_write or con_put_char -> do_con_write ->
newport_putcs. I am trying to pin down the console low-level read/write
functions, so that I can grab the characters at that level and redirect
them in a similar console driver. This is what a normal call trace looks
like so far:
Aug 6 20:14:57 agamemnon kernel: IN: console.c:con_write():line 2244: int
0: string Entering runlevel: 2\210^KA4
Aug 6 20:14:57 agamemnon kernel: IN: newport_con.c:newport_putcs():line
393
Aug 6 20:14:57 agamemnon kernel: OUT: newport_con.c:newport_putcs():line
423
Aug 6 20:14:57 agamemnon kernel: IN: console.c:do_con_write():line 1839
Aug 6 20:14:57 agamemnon kernel: IN: newport_con.c:newport_putcs():line
393
Aug 6 20:14:57 agamemnon kernel: OUT: newport_con.c:newport_putcs():line
423
Aug 6 20:14:57 agamemnon kernel: IN: newport_con.c:newport_putcs():line
393
Aug 6 20:14:57 agamemnon kernel: IN: newport_con.c:newport_putcs():line
393
Aug 6 20:14:57 agamemnon kernel: OUT: newport_con.c:newport_putcs():line
423
Aug 6 20:14:57 agamemnon kernel: OUT: newport_con.c:newport_putcs():line
423
Aug 6 20:14:57 agamemnon kernel: IN: newport_con.c:newport_putcs():line
393
Aug 6 20:14:57 agamemnon kernel: OUT: newport_con.c:newport_putcs():line
423
Aug 6 20:14:57 agamemnon kernel: OUT: console.c:do_con_write():line 2013
Aug 6 20:14:57 agamemnon kernel: IN: newport_con.c:newport_putcs():line
393
Aug 6 20:14:57 agamemnon kernel: OUT: newport_con.c:newport_putcs():line
423
Aug 6 20:14:57 agamemnon kernel: OUT: console.c:con_write():line 2251
Aug 6 20:14:57 agamemnon kernel: IN: newport_con.c:newport_putcs():line
393
Aug 6 20:14:57 agamemnon kernel: OUT: newport_con.c:newport_putcs():line
423
Even after exiting con_write(), there is another newport_putcs() call.
Any assistance/explanation would be greatly appreciated.
thanks,
john
|