Hello,
My intention is to use linux serial console over JTAG. Currently our board has an UART for that but eventually we must have all of the UART ports for other use, so it will not be useable in the future.
I’m using Lauterbach/Trace32 as client. I’ve succesfully gotten the console setup to the point that I get kernel boot prints, so I know that HW and kernel image should be OK to that point. As a sidenote I got the console to work by setting CONFIG_HVC_DCC in the kernel and setting hvc0 as console in u-boot.
So the actual issue is that when booting, the kernel hangs when it’s setting up serial consoles. I can get the terminal prints and dmesg using lauterbach. Below are the final lines that both of them output (debug_initcall used).
JTAG is present at the colibri evaluation board, so I assume that someone has done this before?
Additional info:
- JTAG debugging works
- Kernel debugging works
- T32/Lauterbach control works
Console:
[ 0.318254] mxc_sdc_fb fb@0: 640x480 h_sync,r,l: 64,16,80 v_sync,l,u: 4,3,13
pixclock=23750000 Hz
[ 0.367908] mxc_sdc_fb fb@0: 640x480 h_sync,r,l: 64,16,80 v_sync,l,u: 4,3,13
pixclock=23750000 Hz
[ 0.387392] Console: switching to colour frame buffer device 80x30
[ 0.413721] mxc_sdc_fb fb@1: mxcfb1 is turned off!
[ 0.417239] imx-sdma 20ec000.sdma: no iram assigned, using external mem
[ 0.419390] imx-sdma 20ec000.sdma: no event needs to be remapped
[ 0.421500] imx-sdma 20ec000.sdma: loaded firmware 3.3
[ 0.426053] imx-sdma 20ec000.sdma: initialized
[ 0.429649] pfuze100-regulator 1-0008: Full layer: 2, Metal layer: 1
[ 0.432143] pfuze100-regulator 1-0008: FAB: 0, FIN: 0
[ 0.434040] pfuze100-regulator 1-0008: pfuze100 found.
[ 0.862579] console [hvc0] enabled
[ 0.866725] 2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 24, base_baud =
5000000) is a IMX
Dmesg:
[ 0.441205] SW3B: at 1500 mV
[ 0.441995] SW4: at 1000 mV
[ 0.442826] SWBST: 5000 <–> 5150 mV at 5000 mV
[ 0.444119] VSNVS: 1000 <–> 3000 mV at 3000 mV
[ 0.444299] VREFDDR: override min_uV, 1 → 750000
[ 0.444309] VREFDDR: override max_uV, 2147483647 → 750000
[ 0.444931] VREFDDR: 750 mV
[ 0.445744] VGEN1: at 1500 mV
[ 0.446547] VGEN2: 800 <–> 1550 mV at 1500 mV
[ 0.447348] VGEN3: at 3300 mV
[ 0.448161] VGEN4: 1800 <–> 3300 mV at 1800 mV
[ 0.448974] VGEN5: 1800 <–> 3300 mV at 2500 mV
[ 0.449794] VGEN6: 1800 <–> 3300 mV at 2800 mV
[ 0.449922] initcall pfuze_driver_init+0x0/0x20 returned 0 after 21151 usecs
[ 0.449949] calling rn5t618_regulator_driver_init+0x0/0x20 @ 1
[ 0.450091] initcall rn5t618_regulator_driver_init+0x0/0x20 returned 0 after 121 usecs
[ 0.450111] calling pty_init+0x0/0x254 @ 1
[ 0.450321] initcall pty_init+0x0/0x254 returned 0 after 187 usecs
[ 0.450344] calling hvc_dcc_init+0x0/0x6c @ 1
[ 0.862579] console [hvc0] enabled
[ 0.866148] initcall hvc_dcc_init+0x0/0x6c returned 0 after 406033 usecs
[ 0.866191] calling imx_serial_init+0x0/0x48 @ 1
[ 0.866725] 2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 24, base_baud = 5000000) is a IMX
[ 0.875587] 21e8000.serial: ttymxc1 at MMIO 0x21e8000 (irq = 295, base_baud = 5000000) is a IMX
EDIT: I tried to get more info for this by taking the console from u-boot environment. For some reason the Angstrom console popped up, even though it now shouldn’t be configured anywhere. Well it still doesn’t work because it appears that the linux kernel deadlocks. I would venture out to guess that the same issue was on the original question? Right now my question is: Should I give up on this matter? Judging on the deadlock, could I say that JTAG console is not supported at all?