Enabling boot console in Yocto

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Enabling boot console in Yocto

3,439 Views
ajellisuk
Contributor II

Hello

I am working on a project using an iMX6 and Yocto with kernel version 4.1.15. I would like to get a verbose output from the kernel sent to the serial console during the boot process. I have passed earlyprintk as a parameter to the kernel from uboot, and when the system boot I get the following output in the console:

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.1.15-yocto-standard (oe-user@oe-host) (gcc version 7.3.0 (GCC) ) #5 SMP PREEMPT Wed Nov 6 18:31:45 CE
T 2019
[    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine model: MSC Q7 i.MX6Q (143)
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] PERCPU: Embedded 12 pages/cpu @ee7a0000 s17100 r8192 d23860 u49152
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 520720
[    0.000000] Kernel command line:  coherent_pool=16M earlyprintk earlycon=imx21-uart,0x21e8000,115200n8 ttymxc1,115200 consoleblan
k=0 mtdparts=m25p16:0x0000020000@0x0000000000(init),0x0000020000@0x0000020000(uboot_data),0x0000080000@0x0000040000(uboot),0x0000140
000@0x00000c0000(boot_logo) root=/dev/mmcblk0p1 rw,rootwait ip=:::::eth0:off fec.macaddr=0x00,0x30,0xD6,0x16,0x48,0x85    board_name
=msc-q7-imx6plus board_id=1004305806 board_variant=143-012 boot_count=1211    uboot_version=2014.04+g3a5fc25
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 262144 (order: 8, 1048576 bytes)
[    0.000000] Inode-cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Memory: 1739116K/2097152K available (8147K kernel code, 369K rwdata, 2644K rodata, 316K init, 498K bss, 358036K reser
ved, 0K cma-reserved, 270336K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xf0000000 - 0xff000000   ( 240 MB)
[    0.000000]     lowmem  : 0x80000000 - 0xef800000   (1784 MB)
[    0.000000]     pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)
[    0.000000]     modules : 0x7f000000 - 0x7fe00000   (  14 MB)
[    0.000000]       .text : 0x80008000 - 0x80a9206c   (10793 kB)
[    0.000000]       .init : 0x80a93000 - 0x80ae2000   ( 316 kB)
[    0.000000]       .data : 0x80ae2000 - 0x80b3e440   ( 370 kB)
[    0.000000]        .bss : 0x80b3e440 - 0x80bbaf10   ( 499 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] L2C-310 erratum 769419 enabled
[    0.000000] L2C-310 enabling early BRESP for Cortex-A9
[    0.000000] L2C-310 full line of zeros enabled for Cortex-A9
[    0.000000] L2C-310 ID prefetch enabled, offset 16 lines
[    0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
[    0.000000] L2C-310 cache controller enabled, 16 ways, 1024 kB
[    0.000000] L2C-310: CACHE_ID 0x410000c7, AUX_CTRL 0x76070001
[    0.000000] ccm: ldb_di_sel already changed from reset value
[    0.000000] mxc_clocksource_init 3000000
[    0.000000] Switching to timer-based delay loop, resolution 333ns
[    0.000009] sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 715827882841ns
[    0.008300] clocksource mxc_timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 637086815595 ns
[    0.018922] Console: colour dummy device 80x30
[    0.023479] console [tty0] enabled
[    0.026986] bootconsole [earlycon0] disabled

After the line stating the bootconsole is disabled, I see no further output until the login prompt.I have spent some time searching for an answer, but so far I've not found anything that helps.

How do I enable the boot console so I get a verbose output from the kernel during booting?

Thanks in advance

Andrew

imx6 quadplus‌

yocto warrior‌

0 Kudos
4 Replies

3,071 Views
ajellisuk
Contributor II

Hi Jimmy

Thank you for your reply

The BSP I'm using is for msc-q7-imx6plus (MSC-LDK v1.3.0) :
MSC Q7-IMX6PLUS: MSC technologies an Avnet Company 

Andrew

0 Kudos

3,071 Views
jimmychan
NXP TechSupport
NXP TechSupport

According to the log message "bootconsole [earlycon0] disabled", the bootconsole was disabled. There somewhere disable the earlycon may due to conflict with the usage of the same uart port or debug port. May be in driver or board .c file in the BSP. If you cannot find it from the BSP source code, it is better to check with the provider/company of the BSP. 

0 Kudos

3,071 Views
ajellisuk
Contributor II

Hi Jimmy

After further searching  I found‌ the answer:

There was an environment variable in uboot which read, "console=ttymxc1,115200", it needed to be changed so that it reads, "console=console=ttymxc1,115200".

I now get all of the messages from the kernel I need during boot.

Andrew

3,071 Views
jimmychan
NXP TechSupport
NXP TechSupport

Could you tell me which BSP are you using?

0 Kudos