Using Secure Boot

This guide offers a step-by-step walkthrough for enabling the secure boot function on SP7350 platforms. Secure boot ensures that an SP7350 device boots exclusively with authorized software, protecting the boot process from malicious threats. Additionally, the SP7350 guarantees that only encrypted images are executed, preventing unauthorized access and potential security breaches.

Table of Contents

Flow of Secure Boot

The flow of secure boot is as follows:

image-20240816-045258.png

i-boot (ROM code):

  1. At power-on, i-boot loads the x-boot image from an external boot device into SRAM.

  2. It then verifies the digital signature of the image.

  3. If the signature is correct, i-boot decrypts the x-boot image.

  4. Upon successful decryption, it executes it.

x-boot:

  1. x-boot begins by loading the DDR training firmware from an external boot device.

  2. It then initializes the DDR controller and conducts training for the DDR PHY.

  3. Once the DDR PHY training is successful, DDR DRAM becomes operational.

  4. Next, x-boot loads the TF-A, OP-TEE, and U-Boot images from an external boot device into DRAM.

  5. It verifies the secure hash value of these images.

  6. If the verification succeeds, x-boot decrypts the images.

  7. Upon successful decryption, executes TF-A, which then initiates OP-TEE and subsequently executes U-Boot.

U-Boot:

  1. U-Boot loads the Linux kernel image from an external boot device into DRAM.

  2. it then verifies its secure hash value.

  3. If the verification is successful, U-Boot executes the Linux kernel image.

Compiling Code for Secure Boot

Download Sources of SP7350

Please refer to: Downloading and Compiling Code

for downloading the sources, setting up the compilation environment for SP7350 platforms.

Configure the Building Environment

Navigate to the top folder of your Q654 (SP7350) project. Run the following command to initiate the configuration menu:

make config

Upon executing this command, a configuration menu will appear, providing several options for customization:

image-20241007-023432.png

In the configuration menu:

  1. Choose the board you want to build the image for. For instance, press '2' to select "SP7350 IO Board."

  2. Choose the boot device. For example, press '2' to specify booting from the SD card.

  3. Choose root file-system of Linux. For example, press '7' to opt for “Ubuntu MATE MATE 24.04.1” as root file-system.

  4. Choose boot modes. Press ‘2' to select building “Secure boot” images.

Once you have completed the configuration selections, the system will start configuring the building environment. This process may take a few seconds to a few minutes, depending on your computer's performance. Please wait patiently for the configuration to complete.

Please note that the system takes additional time to complete its initial run during the configuration process, as it requires the download of the toolchain.

Build Code

After completing all configurations, you are ready to initiate the code build. Execute the following command to commence the build process:

make

This will compile the code based on your chosen configurations. The duration of this process depends on your computer's performance, typically taking a few minutes. Kindly exercise patience and allow the system to complete the build.

After make command completes, it will display information similar to the following screenshot:

Save Your Secure Keys

After compilation completes, secure keys will be built. The make command creates new secure keys automatically when there are no secure keys in the default directories. Refer to the contents of the directory 'build/tools/secure_sp7350/secure' under the project top directory:

The device key is stored in the ‘otp_Device_keys/’ directory, and the secure-boot key is stored in the ‘otp_Sb_keys/’ directory. Remember to securely save the entire ‘otp_Device_keys’ and 'otp_Sb_keys' directories.

WARNING: If the keys are lost, you will never be able to create the same secure keys again. Your SP7350 chips with the old keys will become unusable.

Burn Secure Keys into OTP memory of SP7350 Chips

First, refer to https://sunplus.atlassian.net/wiki/x/Z4GAdg for burning bits in OTP.

To activate secure-boot of SP7350 chips, it is necessary to write secure keys into the OTP (One-Time Programmable) memory of the SP7350 chips. There are two keys defined in the OTP

  • Secure boot key: The secure-boot key is for digital signatures.

  • Device key: The device key is for decryption.

Each key is 32 bytes long.

Burn Secure-boot Public Key (for digital signature) into OTP Bit 512 ~ 765

The secure-boot key is stored in the file 'build/tools/secure_sp7350/secure/otp_Sb_keys/ed_pub_0.hex', For example, the contents of ed_pub_0.hex is:

7BBBCF06A44BA7655540A7F8AD5176F4BCA83F00E63442A7BA0C4F5D8BBCF650

Convert the key to little-endian 4-byte words:

OTP[543:512] = 06CFBB7B

OTP[575:544] = 65A74BA4

OTP[607:576] = F8A74055

OTP[639:608] = F47651AD

OTP[671:640] = 003FA8BC

OTP[703:672] = A74234E6

OTP[735:704] = 5D4F0CBA

OTP[767:736] = 50F6BC8B

Input it to OTP words one by one. Afterward, check and then press "Write."

The status window of the OTPTool indicates "WRITE Start..…” and then “WRITE Success!" as shown above.

Press 'Read' to read back content of OTP.

The status window of the OTPTool indicates "READ Start..…” and then “READ Success!" as shown above.

Burn Device Private Key (for decryption) into OTP Bit 768 ~ 1023

The device private key is stored in hex file ‘build/tools/secure_sp7350/secure/otp_Device_keys/x_priv_0.hex’. For example, the contents of x_priv_0.hex is:

583D9479760D5229611A4601CB1EE80E2C0C7BE1E8F4C637A9EA72D5A5A3B25C

Convert the key to little-endian 4-byte word:

OTP[799:768] = 79943D58

OTP[831:800] = 29520D76

OTP[863:832] = 01461A61

OTP[895:864] = 0EE81ECB

OTP[927:896] = E17B0C2C

OTP[959:928] = 37C6F4E8

OTP[991:960] = D572EAA9

OTP[1023:992] = 5CB2A3A5

Input it to OTP words one by one. Afterward, check and press "Write."

The status window of the OTPTool indicates "WRITE Start..…” and then “WRITE Success!" as shown above.

Press 'Read' to confirm the content of OTP.

The status window of the OTPTool indicates "READ Start..…” and then “READ Success!" as shown above.

Enable Secure Mode of SP7350 (Write 1 into OTP bit 0)

Modify bit 0 to 1 and then press "Write."

The status window of the OTPTool indicates "READ Start..…” and then “READ Success!" as shown above.

Enable MP Bit of SP7350 (Write 1 into OTP bit 2)

To safeguard keys from being accessed by end-users, enabling the MP bit prevents the CPU from reading keys.

Note that the MP bit can only be enabled on version B or later chips; otherwise, it will render the chips unusable.

Modify bit 2 to 1 and then press "Write."

Important Notes:

  • Do not enable the MP bit for version A chips.

  • Burning OTP bits is irreversible, and incorrect burns may render the chips unusable.

  • Remember to save the keys in directories: otp_Sb_keys, and otp_Device_keys

Secure Boot

After burning the keys and enabling secure mode, the SP7350 is ready to boot in secure mode. Copy your secure image to an SD card, insert it into your SP7350 platform, and turn on the power to boot the platform.

Note that once the SP7350 is in secure mode, it will not boot a non-secure image or an image with an incorrect digital signature.

Log of Secure Boot from SD Card

Line 1: Displays the i-boot version.

Line 4: Indicates that the SP7350 is in secure mode.

Line 5: Shows that the SP7350 is booting from an SD card.

Line 39: Shows size of the x-boot image.

Line 46: Checksum of the x-boot image is successfully verified.

Line 55: Confirms that the digital signature of the x-boot image is successfully verified.

Line 63: Indicates successful decryption of the x-boot image.

Line 67: Displays the x-boot version.

Line 146: Indicates successful completion of DDR training.

Line 158: Confirms successful verification of the U-Boot image's hash value.

Line 159: Confirms successful verification of the fip image's hash value, which includes TF-A and OP-TEE images.

Line 166: Displays the TF-A (BL31) version.

Line 175: Displays the OP-TEE version.

Line 183: Displays the U-Boot version.

Line 231: Confirms successful verification of the Linux kernel image's hash value.

Line 239: Indicates that Linux is starting.

Line 242: Displays the Linux version.

Line 569: Linux kernel completes its initialization and begins executing the /sbin/init process..

Line 574: Displays the Ubuntu version.

+++iBoot v1.1 Dec 8 2023 13:59:54 [d] iboot.c:134 [d] iboot.c:157 * Secure IC * mode=0x00000019 [sdcard] dev=3 pin=1 .[d] bootmain.c:145 ...[d] iboot.c:459 find file [d] fat_boot.c:292 [d] fat_boot.c:318 [d] drv_sd_mmc.c:21 InitChipCtrl busclk=200000 div=1789 [d] drv_sd_mmc.c:23 IdentifyStorage [d] hal_sd_mmc.c:1518 0x000000AA 0x00000001 High Cap [d] hal_sd_mmc.c:478 [d] hal_sd_mmc.c:489 SPEC=2 BUS_WIDTHS=5 busclk=5000000 div=71 [d] hal_sd_mmc.c:1709 [d] drv_sd_mmc.c:33 [d] fat_boot.c:370 [d] fat_boot.c:382 part@0x00000800 [d] fat_boot.c:419 FAT32 file system [d] fat_boot.c:495 [d] fat_boot.c:526 [d] fat_boot.c:530 [d] fat_boot.c:533 [d] fat_boot.c:548 xboot size=49784 load size=49784 mg=0x54554258 len=0x0000C258 chk=0x0000477B flg=0x00000001 [d] bootmain.c:568 img chksum correct read SB info dcache on pgt=0xFFFE8000 Verify signature load OTP Sb_Kpub OK tV=5 Verified signature load OTP Dev_Kpriv Decrypting KAES tECIES=6 Decrypt KAES: ok Decrypting xboot, len=0x0000C190 tAES=130 unaligned hsmk addr=0xE3CDD007 Decrypted valid xboot dcache off boot! ..55402 +++xBoot Jul 22 2024 15:45:51 Remap DRAM for 4GB ..ID of RT5759 = 0x82 .Set PLLC to 1.5GHz Set PLLL3 to 1.2GHz PLLD: 800MHz, DATARATE:3200 0x00001008 0x0000C0BE 0x00000107 [d] xboot.c :424 ..mode=0x00000019 {{sdcard}} finding file [d] fat/fat_boot.c :369 [d] fat/fat_boot.c :394 [d] sdmmc/drv_sd_mmc.c :21 InitChipCtrl busclk=200000 div=1789 [d] sdmmc/drv_sd_mmc.c :23 IdentifyStorage [d] sdmmc/hal_sd_mmc.c :1492 0x000000AA 0x00000001 High Cap [d] sdmmc/hal_sd_mmc.c :466 [d] sdmmc/hal_sd_mmc.c :477 SPEC=2 BUS_WIDTHS=5 4bit mode busclk=35000000 div=10 [d] sdmmc/hal_sd_mmc.c :1688 [d] sdmmc/drv_sd_mmc.c :33 [d] fat/fat_boot.c :437 [d] fat/fat_boot.c :449 part@0x00000800 [d] fat/fat_boot.c :486 FAT32 file system [d] fat/fat_boot.c :562 [d] fat/fat_boot.c :594 [d] fat/fat_boot.c :598 [d] fat/fat_boot.c :601 [d] fat/fat_boot.c :621 Run draiminit@0xFA20878D bootdevice=0x00000019 Built at Jul 22 2024 15:45:50 dram_init dwc_umctl2_lpddr4_1600_SP7350_for_realchip MT53E1G32D2_B, 2rank, FBGA=D8CJG SDRAM_SPEED_1600 dwc_ddrphy_phyinit_main 20240701 dwc_ddrphy_phyinit_out_lpddr4_train1d2d_3200_SP7350 bootdevice:0x00000019 XBOOT_len=0x0000C258 1D IMEM checksum ok 1D DMEM checksum ok Start to wait for the training firmware to complete v.00 !!! End of CA training. End of initialization. End of read enable training. End of fine write leveling. End of read dq deskew training. End of MPR read delay center optimization. End of Wrtie leveling coarse delay. End of write delay center optimization. End of read delay center optimization. End of max read latency training. Training has run successfully.(firmware complete) bootdevice:0x00000019 2D IMEM checksum ok 2D DMEM checksum ok Start to wait for the training firmware to complete v.00 !!! End of initialization. End of 2D write delay/voltage center optimization. End of 2D write delay/voltage center optimization. End of 2D read delay/voltage center optimization. End of 2D read delay/voltage center optimization. Training has run successfully.(firmware complete) save retention value: 0xFA29F000Register programming done!!! Register programming done!!! dram_init_end Done draiminit dram test 0x00800000 - 0x00800400 Set WL_REG_ON (GPIO56) to HI. fat load fip load data size=408976 fat load uboot load data size=779392 start verify in xboot! uboot_pentagram_board (778880) verify signature ... 4 ms: 0 fip_image (408464) verify signature ... 3 ms: 0 uboot @0x00500040 fip @0x01000000 M4 init 32->64 a64up@0xFA218400 core0 S-EL3 @0x00200000 NOTICE: BL31: v2.4(release):df88785 NOTICE: BL31: Built : 15:37:47, Jul 19 2024 NOTICE: BL31: Detected SP7350 SoC (0a31) INFO: ARM GICv2 driver initialized INFO: BL31: Platform setup done INFO: BL31: Initializing runtime services NOTICE: PSCI: plat_setup_psci_ops INFO: BL31: Initializing BL32 I/TC: I/TC: OP-TEE version: 150e2ba (gcc version 9.2.1 20191025 (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10))) #2 Mon Jan 1 15:51:17 UTC 2024 aarch64 I/TC: Primary CPU initializing I/TC: Primary CPU switching to normal world boot INFO: BL31: Preparing for EL3 exit to normal world INFO: Entry point address = 0x500040 INFO: SPSR = 0x3c9 U-Boot 2021.04-gd1f46a58 (Jul 22 2024 - 14:52:07 +0800) CONFIG_SYS_CACHELINE_SIZE: 64 Model: Sunplus SP7350 EVB DRAM: 3.8 GiB PLLA : 147456000 Hz PLLC : 1500000000 Hz PLLL3 : 1200000000 Hz PLLD : 800000000 Hz PLLH : 2150000000 Hz PLLN : 500000000 Hz PLLS : 2000000000 Hz reset: reset@f8800004 SPI: Manufacturer id = 0x00, Device id = 0x0000 MMC: sd: 0 Disp: probe ... Disp: init 1920x1080 settings Disp: lt8912b bridge not found Disp: probe done In: serial Out: serial Err: serial Net: eth0: stmmac@f8103000 starting USB... Bus usb@f8102100: ehci_sunplus_probe.140, dev_name:usb@f8102100,port_num:0 after write usbruncmd,usbcmd:80b01,retry_times:0 USB EHCI 1.10 Bus usb@f8102080: ohci_sunplus_probe.51, dev_name:usb@f8102080,port_num:1 USB OHCI 1.0 Bus dwc3@f80a1000: Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.10 scanning bus usb@f8102100 for devices... 1 USB Device(s) found scanning bus usb@f8102080 for devices... 1 USB Device(s) found scanning bus dwc3@f80a1000 for devices... 1 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found Hit any key to stop autoboot: 0 [scr] bootcmd started fa218008: 000000fe .... [scr] Boot from SD Card sd: 0 run sdcard_boot 1101 bytes read in 13 ms (82 KiB/s) Loaded environment from uEnv.txt Running uenvcmd ... fatload mmc 0 0xFFFFFC0 /uImage 9582928 bytes read in 816 ms (11.2 MiB/s) verify 0xFFFFFC0 1 linux-20240722-145447 verify signature ... 10 ms: 0 unzip 10000000 2000000 Uncompressed size: 26691592 = 0x1974808 booti 2000000 - ef8eabf0 ## Flattened Device Tree blob at ef8eabf0 Booting using the fdt blob at 0xef8eabf0 Loading Device Tree to 00000000ef8d7000, end 00000000ef8e819b ... OK Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x412fd050] [ 0.000000] Linux version 5.10.201-SUNPLUS-v8-ge2169d284498 (wellslu@scdiu3) (aarch64-none-linux-gnu-gcc (Arm GNU Toolchain 12.3.Rel1 (Build arm-12.35)) 12.3.1 20230626, GNU ld (Arm GNU Toolchain 12.3.Rel1 (Build arm-12.35)) 2.40.0.20230627) #1 SMP Mon Jul 22 14:52:29 CST 2024 [ 0.000000] Machine model: Sunplus SP7350 EVB [ 0.000000] earlycon: sunplus_uart0 at MMIO 0x00000000f8801900 (options '115200n8') [ 0.000000] printk: bootconsole [sunplus_uart0] enabled [ 0.000000] Reserved memory: created DMA memory pool at 0x0000000000100000, size 1 MiB [ 0.000000] OF: reserved mem: initialized node rproc0@100000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created CMA memory pool at 0x000000004f400000, size 200 MiB [ 0.000000] OF: reserved mem: initialized node mipicsirx@4f400000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x000000005be00000, size 1 MiB [ 0.000000] OF: reserved mem: initialized node vdev0buffer@5be00000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x000000005bf00000, size 0 MiB [ 0.000000] OF: reserved mem: initialized node vdev0vring0@5bf00000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x000000005bf10000, size 0 MiB [ 0.000000] OF: reserved mem: initialized node vdev0vring1@5bf10000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x000000005bf20000, size 0 MiB [ 0.000000] OF: reserved mem: initialized node vdev0_reserve@5bf20000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created CMA memory pool at 0x000000005c000000, size 64 MiB [ 0.000000] OF: reserved mem: initialized node disp_reserve@5c000000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created CMA memory pool at 0x0000000080000000, size 384 MiB [ 0.000000] OF: reserved mem: initialized node vcodec@80000000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000fa240000, size 0 MiB [ 0.000000] OF: reserved mem: initialized node cm4runaddr@fa240000, compatible id shared-dma-pool [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x0000000000000000-0x00000000efffffff] [ 0.000000] DMA32 empty [ 0.000000] Normal empty [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000000000000-0x00000000004fffff] [ 0.000000] node 0: [mem 0x0000000000500000-0x000000005bdfffff] [ 0.000000] node 0: [mem 0x000000005be00000-0x000000005bffffff] [ 0.000000] node 0: [mem 0x000000005c000000-0x000000005fffffff] [ 0.000000] node 0: [mem 0x0000000060000000-0x000000007fffffff] [ 0.000000] node 0: [mem 0x0000000080000000-0x00000000efffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x00000000efffffff] [ 0.000000] cma: Reserved 16 MiB at 0x00000000ea000000 [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: PSCIv1.1 detected in firmware. [ 0.000000] psci: Using standard PSCI v0.2 function IDs [ 0.000000] psci: Trusted OS migration not required [ 0.000000] psci: SMC Calling Convention v1.2 [ 0.000000] percpu: Embedded 31 pages/cpu s86232 r8192 d32552 u126976 [ 0.000000] Detected VIPT I-cache on CPU0 [ 0.000000] CPU features: detected: ARM errata 1165522, 1319367, or 1530923 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 967680 [ 0.000000] Kernel command line: console=ttyS0,115200 earlycon root=/dev/mmcblk1p2 rw user_debug=255 rootwait [ 0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear) [ 0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear) [ 0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off [ 0.000000] Memory: 2614972K/3932160K available (13438K kernel code, 3986K rwdata, 5376K rodata, 3200K init, 542K bss, 637252K reserved, 679936K cma-reserved) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] rcu: Hierarchical RCU implementation. [ 0.000000] rcu: RCU event tracing is enabled. [ 0.000000] Tracing variant of Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 100 jiffies. [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 [ 0.000000] GIC: Using split EOI/Deactivate mode [ 0.000000] sp-clkc init [ 0.000000] PLLA 147456000 [ 0.000000] PLLC 1500000000 [ 0.000000] PLLL3 1200000000 [ 0.000000] PLLD 800000000 [ 0.000000] PLLH 2075000000 [ 0.000000] PLLN 500000000 [ 0.000000] PLLS 2000000000 [ 0.000000] arch_timer: cp15 timer(s) running at 25.00MHz (phys). [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x5c40939b5, max_idle_ns: 440795202646 ns [ 0.000002] sched_clock: 56 bits at 25MHz, resolution 40ns, wraps every 4398046511100ns [ 0.008294] Console: colour dummy device 80x25 [ 0.012690] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=25000) [ 0.022994] pid_max: default: 32768 minimum: 301 [ 0.027709] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear) [ 0.035072] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear) [ 0.043926] rcu: Hierarchical SRCU implementation. [ 0.049227] smp: Bringing up secondary CPUs ... I/TC: Secondary CPU 1 initializing I/TC: Secondary CPU 1 switching to normal world boot I/TC: Secondary CPU 2 initializing I/TC: Secondary CPU 2 switching to normal world boot I/TC: Secondary CPU 3 initializing I/TC: Secondary CPU 3 switching to normal world boot [ 0.061829] Detected VIPT I-cache on CPU1 [ 0.061872] CPU1: Booted secondary processor 0x0000000100 [0x412fd050] [ 0.070049] Detected VIPT I-cache on CPU2 [ 0.070079] CPU2: Booted secondary processor 0x0000000200 [0x412fd050] [ 0.078217] Detected VIPT I-cache on CPU3 [ 0.078241] CPU3: Booted secondary processor 0x0000000300 [0x412fd050] [ 0.078294] smp: Brought up 1 node, 4 CPUs [ 0.114067] SMP: Total of 4 processors activated. [ 0.118789] CPU features: detected: Privileged Access Never [ 0.124384] CPU features: detected: LSE atomic instructions [ 0.129981] CPU features: detected: User Access Override [ 0.135315] CPU features: detected: 32-bit EL0 Support [ 0.140473] CPU features: detected: Common not Private translations [ 0.146769] CPU features: detected: RAS Extension Support [ 0.152190] CPU features: detected: Data cache clean to the PoU not required for I/D coherence [ 0.160847] CPU features: detected: CRC32 instructions [ 0.166006] CPU features: detected: Speculative Store Bypassing Safe (SSBS) [ 0.192593] CPU: All CPU(s) started at EL2 [ 0.196648] alternatives: patching kernel code [ 0.202361] devtmpfs: initialized [ 0.211774] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns [ 0.221501] futex hash table entries: 1024 (order: 4, 65536 bytes, linear) [ 0.240821] pinctrl core: initialized pinctrl subsystem [ 0.246592] NET: Registered protocol family 16 [ 0.251954] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations [ 0.259073] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations [ 0.266948] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations [ 0.274873] audit: initializing netlink subsys (disabled) [ 0.280359] audit: type=2000 audit(0.122:1): state=initialized audit_enabled=0 res=1 [ 0.280637] thermal_sys: Registered thermal governor 'step_wise' [ 0.288200] cpuidle: using governor menu [ 0.298204] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers. [ 0.305000] ASID allocator initialised with 65536 entries [ 0.319354] SP7350 PinCtl by Sunplus Tech.(C) 2023 [ 0.327996] iommu: Default domain type: Translated [ 0.337783] SCSI subsystem initialized [ 0.341560] usbcore: registered new interface driver usbfs [ 0.347010] usbcore: registered new interface driver hub [ 0.352340] usbcore: registered new device driver usb [ 0.358180] mc: Linux media interface: v0.10 [ 0.362405] videodev: Linux video capture interface: v2.00 [ 0.367911] pps_core: LinuxPPS API ver. 1 registered [ 0.372881] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> [ 0.382068] PTP clock support registered [ 0.386308] Advanced Linux Sound Architecture Driver Initialized. [ 0.392601] Bluetooth: Core ver 2.22 [ 0.396123] NET: Registered protocol family 31 [ 0.400567] Bluetooth: HCI device and connection manager initialized [ 0.406953] Bluetooth: HCI socket layer initialized [ 0.411847] Bluetooth: L2CAP socket layer initialized [ 0.416923] Bluetooth: SCO socket layer initialized [ 0.422101] clocksource: Switched to clocksource arch_sys_counter [ 0.737171] NET: Registered protocol family 2 [ 0.741617] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear) [ 0.750379] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear) [ 0.758906] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear) [ 0.766971] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear) [ 0.774571] TCP: Hash tables configured (established 32768 bind 32768) [ 0.781139] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear) [ 0.787839] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear) [ 0.795077] NET: Registered protocol family 1 [ 0.799647] RPC: Registered named UNIX socket transport module. [ 0.805527] RPC: Registered udp transport module. [ 0.810243] RPC: Registered tcp transport module. [ 0.814962] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.822340] hw perfevents: enabled with armv8_cortex_a55 PMU driver, 7 counters available [ 0.831291] Initialise system trusted keyrings [ 0.835765] workingset: timestamp_bits=46 max_order=20 bucket_order=0 [ 0.844176] zbud: loaded [ 0.847617] NFS: Registering the id_resolver key type [ 0.852636] Key type id_resolver registered [ 0.856812] Key type id_legacy registered [ 0.861221] Key type cifs.idmap registered [ 0.865333] fuse: init (API version 7.32) [ 0.898677] Key type asymmetric registered [ 0.902713] Asymmetric key parser 'x509' registered [ 0.907621] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245) [ 0.915041] io scheduler mq-deadline registered [ 0.919588] io scheduler kyber registered [ 0.923908] usb 2.0 phy registered [ 0.927486] fbdev: sp_fbinfo not present [ 0.928804] dw_axi_dmac_platform f80fc000.dma-controller: DesignWare AXI DMA Controller, 16 channels [ 0.942239] ttyS f8801900.serial: sp_uart0's Rx is in PIO mode. [ 0.948113] ttyS f8801900.serial: sp_uart0's Tx is in PIO mode. [ 0.954059] f8801900.serial: ttyS0 at MMIO 0xf8801900 (irq = 18, base_baud = 1562500) is a sp_uart0 [ 0.963239] printk: console [ttyS0] enabled [ 0.963239] printk: console [ttyS0] enabled [ 0.971528] printk: bootconsole [sunplus_uart0] disabled [ 0.971528] printk: bootconsole [sunplus_uart0] disabled [ 0.985861] loop: module loaded [ 0.986925] stmmaceth f8103000.stmmac: no reset control found [ 0.987075] stmmaceth f8103000.stmmac: User ID: 0x10, Synopsys ID: 0x37 [ 0.990145] stmmaceth f8103000.stmmac: DWMAC1000 [ 0.994825] stmmaceth f8103000.stmmac: DMA HW capability register supported [ 1.001768] stmmaceth f8103000.stmmac: RX Checksum Offload Engine supported [ 1.008712] stmmaceth f8103000.stmmac: COE Type 2 [ 1.013399] stmmaceth f8103000.stmmac: TX Checksum insertion supported [ 1.019910] stmmaceth f8103000.stmmac: Wake-Up On Lan supported [ 1.025841] stmmaceth f8103000.stmmac: Normal descriptors [ 1.031194] stmmaceth f8103000.stmmac: Ring mode enabled [ 1.036488] stmmaceth f8103000.stmmac: Enable RX Mitigation via HW Watchdog Timer [ 1.231465] register sunplus_usb_otg0_driver [ 1.237050] sunplus-usb-synopsys-u3phy f80bd000.uphy: sunplus_usb_synopsys_u3phy_probe [ 1.846369] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 1.846432] ehci-platform: EHCI generic platform driver [ 1.846987] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver [ 1.853094] ohci-platform: OHCI generic platform driver [ 1.858528] register ehci0_hcd_sunplus_driver [ 1.862728] ehci0-sunplus f8102100.usb: Generic Platform EHCI Controller [ 1.869318] ehci0-sunplus f8102100.usb: new USB bus registered, assigned bus number 1 [ 1.877177] ehci0-sunplus f8102100.usb: irq 37, io mem 0xf8102100 [ 1.890098] ehci0-sunplus f8102100.usb: USB 2.0 started, EHCI 1.10 [ 1.890603] hub 1-0:1.0: USB hub found [ 1.893122] hub 1-0:1.0: 1 port detected [ 1.897298] register ohci0_hcd_sunplus_driver [ 1.901451] ohci0-sunplus f8102080.usb: Generic Platform OHCI Controller [ 1.908030] ohci0-sunplus f8102080.usb: new USB bus registered, assigned bus number 2 [ 1.915883] ohci0-sunplus f8102080.usb: irq 38, io mem 0xf8102080 [ 1.975464] hub 2-0:1.0: USB hub found [ 1.975523] hub 2-0:1.0: 1 port detected [ 1.975875] usbcore: registered new interface driver cdc_acm [ 1.977572] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters [ 1.985589] usbcore: registered new interface driver usb-storage [ 1.991583] usbcore: registered new interface driver ch341 [ 1.997021] usbserial: USB Serial support registered for ch341-uart [ 2.003279] usbcore: registered new interface driver cp210x [ 2.008825] usbserial: USB Serial support registered for cp210x [ 2.014736] usbcore: registered new interface driver ftdi_sio [ 2.020458] usbserial: USB Serial support registered for FTDI USB Serial Device [ 2.027772] usbcore: registered new interface driver option [ 2.033302] usbserial: USB Serial support registered for GSM modem (1-port) [ 2.040284] usbcore: registered new interface driver pl2303 [ 2.045802] usbserial: USB Serial support registered for pl2303 [ 2.051787] sp_udc_probe start, port_num:0, ffffff8001b74000 [ 2.057738] mousedev: PS/2 mouse device common for all mice [ 2.064453] sp7350-rtc f8801180.rtc: registered as rtc0 [ 2.068409] sp7350-rtc f8801180.rtc: setting system clock to 1970-01-01T00:20:27 UTC (1227) [ 2.076434] [RTC] Info: sp7350-rtc loaded [ 2.080487] i2c /dev entries driver [ 2.084097] sp7350_display_probe: disp probe ... [ 2.088500] sp7350_display_probe: disp probe 4 irq [ 2.093545] connect_dev_name LT8912B-HDMI (1920x1080) [ 2.098319] sp7350_display_probe: disp probe set layer blending [ 2.104658] sp7350_display_probe: disp probe done [ 2.127167] sp7350_disp_lt8912_probe [ 2.127397] hantro_dec f8168000.hantro_vc8000d: dec/pp kernel module. [ 2.127456] hantro_dec f8168000.hantro_vc8000d: major:242 minor:0 [ 2.132225] hantro_dec f8168000.hantro_vc8000d: clock enabled [ 2.137874] hantro_dec f8168000.hantro_vc8000d: reset okay [ 2.143335] hantro_dec f8168000.hantro_vc8000d: Core 0 HW ID=0x6e645000 [ 2.149930] hantro_dec f8168000.hantro_vc8000d: Supported HW found at 0xf8168000 [ 2.157323] hantro_dec f8168000.hantro_vc8000d: core[0] has H264 [ 2.163298] hantro_dec f8168000.hantro_vc8000d: core[0] has JPEG [ 2.169287] hantro_dec f8168000.hantro_vc8000d: core[0] has PP [ 2.175101] hantro_dec f8168000.hantro_vc8000d: reset hardware [ 2.181043] hantro_enc f80ff000.hantro_vc8000e: major:241 minor:0 [ 2.187067] hantro_enc f80ff000.hantro_vc8000e: mem iobaseaddr = f80ff000h [ 2.193942] hantro_enc f80ff000.hantro_vc8000e: mem mapping = ffffffc011ced000h [ 2.201314] hantro_enc f80ff000.hantro_vc8000e: mem iosize = fffh [ 2.207483] hantro_enc f80ff000.hantro_vc8000e: clock enabled [ 2.213209] hantro_enc f80ff000.hantro_vc8000e: reset okay [ 2.218677] hantro_enc f80ff000.hantro_vc8000e: HW at base <0xf80ff000> with ID <0x6e655000> [ 2.227405] memalloc_d video_codec_dmem: major:240 minor:0 [ 2.232688] memalloc_d video_codec_dmem: module init [ 2.237512] memalloc_d video_codec_dmem: SW build 1000 [ 2.242724] memalloc_d video_codec_dmem: linear memory base = 0x74000000 [ 2.249488] memalloc_d video_codec_dmem: linear memory size = 64 MB [ 2.255851] memalloc_d video_codec_dmem: Total size 64 MB; 4096 chunks of size 16384 [ 2.263738] memalloc_e video_codec_emem: allocation method: DYNAMIC [ 2.269807] memalloc_e video_codec_emem: major:239 minor:0 [ 2.275381] memalloc_e video_codec_emem: SW build 1000 [ 2.280487] memalloc_e video_codec_emem: linear memory base = 0x60000000 [ 2.287249] memalloc_e video_codec_emem: linear memory size = 327680 MB [ 2.293935] memalloc_e video_codec_emem: chunk size = 4 KB, chunks = 1 configured [ 2.301543] hantro_codec f880125c.video_codec: Video codec clock enabled [ 2.308091] hantro_codec f880125c.video_codec: Video codec reset okay [ 2.314538] chip version: 0xa31 [ 2.317627] VC power control enable [ 2.321307] usbcore: registered new interface driver uvcvideo [ 2.326832] USB Video Class driver (1.1.1) [ 2.333571] Bluetooth: HCI UART driver ver 2.3 [ 2.335345] Bluetooth: HCI UART protocol H4 registered [ 2.369335] spsdc f8003e80.mmc: Got CD GPIO [ 2.472304] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping .... [ 2.474336] usbcore: registered new interface driver usbhid [ 2.474400] usbhid: USB HID core driver [ 2.482154] remoteproc remoteproc0: f800817c.remoteproc is available [ 2.483970] *****usb_extcon_probe end [ 2.492425] optee: probing for conduit method. [ 2.492479] optee: revision 3.13 (150e2ba5) [ 2.492744] optee: initialized driver [ 2.499432] usbcore: registered new interface driver snd-usb-audio [ 2.502296] mmc1: new ultra high speed SDR104 SDHC card at address 59b4 [ 2.506024] sunplus-audio f8800480.audio: sunplus_audio_probe [ 2.506064] sunplus-audio f8800480.audio: sunplus_i2s_register [ 2.506116] sunplus-audio f8800480.audio: sunplus_tdm_register [ 2.506386] aud-codec aud-codec: aud_codec_probe [ 2.506636] spsoc-pcm-driver spsoc-pcm-driver: snd_spsoc_pcm_probe [ 2.517745] mmc2: error -110 whilst initialising SDIO card [ 2.546262] mmcblk1: mmc1:59b4 USDU1 14.9 GiB [ 2.546917] snd_spsoc_audio_init, create soc_card [ 2.555156] soc-audio soc-audio: ASoC: machine sp-aud should use snd_soc_register_card() [ 2.556763] mmcblk1: p1 p2 [ 2.563641] debugfs: Directory 'f8800480.audio' with parent 'sp-aud' already present! [ 2.574943] NET: Registered protocol family 10 [ 2.578636] Segment Routing with IPv6 [ 2.581815] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver [ 2.587962] NET: Registered protocol family 17 [ 2.592198] Bluetooth: RFCOMM TTY layer initialized [ 2.596987] Bluetooth: RFCOMM socket layer initialized [ 2.602101] Bluetooth: RFCOMM ver 1.11 [ 2.605831] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 2.611124] Bluetooth: BNEP filters: protocol multicast [ 2.616330] Bluetooth: BNEP socket layer initialized [ 2.621279] Bluetooth: HIDP (Human Interface Emulation) ver 1.2 [ 2.627182] Bluetooth: HIDP socket layer initialized [ 2.632166] Key type dns_resolver registered [ 2.636399] Key type ceph registered [ 2.640084] libceph: loaded (mon/osd proto 15/24) [ 2.644790] registered taskstats version 1 [ 2.648711] Loading compiled-in X.509 certificates [ 2.659137] fbdev: fb create 1920x1080, cmod 8(RGB565) [ 2.659190] sp7350-fb fb_disp_device: assigned reserved memory node disp_reserve@5c000000 [ 2.668652] fbcon: Deferring console take-over [ 2.671190] fbdev: fb res 1920x1080, size 8298496 + 1024 [ 3.062582] cfg80211: Loading compiled-in X.509 certificates for regulatory database [ 3.064072] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' [ 3.065707] [dhd] _dhd_module_init: in Dongle Host Driver, version 101.10.361.36 (wlan=r892223-20231114-1) [ 3.065707] drivers/net/wireless/bcmdhd compiled on Jul 22 2024 at 14:54:01 [ 3.065707] [ 3.083706] [dhd] STATIC-MSG) dhd_static_buf_init : 101.10.361.36 (wlan=r892223-20231107-1) [ 3.092066] [dhd] STATIC-MSG) dhd_init_wlan_mem : prealloc ok for index 0: 1102848(1077K) [ 3.100261] [dhd] no wifi platform data, skip [ 3.104534] [dhd] dhd_wifi_platform_load: Enter [ 3.109047] [dhd] DHD wifi platform data is required for Android build [ 3.115556] [dhd] DHD registering bus directly [ 3.119983] [dhd] bcmsdh_register: register client driver [ 3.125397] [dhd] _dhd_module_init: Exit err=0 [ 3.129794] ALSA device list: [ 3.132744] #0: SP7350, Sunplus Technology Inc. [ 3.137543] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2 [ 3.146035] platform regulatory.0: Falling back to sysfs fallback for: regulatory.db [ 3.170158] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null) [ 3.170247] VFS: Mounted root (ext4 filesystem) on device 179:2. [ 3.173534] devtmpfs: mounted [ 3.177064] Freeing unused kernel memory: 3200K [ 3.180595] Run /sbin/init as init process [ 3.402606] systemd[1]: System time before build time, advancing clock. [ 3.452770] systemd[1]: systemd 245.4-4ubuntu3.22 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=hybrid) [ 3.464789] systemd[1]: Detected architecture arm64. Welcome to Ubuntu 20.04.6 LTS! [ 3.486652] systemd[1]: Set hostname to <ubuntu>. [ 3.700882] random: lvmconfig: uninitialized urandom read (4 bytes read) [ 3.912984] systemd[1]: /etc/systemd/system/rc-local.service:11: Support for option SysVStartPriority= has been removed and it is ignored [ 4.004682] random: systemd: uninitialized urandom read (16 bytes read) [ 4.006610] systemd[1]: Created slice system-modprobe.slice. [ OK ] Created slice system-modprobe.slice. [ 4.025186] random: systemd: uninitialized urandom read (16 bytes read) [ 4.025945] systemd[1]: Created slice system-serial\x2dgetty.slice. [ OK ] Created slice system-serial\x2dgetty.slice. [ 4.047011] systemd[1]: Created slice User and Session Slice. [ OK ] Created slice User and Session Slice. [ 4.061421] systemd[1]: Started Forward Password Requests to Wall Directory Watch. [ OK ] Started Forward Password R#uests to Wall Directory Watch. [ 4.077570] systemd[1]: Condition check resulted in Arbitrary Executable File Formats File System Automount Point being skipped. [ 4.078247] systemd[1]: Reached target User and Group Name Lookups. [ OK ] Reached target User and Group Name Lookups. [ 4.104223] systemd[1]: Reached target Remote File Systems. [ OK ] Reached target Remote File Systems. [ 4.118355] systemd[1]: Reached target Slices. [ OK ] Reached target Slices. [ 4.128364] systemd[1]: Reached target Swap. [ OK ] Reached target Swap. [ 4.138838] systemd[1]: Listening on Device-mapper event daemon FIFOs. [ OK ] Listening on Device-mapper event daemon FIFOs. [ 4.154950] systemd[1]: Listening on LVM2 poll daemon socket. [ OK ] Listening on LVM2 poll daemon socket. [ 4.169819] systemd[1]: Listening on Syslog Socket. [ OK ] Listening on Syslog Socket. [ 4.180631] systemd[1]: Listening on initctl Compatibility Named Pipe. [ OK ] Listening on initctl Compatibility Named Pipe. [ 4.197629] systemd[1]: Listening on Journal Audit Socket. [ OK ] Listening on Journal Audit Socket. [ 4.209833] systemd[1]: Listening on Journal Socket (/dev/log). [ OK ] Listening on Journal Socket (/dev/log). [ 4.225026] systemd[1]: Listening on Journal Socket. [ OK ] Listening on Journal Socket. [ 4.239024] systemd[1]: Listening on udev Control Socket. [ OK ] Listening on udev Control Socket. [ 4.253719] systemd[1]: Listening on udev Kernel Socket. [ OK ] Listening on udev Kernel Socket. [ 4.268037] systemd[1]: Condition check resulted in Huge Pages File System being skipped. [ 4.274477] systemd[1]: Mounting POSIX Message Queue File System... Mounting POSIX Message Queue File System... [ 4.297702] systemd[1]: Mounting Kernel Debug File System... Mounting Kernel Debug File System... [ 4.316686] systemd[1]: Mounting Kernel Trace File System... Mounting Kernel Trace File System... [ 4.336896] systemd[1]: Starting Journal Service... Starting Journal Service... [ 4.349853] systemd[1]: Starting Availability of block devices... Starting Availability of block devices... [ 4.366990] systemd[1]: Starting Set the console keyboard layout... Starting Set the console keyboard layout... [ 4.380306] systemd[1]: Condition check resulted in Create list of static device nodes for the current kernel being skipped. [ 4.383391] systemd[1]: Starting Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling... Starting Monitoring of LVM#meventd or progress polling... [ 4.413638] systemd[1]: Starting Load Kernel Module chromeos_pstore... Starting Load Kernel Module chromeos_pstore... [ 4.429536] systemd[1]: Starting Load Kernel Module drm... Starting Load Kernel Module drm... [ 4.442566] systemd[1]: Starting Load Kernel Module efi_pstore... Starting Load Kernel Module efi_pstore... [ 4.459555] systemd[1]: Starting Load Kernel Module pstore_blk... Starting Load Kernel Module pstore_blk... [ 4.474492] systemd[1]: Starting Load Kernel Module pstore_zone... Starting Load Kernel Module pstore_zone... [ 4.489627] systemd[1]: Starting Load Kernel Module ramoops... Starting Load Kernel Module ramoops... [ 4.505054] systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped. [ 4.508341] systemd[1]: Starting Load Kernel Modules... Starting Load Kernel Modules... [ 4.528498] systemd[1]: Starting Remount Root and Kernel File Systems... Starting Remount Root and Kernel File Systems... [ 4.544559] systemd[1]: Starting udev Coldplug all Devices... Starting udev Coldplug all Devices... [ 4.560911] systemd[1]: Starting Uncomplicated firewall... Starting Uncomplicated firewall... [ 4.576028] systemd[1]: Started Journal Service. [ OK ] Started Journal Service. [ OK ] Mounted POSIX Message Queue File System. [ OK ] Mounted Kernel Debug File System. [ OK ] Mounted Kernel Trace File System. [ OK ] Finished Availability of block devices. [ OK ] Finished Set the console keyboard layout. [ OK ] Finished Load Kernel Module chromeos_pstore. [ OK ] Finished Load Kernel Module drm. [ OK ] Finished Load Kernel Module efi_pstore. [ OK ] Finished Load Kernel Module pstore_blk. [ OK ] Finished Load Kernel Module pstore_zone. [ OK ] Finished Load Kernel Module ramoops. [ OK ] Finished Load Kernel Modules. [ OK ] Finished Remount Root and Kernel File Systems. [ 4.756205] random: systemd-journal: uninitialized urandom read (16 bytes read) [ OK ] Finished Uncomplicated firewall. [ 4.774159] random: systemd: uninitialized urandom read (16 bytes read) [ 4.777740] random: systemd-journal: uninitialized urandom read (16 bytes read) Mounting FUSE Control File System... Mounting Kernel Configuration File System... Starting Flush Journal to Persistent Storage... [ 4.825583] systemd-journald[157]: Received client request to flush runtime journal. [ 4.833058] systemd-journald[157]: File /var/log/journal/096dba1b906d4a06a2cd95df2c61f9c3/system.journal corrupted or uncleanly shut down, renaming and replacing. Starting Load/Save Random Seed... Starting Apply Kernel Variables... Starting Create System Users... [ OK ] Finished udev Coldplug all Devices. [ OK ] Mounted FUSE Control File System. [ OK ] Mounted Kernel Configuration File System. Starting Helper to synchronize boot up for ifupdown... [ OK ] Finished Flush Journal to Persistent Storage. [ OK ] Finished Apply Kernel Variables. [ OK ] Finished Helper to synchronize boot up for ifupdown. [ OK ] Finished Create System Users. Starting Create Static Device Nodes in /dev... [ OK ] Finished Create Static Device Nodes in /dev. Starting udev Kernel Device Manager... [ OK ] Started udev Kernel Device Manager. [ OK ] Started Dispatch Password #ts to Console Directory Watch. [ OK ] Reached target Local Encrypted Volumes. [ OK ] Found device /dev/ttyS0. [ 5.754205] [galcore warning]: power saving is disabled. [ 5.758440] Galcore Info: ContiguousBase=0x78000000 ContiguousSize=0x8000000 [ 5.768456] [Galcore]: system reserved pool0 CPU physical=0x78000000 GPU physical=0x78000000 virtual=0x78000000 size=0x8000000 [ 5.768664] Galcore Info: MMU mapped core 0 SRAM[0] hardware virtual address=0x400000 size=0x40000 [ 5.777625] Galcore Info: MMU mapped core 0 SRAM[1] hardware virtual address=0x440000 size=0x40000 [ OK ] Finished Load/Save Random Seed. [ OK ] Listening on Load/Save RF #itch Status /dev/rfkill Watch. Starting Load Kernel Module chromeos_pstore... Starting Load Kernel Module efi_pstore... Starting Load Kernel Module pstore_blk... Starting Load Kernel Module pstore_zone... Starting Load Kernel Module ramoops... [ OK ] Finished Load Kernel Module chromeos_pstore. [ OK ] Finished Load Kernel Module efi_pstore. [ OK ] Finished Load Kernel Module pstore_blk. [ OK ] Finished Load Kernel Module pstore_zone. [ OK ] Finished Load Kernel Module ramoops. [ OK ] Finished Monitoring of LVM# dmeventd or progress polling. [ OK ] Reached target Local File Systems (Pre). [ OK ] Reached target Local File Systems. Starting Set console font and keymap... Starting Raise network interfaces... Starting Tell Plymouth To Write Out Runtime Data... Starting Create Volatile Files and Directories... [ OK ] Finished Set console font and keymap. [ OK ] Finished Tell Plymouth To Write Out Runtime Data. [ OK ] Finished Create Volatile Files and Directories. Starting Network Name Resolution... Starting Network Time Synchronization... Starting Update UTMP about System Boot/Shutdown... [ OK ] Finished Raise network interfaces. [ OK ] Finished Update UTMP about System Boot/Shutdown. [ OK ] Started Network Time Synchronization. [ OK ] Reached target System Initialization. [ OK ] Started CUPS Scheduler. [ OK ] Started Daily Cleanup of Temporary Directories. [ OK ] Reached target Paths. [ OK ] Reached target System Time Set. [ OK ] Reached target System Time Synchronized. [ OK ] Started Trigger anacron every hour. [ OK ] Started Daily apt download activities. [ OK ] Started Daily apt upgrade and clean activities. [ OK ] Started Periodic ext4 Onli#ata Check for All Filesystems. [ OK ] Started Discard unused blocks once a week. [ OK ] Started Refresh fwupd metadata regularly. [ OK ] Started Daily rotation of log files. [ OK ] Started Daily man-db regeneration. [ OK ] Started Message of the Day. [ OK ] Reached target Timers. [ OK ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket. [ OK ] Listening on CUPS Scheduler. [ OK ] Listening on D-Bus System Message Bus Socket. [ OK ] Listening on UUID daemon activation socket. [ OK ] Reached target Sockets. [ OK ] Reached target Basic System. Starting Accounts Service... Starting Save/Restore Sound Card State... [ OK ] Started Run anacron jobs. Starting LSB: automatic crash report generation... Starting Avahi mDNS/DNS-SD Stack... Starting Bluetooth management mechanism... [ OK ] Started Regular background program processing daemon. [ OK ] Started CUPS Scheduler. [ OK ] Started D-Bus System Message Bus. Starting Network Manager... [ OK ] Started Save initial kernel messages after boot. Starting Remove Stale Onli#t4 Metadata Check Snapshots... [ OK ] Started irqbalance daemon. Starting Dispatcher daemon for systemd-networkd... [ OK ] Started Set the CPU Frequency Scaling governor. Starting Authorization Manager... Starting Restore /etc/reso# the ppp link was shut down... Starting LSB: Resize the r#ilesystem to fill partition... Starting System Logging Service... [ OK ] Reached target Login Prompts (Pre). Starting Login Service... Starting Ubuntu live CD installer... Starting Disk Manager... Starting WPA supplicant... [ OK ] Started Network Name Resolution. [ OK ] Finished Remove Stale Onli#ext4 Metadata Check Snapshots. [ OK ] Finished Restore /etc/reso#re the ppp link was shut down. [ OK ] Finished Ubuntu live CD installer. [ OK ] Finished Save/Restore Sound Card State. [ OK ] Started System Logging Service. [ OK ] Reached target Host and Network Name Lookups. [ OK ] Reached target Sound Card. [ OK ] Started LSB: automatic crash report generation. [ OK ] Started Login Service. [ OK ] Started Avahi mDNS/DNS-SD Stack. [ OK ] Started WPA supplicant. [ OK ] Started Make remote CUPS printers available locally. [ OK ] Started Authorization Manager. Starting Modem Manager... [ OK ] Started Network Manager. [ OK ] Reached target Network. Starting Network Manager Wait Online... Starting OpenVPN service... Starting OpenBSD Secure Shell server... Starting Permit User Sessions... [ OK ] Started Unattended Upgrades Shutdown. [ OK ] Finished OpenVPN service. [ OK ] Finished Permit User Sessions. Starting Light Display Manager... Starting Hostname Service... [ OK ] Started Disk Manager. [ OK ] Started OpenBSD Secure Shell server. [ OK ] Started Hostname Service. [ OK ] Started Accounts Service. [ OK ] Started Light Display Manager. [ OK ] Started Modem Manager. Starting Network Manager Script Dispatcher Service... [ OK ] Started Network Manager Script Dispatcher Service. [ OK ] Started Dispatcher daemon for systemd-networkd. [ OK ] Started LSB: Resize the ro# filesystem to fill partition. [ OK ] Started Bluetooth management mechanism. [ OK ] Created slice User Slice of UID 114. Starting User Runtime Directory /run/user/114... [ OK ] Finished User Runtime Directory /run/user/114. Starting User Manager for UID 114... [ OK ] Started User Manager for UID 114. [ OK ] Started Session c1 of user lightdm. Starting RealtimeKit Scheduling Policy Service... [ OK ] Started RealtimeKit Scheduling Policy Service. Starting Bluetooth service... [ OK ] Started Bluetooth service. Starting Daemon for power management... [ OK ] Started Daemon for power management. [ OK ] Finished Network Manager Wait Online. [ OK ] Reached target Network is Online. Starting LSB: disk temperature monitoring daemon... Starting Tool to automatic#mit kernel crash signatures... Starting /etc/rc.local Compatibility... [ 14.344957] rc.local[579]: Boot CM4 firmware by remoteproc [ OK ] Started crash report submission daemon. [ 14.360204] rc.local[579]: Change NPU device galcore file attritute [ OK ] Started /etc/rc.local Compatibility. Starting Hold until boot process finishes up... [ OK ] Finished Hold until boot process finishes up. [ OK ] Started LSB: disk temperature monitoring daemon. [ OK ] Started Serial Getty on ttyS0. [ OK ] Reached target Login Prompts. Starting Set console scheme... [ OK ] Finished Set console scheme. [ OK ] Created slice system-getty.slice. [ OK ] Started Tool to automatica#ubmit kernel crash signatures. [ OK ] Reached target Multi-User System. [ OK ] Reached target Graphical Interface. Starting Update UTMP about System Runlevel Changes... [ OK ] Finished Update UTMP about System Runlevel Changes. Ubuntu 20.04.6 LTS ubuntu ttyS0 ubuntu login: sunplus Password: Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.10.201 aarch64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage This system has been minimized by removing packages and content that are not required on a system that users do not log into. To restore this content, you can run the 'unminimize' command. The list of available updates is more than a week old. To check for new updates run: sudo apt update The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details. sunplus@ubuntu:~$