evk1206 evk1206 - 1 year ago 124
Linux Question

Linux Kernel Decompressing Linux message not getting printed on UART

I am working on an embedded Project with Minnowboard Max and customized Linux kernel with u-boot.

The Kernel command line parameters:

initcall_debug=1 video=HDMI-A-1:1920x1200MR@60D console=ttyS0,115200 console=tty0

I am seeing that none of the debug_pustr messages defined in the misc.c file is getting printed in the serial port.

debug_putstr("\nDecompressing Linux... ");

I have also enabled
in the kernel menuconfig.

Is there any way to see these messages in the serial port?

Answer Source

Is there any way to see these messages in the serial port?

Salient information is the processor architecture.
For instance in ARM booting, the decompressor code uses its own serial port configuration which is distinct from earlyprintk. Some ARM machines have config dialog to specify this early serial port; some might use the machine ID (see How do I find ARM Linux entry point when it fails to uncompress?). On ARM earlyprintk is not effective untill after the (init/main.c) init_kernel() routine has started.

For x86 all early serial port configuration & I/O is consolidated into the earlyprintk feature. Use the kernel command line parameter to define the serial port (default is device at 0x3F8) and baud rate (default is 9600).

1081         earlyprintk=    [X86,SH,BLACKFIN,ARM,M68k]
1082                         earlyprintk=vga
1083                         earlyprintk=efi
1084                         earlyprintk=xen
1085                         earlyprintk=serial[,ttySn[,baudrate]]
1086                         earlyprintk=serial[,0x...[,baudrate]]
1087                         earlyprintk=ttySn[,baudrate]
1088                         earlyprintk=dbgp[debugController#]
1089                         earlyprintk=pciserial,bus:device.function[,baudrate]
1091                         earlyprintk is useful when the kernel crashes before
1092                         the normal console is initialized. It is not enabled by
1093                         default because it has some cosmetic problems.
1095                         Append ",keep" to not disable it when the real console
1096                         takes over.
1098                         Only one of vga, efi, serial, or usb debug port can
1099                         be used at a time.
1101                         Currently only ttyS0 and ttyS1 may be specified by
1102                         name.  Other I/O ports may be explicitly specified
1103                         on some architectures (x86 and arm at least) by
1104                         replacing ttySn with an I/O port address, like this:
1105                                 earlyprintk=serial,0x1008,115200
1106                         You can find the port for a given device in
1107                         /proc/tty/driver/serial:
1108                                 2: uart:ST16650V2 port:00001008 irq:18 ...
1110                         Interaction with the standard serial driver is not
1111                         very good.
1113                         The VGA and EFI output is eventually overwritten by
1114                         the real console.
1116                         The xen output can only be used by Xen PV guests.