Respawn NX bootlog to ttyTHS1

Hello,
I opened a topic a few weeks ago: NX respawn CBOOT log to ttyTHS1

I still haven’t found a solution to my problem.

I think there is a few things going on in the different topics that differ from my case

  1. I don’t want to disable boot on ttyTCU0, and I believe most of the topics deal with disabling the combined uart (TCU0). I still want to keep the log on TCU0 in my case, except that I also want to have boot log (not CBOOT as I understand that was not possible), on ttyTHS1.

  2. Most of the topics deal with ttyTHS2, so some of the code changes would I am assuming have to adapt to that difference, to use ttyTHS1.
    ttyTHS1 is uartb, serial 1 or 3110000.serial, from:
    3110000.serial: ttyTHS1 at MMIO 0x3110000 (irq = 48, base_baud = 0) is a TEGRA_UART
    in the ttyTHS2 case, I think it is uartc, serial 2 or c280000.serial

What I tried is the following:

bootargs = "console=ttyS1,115200 earlycon=uart8250,mmio32,0x03110000 fbcon=map:0 net.ifnames=0 rootfstype=ext4"
//stdout-path = &uartb;

  serial@3110000 {
       compatible = "nvidia,tegra20-uart"; // To load uart8250 driver
       console-port;
       sqa-automation-port;
       status = "okay";
    };

stdout-path = &uartb; is commented out as it gives me an error. I think I need to declare serial1 = &uartb somewhere. Not sure if needed.

I have also tried to update the bpmp dts file as follows:

serial {
       port = <0x1>
       has_input
}

And also the bct-misc-flash.cfg file as follows:

enable_combined_uart = 0;
spe_uart_instance = 0xff

This has no effect. Both bpmp and bct-misc-flash file seems to be related to disabling combined uart TCU0, which I don’t need, so maybe I shoudn’t touch those 2 files anyway

That doesn’t do it and I get the following at bootup (emmc), on the TCU0 UART (it stops at the last line and thus fails), and I get nothing on ttyTHS1:

[0004.349] I> ########## USB boot ##########
[0004.358] W> No valid slot number is found in scratch register
[0004.359] W> Return default slot: _a
[0004.370] I> USB Firmware Version: 60.06 release
[0004.424] I> regulator of usb2-0 already enabled
[0004.429] I> regulator of usb2-1 already enabled
[0004.434] I> regulator of usb2-2 already enabled
[0005.437] E> failed to initialize xhci controller
[0005.437] E> Error in init of XUSB host driver, err: 79790026
[0005.438] E> Failed to initialize device 5-0
[0005.438] E> USB boot failed, err: 2037973030
[0005.438] I> ########## Fixed storage boot ##########
[0005.439] I> Already published: 00010003
[0005.439] I> Look for boot partition
[0005.442] I> Fallback: assuming 0th partition is boot partition
[0005.448] I> Detect filesystem
[0005.475] I> Loading extlinux.conf ...
[0005.475] I> rootfs path: /sdmmc_user/boot/extlinux/extlinux.conf
[0011.673] I> lookup_linear_dir:441: Invalid file block num
[0011.673] I> ext2_walk:142: 'extlinux' lookup failed
[0011.673] I> ext4_open_file:647: '/boot/extlinux/extlinux.conf' lookup failed
[0011.674] E> file /sdmmc_user/boot/extlinux/extlinux.conf open failed!!
[0011.674] E> Failed to find/load /boot/extlinux/extlinux.conf
[0011.677] I> Fallback: Load binaries from partition
[0011.682] W> No valid slot number is found in scratch register
[0011.687] W> Return default slot: _a
[0011.691] I> A/B: bin_type (37) slot 0
[0011.694] I> Loading kernel from partition
[0011.698] I> Loading partition kernel at 0xa42b0000 from device(0x1)
[0012.446] I> Validate kernel ...
[0012.446] I> T19x: Authenticate kernel (bin_type: 37), max size 0x5000000
[0012.843] W> No valid slot number is found in scratch register
[0012.844] W> Return default slot: _a
[0012.844] I> A/B: bin_type (38) slot 0
[0012.844] I> Loading kernel-dtb from partition
[0012.844] I> Loading partition kernel-dtb at 0x90000000 from device(0x1)
[0012.855] I> Validate kernel-dtb ...
[0012.856] I> T19x: Authenticate kernel-dtb (bin_type: 38), max size 0x400000
[0012.859] I> Checking boot.img header magic ... [0012.859] I> [OK]
[0012.859] I> Kernel hdr @0xa42b0000
[0012.861] I> Kernel dtb @0x90000000
[0012.865] I> decompressor handler not found
[0012.869] I> Copying kernel image (40185864 bytes) from 0xa42b0800 to 0x80080000 ... [0012.886] I> Done
[0012.886] I> Move ramdisk (len: 0) from 0xa6904000 to 0x91000000
[0012.887] I> Updated bpmp info to DTB
[0012.888] I> Ramdisk: Base: 0x91000000; Size: 0x0
[0012.892] I> Updated initrd info to DTB
[0012.895] E> tegrabl_linuxboot_add_disp_param, du 0 failed to get display params
[0012.903] E> tegrabl_linuxboot_add_disp_param, du 0 failed to get display params
[0012.910] E> tegrabl_linuxboot_add_disp_param, du 0 failed to get display params
[0012.917] W> No valid slot number is found in scratch register
[0012.923] W> Return default slot: _a
[0012.926] I> Active slot suffix: 
[0012.929] I> add_boot_slot_suffix: slot_suffix = 
[0012.934] I> Linux Cmdline: console=ttyS1,115200 earlycon=uart8250,mmio32,0x03110000 video=tegrafb no_console_suspend=1 gpt usbcore.old_scheme 
[0012.958] I> Updated bootarg info to DTB
[0012.961] W> MAC addr invalid!
[0012.964] E> Failed to get WIFI MAC address
[0012.968] W> MAC addr invalid!
[0012.971] E> Failed to get Bluetooth MAC address
[0012.976] I> eeprom_get_mac_addr: MAC (type: 2): 48:b0:2d:07:54:46
[0012.982] W> "plugin-manager" doesn't exist, creating
[0012.987] I> Adding /chosen/plugin-manager/cvm
[0012.991] W> "chip-id" doesn't exist, creating
[0012.995] I> Adding /chosen/plugin-manager/chip-id
[0013.000] W> "configs" doesn't exist, creating
[0013.004] I> Adding /chosen/plugin-manager/configs
[0013.009] W> "ids" doesn't exist, creating
[0013.013] I> Adding /chosen/plugin-manager/ids
[0013.017] W> "odm-data" doesn't exist, creating
[0013.022] I> Adding /chosen/plugin-manager/odm-data
[0013.029] W> "memory" doesn't exist, creating
[0013.031] I> [0] START: 0x80000000, END: 0xac000000
[0013.035] I> [1] START: 0xac004000, END: 0xf09d0000
[0013.040] I> [2] START: 0xf09dc000, END: 0xf09e0000
[0013.045] I> dram_block larger than 80000000
[0013.049] I> [3] START: 0x100000000, END: 0x280000000
[0013.054] I> added [base:0x80000000, size:0x2c000000] to /memory
[0013.059] I> added [base:0xac200000, size:0x44600000] to /memory
[0013.065] I> added [base:0x100000000, size:0x180000000] to /memory
[0013.072] I> Updated memory info to DTB
[0013.075] E> add_disp_param: failed to get display params for du=0
[0013.081] W> "reset" doesn't exist, creating
[0013.086] I> NVG: Logical CPU: 0; MPIDR: 0x80000000
[0013.090] I> NVG: Logical CPU: 1; MPIDR: 0x80000001
[0013.095] I> NVG: Logical CPU: 2; MPIDR: 0x80000100
[0013.099] I> NVG: Logical CPU: 3; MPIDR: 0x80000101
[0013.104] I> NVG: Logical CPU: 4; MPIDR: 0x80000200
[0013.109] I> NVG: Logical CPU: 5; MPIDR: 0x80000201
[0013.114] I> Deleted cpu@6 node in DT
[0013.117] I> Deleted cpu@7 node in DT
[0013.121] I> Deleted cluster3 node in FDT
[0013.125] I> Update arm-pmu in FDT
[0013.128] I> - update property: interrupts
[0013.132] I> - update property: interrupt-affinity
[0013.137] W> "misc-data" doesn't exist, creating
[0013.141] I> Boot-device: QSPI
[0013.143] W> Unknown boot device
[0013.147] I> Add storage-qspi to plugin-manager/misc-data
[0013.152] W> Unknown storage device
[0013.156] I> Add serial number:1421720027012 as DT property
[0013.161] I> Plugin-manager override starting
[0013.165] I> node /plugin-manager/fragment-pcie-c5-rp matches
[0013.172] I> node /plugin-manager/fragement-tegra-wdt-en matches
[0013.178] I> node /plugin-manager/fragement-tegra-sdhci-sd-dis matches
[0013.186] I> Disable plugin-manager status in FDT
[0013.187] I> Plugin-manager override finished successfully
[0013.192] I> tegrabl_load_kernel_and_dtb: Done
[0013.197] E> tegrabl_display_clear: display is not initialized
[0013.202] W> Boot logo display failed...
[0013.206] I> Kernel EP: 0x80080000, DTB: 0x90000000

hello andre.girard,

it’s not supported for changing the CBoot logs output to another UART.

Thanks,

Just for clarification, I don’t want the CBoot log on another UART, but just the boot log messages. What you would get after boot from typing dmesg. If you only read the first few lines of my post you may have thought I wanted the CBoot on another UART, but this is not the case.

Or do you mean that CBoot is the same as the boot log ? CBoot in my mind is different and relates to the ability for the end user to halt the boot up process and control things, like USB boot vs SD card boot etc, in the case of CBoot (very limited). CBoot is not what I want on ttyTHS1, but the boot log at startup.

hello andre.girard,

please refer to Jetson Xavier NX Series and Jetson AGX Xavier Series Boot Flow.
there’re logs for… mb1, mb2, cboot, kernel.
those messages before kernel were indicate as bootloader logs.

please have confirmation, you only interested with kernel logs?

Added notes:

1 Like

Could you clarify if the dmesg displayed text is all CBoot or a mix of CBoot and Kernel boot ? I am a bit confused by your link. For instance, the text I wrote above from the dmesg, is that considered CBoot or Kernel boot. This is the kind of information I would need to have access to in case something breaks. I won’t have access to TCU0 in our system so for troubleshooting, having boot log in THS1 would be ideal.
Thanks.

Thanks! Though I am not looking to reduce the level of information from the boot log, but just to redirect or duplicate the log messages to another UART, ttyTHS1 in that case. So far, I’ve only been able to display the boot log in TCU0.

hello andre.girard,

it’s kernel messages if you talking about $ dmesg.
there’s configuration, you may update p3668.conf.common to change CMDLINE_ADD="console=..."; as others.
you should re-flash the target to update the settings.

It sounds like you want two serial consoles, where one shows boot messages, and the other does not. There can be more than one console, but I don’t know of a way to add more than one serial console. Changing the current serial console is different than adding a second.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.