Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 17 Next »

In this article, we will guide you through the process of downloading and compiling the SP7350 code. The source code for SP7350 is automatically updated on both GitHub and Gitee every day, ensuring users have access to the latest developments.

It's recommended to have the latest version of Ubuntu installed on your computer. This choice is optimal for compatibility and ensures a seamless compilation process. Additionally, to enhance performance and reduce compilation time, your PC should be equipped with a minimum of 4 GB DRAM.

Contents

Install necessary software packages

Before downloading or compiling the SP7350 code, ensure the following software packages, libraries, and Python3 packages are installed:

Packages:

  • git

  • make

  • u-boot-tools

  • openssl

  • bison

  • flex

  • mtd-utils

  • python3-pip

  • pv

Libraries:

  • libssl-dev

  • libmpc-dev

  • libgmp-dev

Python3 packages:

  • pycryptodomex

  • pyelftools

  • crypto

If not yet installed, use the following commands:

sudo apt install git make u-boot-tools openssl bison flex mtd-utils python3-pip pv
sudo apt install libssl-dev libmpc-dev libgmp-dev
pip install pycryptodomex pyelftools crypto

Download code from GitHub or Gitee.

Clone the repository from GitHub:

git clone https://github.com/sunplus-plus1/Q654.git

Or, clone it from Gitee:

git clone https://gitee.com/sunplus-plus1/q654.git

Update the code:

# Navigate to the Q654 directory
cd Q654

# Update the code and its submodules
git submodule update --init --recursive
git submodule foreach git checkout master

Update to the latest code after the initial download:

cd Q654
git pull
git submodule foreach git pull

These commands ensure you have the latest changes from the main repository and update all submodules within the SP7350 codebase. This guarantees that your development environment is always synced with the most recent version of the code.

After completing the update, your Q654 top folder structure should resemble the following:

wellslu@scdiu3:~/Q654$ ll
total 52
drwxr-xr-x 11 wellslu sp 4096 Dec 15 12:27 ./
drwxr-xr-x  7 wellslu sp 4096 Nov 15 18:33 ../
drwxr-xr-x  6 wellslu sp 4096 Nov 15 15:38 boot/
drwxr-xr-x  3 wellslu sp 4096 Dec 29 13:20 build/
drwxr-xr-x  9 wellslu sp 4096 Nov 15 16:19 crossgcc/
drwxr-xr-x  3 wellslu sp 4096 Nov 15 15:38 firmware/
drwxr-xr-x  9 wellslu sp 4096 Dec 29 13:20 .git/
-rw-r--r--  1 wellslu sp 1117 Nov 15 15:38 .gitmodules
drwxr-xr-x  7 wellslu sp 4096 Nov 15 15:40 ipack/
drwxr-xr-x  4 wellslu sp 4096 Nov 15 15:38 linux/
-rw-r--r--  1 wellslu sp   23 Nov 15 15:38 Makefile
drwxr-xr-x  5 wellslu sp 4096 Dec 29 13:20 optee/
-rw-r--r--  1 wellslu sp 1003 Nov 15 15:38 README.md 
wellslu@scdiu3:~/Q654$

This structure confirms that you have successfully updated the Q654 codebase, and your development environment is now aligned with the latest changes.

Configure building environment

Navigate to the top folder of your Q654 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-20240305-040354.png

In the configuration menu:

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

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

  3. Choose root file-system of Linux. For example, press 1 to opt for “BusyBox 1.31.1” as root file-system.

  4. Choose image security. Press 1 to select building “No secure” images.

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

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.

Configure X-Boot feature (optional)

If you want to activate additional features or deactivate specific ones within the X-Boot, run the following command to initiate the configuration menu of X-Boot.

make xconfig

Upon executing this command, a configuration menu will appear.

Once you have made the necessary adjustments in the menu, please ensure to save the changes before exiting the menu.

Configure U-Boot feature (optional)

To customize U-Boot settings, run the following command to initiate the configuration menu of U-Boot.

make uconfig

Upon executing this command, a configuration menu will be displayed.

After making the necessary adjustments in the menu, please be sure to save the changes before exiting.

Configure Linux kernel feature (optional)

For those who want to configure specific features in the Linux kernel, run the following command to initiate the configuration menu of Linux kernel.

make kconfig

Upon executing this command, a configuration menu will appear.

After making the necessary adjustments in the menu, please ensure to save the changes before exiting.

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:

The screenshot provides details about two partitions created in the SD card image. The first partition spans from sector 2,048 to sector 526,335, with a size of 256 MB and a W95 FAT file system. The second partition extends from sector 526,336 to sector 1,627,959, with a size of 537.9 MB and a Linux (ext4) file system.

Resulting images for SD card

Upon completion of the build process, the resulting image files are stored in the out/boot2linux_SDcard/ directory. Refer to the list below:

wellslu@scdiu3:~/Q654$ ll out/boot2linux_SDcard/
total 823876
drwxr-xr-x 2 wellslu sp      4096 Jan  1 13:53 ./
drwxr-xr-x 3 wellslu sp      4096 Jan  1 13:53 ../
-rw-r--r-- 1 wellslu sp    408526 Jan  1 13:53 fip.img
-rw-r--r-- 1 wellslu sp    135516 Jan  1 13:53 ISPBOOOT.BIN
-rw-r--r-- 1 wellslu sp 833515520 Jan  1 13:53 ISP_SD_BOOOT.img
-rw-r--r-- 1 wellslu sp    764728 Jan  1 13:53 u-boot.img
-rw-r--r-- 1 wellslu sp      1101 Jan  1 13:53 uEnv.txt
-rw-r--r-- 1 wellslu sp   9846041 Jan  1 13:53 uImage
wellslu@scdiu3:~/Q654$
  • ISPBOOOT.BIN: Binary file storing X-Boot, the first-stage boot-loader responsible for DDR SDRAM initialization and training, loading images of TF-A, OP-TEE, U-Boot, and initiating the execution of TF-A.

  • fip.img: Image file comprising images of Trusted Firmware-A (TF-A) and Open Portable Trusted Execution Environment (OP-TEE).

  • u-boot.img: Image file of the U-Boot boot-loader, the second-stage boot-loader responsible for loading and running the Linux kernel image.

  • uEnv.txt: Environment file for U-Boot. U-Boot imports environment variables from this file after initialization. If the uenvcmd command is defined in uEnv.txt, U-Boot executes the specified command after importing uEnv.txt.

  • uImage: Image file of the compressed Linux kernel with the U-Boot header.

  • ISP_SD_BOOOT.img: Image file for burning an SD card, containing all files in both partitions.

Create SD card

To create your SD card for booting SP7350 platforms, you can copy ISP_SD_BOOOT.img to SD card directly using the dd command. For instance:

dd if=out/boot2linux_SDcard/ISP_SD_BOOOT.img of=/dev/sda bs=1M; sync

where the SD card is accessed via a USB SD card reader and mounted on /dev/sda

Depend on system you are using, you may need to unmount the SD card:

umount /dev/sda

Booting your SP7350 platform

  1. After creating your SD card, insert it into the SD card socket on your SP7350 platform.

  2. Set the boot-switch to "Boot from SD card".

  3. Connect the cable of your UART console.

  4. Power on your SP7350 platform.

  5. The platform will initiate booting from the SD card.

  6. Once booted, you can enter your commands in the console.

For boot-switch selection guidance, please consult:

https://sunplus.atlassian.net/wiki/spaces/C3/pages/1994621039/A+guide+to+in-system+programming+flash+devices+on+the+SP7350+platforms#Appendix

For example, if you are using SP7350 Evaluation Board, please set boot-selection switch SW2 to all OFF (1111) and SW3 to OFF-OFF-ON-ON (1100) for booting from SD card.

image-20231129-095608.png

In-system programming a flash device and booting from it.

If you intend to in-system program a flash device (e.g., eMMC) on the SP7350 platform and boot from it, please refer to:

A guide to in-system programming flash devices on the SP7350 platforms

Log of booting from SD card

Refer to the log generated during the system booting from the SD card. After the boot process is complete, the 'df -hT' command is issued to display disk space usage on your SP7350 platform.

+++iBoot v1.0 Oct 18 2022 13:51:18
[d] iboot.c:134
[d] iboot.c:157
mode=0x00000019

[sdcard]
dev=3 pin=1
.[d] bootmain.c:136
...[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=44592
load size=44592
mg=0x54554258
len=0x0000AE10
chk=0x0000663D
flg=0x00000000
[d] bootmain.c:559
img chksum correct

boot!
..28068
+++xBoot Feb 26 2024 19:08:48
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 :397
..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@0xFA2082D9
bootdevice=0x00000019
Built at Feb 26 2024 19:08:47
dram_init
dwc_umctl2_lpddr4_1600_SP7350_for_realchip
MT53E1G32D2_B, 2rank, FBGA=D8CJG
SDRAM_SPEED_1600
dwc_ddrphy_phyinit_main 20231212
dwc_ddrphy_phyinit_out_lpddr4_train1d2d_3200_SP7350
bootdevice:0x00000019
XBOOT_len=0x0000AE10
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)
Register 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=408462
fat load uboot
load data size=768507
uboot @0x00500040
fip @0x01000000
M4 init
32->64
a64up@0xFA218400
core0 S-EL3 @0x00200000
NOTICE:  BL31: v2.4(release):q645_zebu_1.0-17-ga19c76b
NOTICE:  BL31: Built : 17:33:52, Oct 27 2023
NOTICE:  BL31: Detected SP7350 SoC (0a30)
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))) #3 Wed Dec 27 04:06:04 UTC 2023 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-g7295c6a (Feb 26 2024 - 19:08:52 +0800)

CONFIG_SYS_CACHELINE_SIZE: 64
Model: Sunplus SP7350
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: init lt8912b bridge ic
Disp: probe done
In:    serial
Out:   serial
Err:   serial
Net:   Invalid mac address from OTP[22:27] = 00:00:00:00:00:00!

Warning: stmmac@f8103000 (eth0) using random MAC address - ee:8c:04:78:31:93
eth0: stmmac@f8103000
starting USB...
Bus usb@f8102100: ehci_sunplus_probe.204, 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.21, 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... 4 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 2 ms (537.1 KiB/s)
Loaded environment from uEnv.txt
Running uenvcmd ...
fatload mmc 0 0xFFFFFC0 /uImage
9865682 bytes read in 829 ms (11.3 MiB/s)
verify 0xFFFFFC0 0
unzip 10000000 2000000
Uncompressed size: 27283464 = 0x1A05008
booti 2000000 - ef904530
## Flattened Device Tree blob at ef904530
   Booting using the fdt blob at 0xef904530
ehci_usb_remove.214, dev_name:usb@f8102100,port_num:0
ohci_sunplus_remove.28, dev_name:usb@f8102080,port_num:1
   Loading Device Tree to 00000000ef8f1000, end 00000000ef90184a ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x412fd050]
[    0.000000] Linux version 5.10.201 (wellslu@scdiu3) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025, GNU ld (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 2.33.1.20191209) #1 SMP Mon Feb 26 19:09:09 CST 2024
[    0.000000] Machine model: Sunplus SP7350
[    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 DMA memory pool at 0x000000005c000000, size 64 MiB
[    0.000000] OF: reserved mem: initialized node fb@5c000000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA 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-0x00000000000fffff]
[    0.000000]   node   0: [mem 0x0000000000100000-0x00000000004fffff]
[    0.000000]   node   0: [mem 0x0000000000500000-0x000000005bdfffff]
[    0.000000]   node   0: [mem 0x000000005be00000-0x0000000097ffffff]
[    0.000000]   node   0: [mem 0x0000000098000000-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 s86488 r8192 d32296 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:off, heap alloc:off, heap free:off
[    0.000000] Memory: 2616324K/3932160K available (13694K kernel code, 3988K rwdata, 5656K rodata, 3264K init, 544K bss, 1094652K reserved, 221184K 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.000003] sched_clock: 56 bits at 25MHz, resolution 40ns, wraps every 4398046511100ns
[    0.008293] Console: colour dummy device 80x25
[    0.012690] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=25000)
[    0.022992] pid_max: default: 32768 minimum: 301
[    0.027712] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.035076] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.043930] rcu: Hierarchical SRCU implementation.
[    0.049214] 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.061817] Detected VIPT I-cache on CPU1
[    0.061858] CPU1: Booted secondary processor 0x0000000100 [0x412fd050]
[    0.070021] Detected VIPT I-cache on CPU2
[    0.070046] CPU2: Booted secondary processor 0x0000000200 [0x412fd050]
[    0.078185] Detected VIPT I-cache on CPU3
[    0.078208] CPU3: Booted secondary processor 0x0000000300 [0x412fd050]
[    0.078260] smp: Brought up 1 node, 4 CPUs
[    0.114032] SMP: Total of 4 processors activated.
[    0.118754] CPU features: detected: Privileged Access Never
[    0.124350] CPU features: detected: LSE atomic instructions
[    0.129946] CPU features: detected: User Access Override
[    0.135280] CPU features: detected: 32-bit EL0 Support
[    0.140439] CPU features: detected: Common not Private translations
[    0.146735] CPU features: detected: RAS Extension Support
[    0.152156] CPU features: detected: Data cache clean to the PoU not required for I/D coherence
[    0.160813] CPU features: detected: CRC32 instructions
[    0.165971] CPU features: detected: Speculative Store Bypassing Safe (SSBS)
[    0.194061] CPU: All CPU(s) started at EL2
[    0.198120] alternatives: patching kernel code
[    0.203942] devtmpfs: initialized
[    0.213208] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
[    0.222938] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.233592] pinctrl core: initialized pinctrl subsystem
[    0.239357] NET: Registered protocol family 16
[    0.244730] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
[    0.251842] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.259713] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.267640] audit: initializing netlink subsys (disabled)
[    0.273114] audit: type=2000 audit(0.114:1): state=initialized audit_enabled=0 res=1
[    0.273422] thermal_sys: Registered thermal governor 'step_wise'
[    0.280972] cpuidle: using governor menu
[    0.291006] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.297804] ASID allocator initialised with 65536 entries
[    0.311602] SP7350 PinCtl by Sunplus Tech.(C) 2023
[    0.319899] iommu: Default domain type: Translated
[    0.329684] SCSI subsystem initialized
[    0.333463] usbcore: registered new interface driver usbfs
[    0.338914] usbcore: registered new interface driver hub
[    0.344244] usbcore: registered new device driver usb
[    0.350073] mc: Linux media interface: v0.10
[    0.354298] videodev: Linux video capture interface: v2.00
[    0.359801] pps_core: LinuxPPS API ver. 1 registered
[    0.364772] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.373959] PTP clock support registered
[    0.378122] sunplus,ocotp f8802380.otp: by Sunplus (C) 2020
[    0.383727] Advanced Linux Sound Architecture Driver Initialized.
[    0.390016] Bluetooth: Core ver 2.22
[    0.393541] NET: Registered protocol family 31
[    0.397983] Bluetooth: HCI device and connection manager initialized
[    0.404370] Bluetooth: HCI socket layer initialized
[    0.409264] Bluetooth: L2CAP socket layer initialized
[    0.414340] Bluetooth: SCO socket layer initialized
[    0.419469] clocksource: Switched to clocksource arch_sys_counter
[    0.757907] NET: Registered protocol family 2
[    0.762351] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.771007] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    0.779531] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.787601] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear)
[    0.795190] TCP: Hash tables configured (established 32768 bind 32768)
[    0.801742] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.808452] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.815676] NET: Registered protocol family 1
[    0.820276] RPC: Registered named UNIX socket transport module.
[    0.826159] RPC: Registered udp transport module.
[    0.830871] RPC: Registered tcp transport module.
[    0.835590] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.842983] hw perfevents: enabled with armv8_cortex_a55 PMU driver, 7 counters available
[    0.851932] Initialise system trusted keyrings
[    0.856405] workingset: timestamp_bits=46 max_order=20 bucket_order=0
[    0.864833] zbud: loaded
[    0.868251] NFS: Registering the id_resolver key type
[    0.873268] Key type id_resolver registered
[    0.877443] Key type id_legacy registered
[    0.881828] Key type cifs.idmap registered
[    0.885945] fuse: init (API version 7.32)
[    0.918049] Key type asymmetric registered
[    0.922086] Asymmetric key parser 'x509' registered
[    0.926996] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
[    0.934414] io scheduler mq-deadline registered
[    0.938961] io scheduler kyber registered
[    0.943340] usb 2.0 phy registered
[    0.946875] fbdev: sp_fbinfo not present
[    0.948208] dw_axi_dmac_platform f80fc000.dma-controller: DesignWare AXI DMA Controller, 16 channels
[    0.961576] ttyS f8801900.serial: sp_uart0's Rx is in PIO mode.
[    0.967451] ttyS f8801900.serial: sp_uart0's Tx is in PIO mode.
[    0.973397] f8801900.serial: ttyS0 at MMIO 0xf8801900 (irq = 18, base_baud = 1562500) is a sp_uart0
[    0.982577] printk: console [ttyS0] enabled
[    0.982577] printk: console [ttyS0] enabled
[    0.990870] printk: bootconsole [sunplus_uart0] disabled
[    0.990870] printk: bootconsole [sunplus_uart0] disabled
[    1.005210] loop: module loaded
[    1.006361] stmmaceth f8103000.stmmac: no reset control found
[    1.006555] stmmaceth f8103000.stmmac: User ID: 0x10, Synopsys ID: 0x37
[    1.009498] stmmaceth f8103000.stmmac:       DWMAC1000
[    1.014178] stmmaceth f8103000.stmmac: DMA HW capability register supported
[    1.021121] stmmaceth f8103000.stmmac: RX Checksum Offload Engine supported
[    1.028064] stmmaceth f8103000.stmmac: COE Type 2
[    1.032751] stmmaceth f8103000.stmmac: TX Checksum insertion supported
[    1.039263] stmmaceth f8103000.stmmac: Wake-Up On Lan supported
[    1.045197] stmmaceth f8103000.stmmac: Normal descriptors
[    1.050547] stmmaceth f8103000.stmmac: Ring mode enabled
[    1.055840] stmmaceth f8103000.stmmac: Enable RX Mitigation via HW Watchdog Timer
[    1.063307] stmmaceth f8103000.stmmac: device MAC address ee:8c:04:78:31:93
[    1.262838] register sunplus_usb_otg0_driver
[    1.268310] sunplus-usb-synopsys-u3phy f80bd000.uphy: sunplus_usb_synopsys_u3phy_probe
[    1.877701] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.877763] ehci-platform: EHCI generic platform driver
[    1.878322] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.884419] ohci-platform: OHCI generic platform driver
[    1.889880] register ehci0_hcd_sunplus_driver
[    1.894063] ehci0-sunplus f8102100.usb: Generic Platform EHCI Controller
[    1.900652] ehci0-sunplus f8102100.usb: new USB bus registered, assigned bus number 1
[    1.908511] ehci0-sunplus f8102100.usb: irq 37, io mem 0xf8102100
[    1.921473] ehci0-sunplus f8102100.usb: USB 2.0 started, EHCI 1.10
[    1.921970] hub 1-0:1.0: USB hub found
[    1.924457] hub 1-0:1.0: 1 port detected
[    1.928616] register ohci0_hcd_sunplus_driver
[    1.932783] ohci0-sunplus f8102080.usb: Generic Platform OHCI Controller
[    1.939362] ohci0-sunplus f8102080.usb: new USB bus registered, assigned bus number 2
[    1.947209] ohci0-sunplus f8102080.usb: irq 38, io mem 0xf8102080
[    2.006846] hub 2-0:1.0: USB hub found
[    2.006908] hub 2-0:1.0: 1 port detected
[    2.007249] usbcore: registered new interface driver cdc_acm
[    2.008956] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[    2.016979] usbcore: registered new interface driver usb-storage
[    2.022965] usbcore: registered new interface driver ch341
[    2.028406] usbserial: USB Serial support registered for ch341-uart
[    2.034657] usbcore: registered new interface driver cp210x
[    2.040206] usbserial: USB Serial support registered for cp210x
[    2.046122] usbcore: registered new interface driver ftdi_sio
[    2.051838] usbserial: USB Serial support registered for FTDI USB Serial Device
[    2.059165] usbcore: registered new interface driver option
[    2.064685] usbserial: USB Serial support registered for GSM modem (1-port)
[    2.071683] usbcore: registered new interface driver pl2303
[    2.077185] usbserial: USB Serial support registered for pl2303
[    2.083183] sp_udc_probe start, port_num:0, ffffff8001ae4000
[    2.089076] mousedev: PS/2 mouse device common for all mice
[    2.095825] sp7350-rtc f8801180.rtc: registered as rtc0
[    2.099786] sp7350-rtc f8801180.rtc: setting system clock to 1970-01-02T00:04:45 UTC (86685)
[    2.107904] [RTC] Info: sp7350-rtc loaded
[    2.111950] i2c /dev entries driver
[    2.115597] sp7350_display_probe: disp probe ...
[    2.119972] sp7350_display_probe: disp probe 4 irq
[    2.125012] connect_dev_name LT8912B-HDMI (1920x1080)
[    2.130148] sp7350_display_probe: disp probe done
[    2.167478] usb 1-1: new high-speed USB device number 2 using ehci0-sunplus
[    2.182514] sp7350_disp_lt8912_probe
[    2.182756] hantro_dec f8168000.hantro_vc8000d: dec/pp kernel module.
[    2.182815] hantro_dec f8168000.hantro_vc8000d: major:243 minor:0
[    2.187566] hantro_dec f8168000.hantro_vc8000d: Core 0 HW ID=0x6e645000
[    2.194081] hantro_dec f8168000.hantro_vc8000d: Supported HW found at 0xf8168000
[    2.201474] hantro_dec f8168000.hantro_vc8000d: clock enabled
[    2.207191] hantro_dec f8168000.hantro_vc8000d: reset okay
[    2.212671] hantro_dec f8168000.hantro_vc8000d: core[0] has H264
[    2.218645] hantro_dec f8168000.hantro_vc8000d: core[0] has JPEG
[    2.224635] hantro_dec f8168000.hantro_vc8000d: core[0] has PP
[    2.230447] hantro_dec f8168000.hantro_vc8000d: reset hardware
[    2.236394] hantro_enc f80ff000.hantro_vc8000e: major:242 minor:0
[    2.242416] hantro_enc f80ff000.hantro_vc8000e: mem iobaseaddr = f80ff000h
[    2.249289] hantro_enc f80ff000.hantro_vc8000e: mem mapping = ffffffc011d6d000h
[    2.256662] hantro_enc f80ff000.hantro_vc8000e: mem iosize = fffh
[    2.262830] hantro_enc f80ff000.hantro_vc8000e: clock enabled
[    2.268556] hantro_enc f80ff000.hantro_vc8000e: reset okay
[    2.274024] hantro_enc f80ff000.hantro_vc8000e: HW at base <0xf80ff000> with ID <0x6e655000>
[    2.282759] memalloc_d video_codec_dmem: major:241 minor:0
[    2.287986] memalloc_d video_codec_dmem: module init
[    2.292861] memalloc_d video_codec_dmem: SW build 1000
[    2.298065] memalloc_d video_codec_dmem: linear memory base = 0x74000000
[    2.298633] hub 1-1:1.0: USB hub found
[    2.304835] memalloc_d video_codec_dmem: linear memory size = 64 MB
[    2.304850] memalloc_d video_codec_dmem: Total size 64 MB; 4096 chunks of size 16384
[    2.309057] hub 1-1:1.0: 4 ports detected
[    2.315166] memalloc_e video_codec_emem: allocation method: DYNAMIC
[    2.332875] memalloc_e video_codec_emem: major:240 minor:0
[    2.338412] memalloc_e video_codec_emem: SW build 1000
[    2.343554] memalloc_e video_codec_emem: linear memory base = 0x60000000
[    2.350320] memalloc_e video_codec_emem: linear memory size = 327680 MB
[    2.357006] memalloc_e video_codec_emem: chunk size = 4 KB, chunks = 1 configured
[    2.364576] hantro_codec video_codec: Video codec clock enabled
[    2.370377] hantro_codec video_codec: Video codec reset okay
[    2.376093] usbcore: registered new interface driver uvcvideo
[    2.381743] USB Video Class driver (1.1.1)
[    2.388702] Bluetooth: HCI UART driver ver 2.3
[    2.390251] Bluetooth: HCI UART protocol H4 registered
[    2.424236] spsdc f8003e80.mmc: Got CD GPIO
[    2.510359] mmc0: new DDR MMC card at address 0001
[    2.510861] mmcblk0: mmc0:0001 88A398 7.28 GiB
[    2.511074] mmcblk0boot0: mmc0:0001 88A398 partition 1 4.00 MiB
[    2.514504] mmcblk0boot1: mmc0:0001 88A398 partition 2 4.00 MiB
[    2.520427] mmcblk0rpmb: mmc0:0001 88A398 partition 3 4.00 MiB, chardev (239:0)
[    2.523372] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    2.529038] mmc1: new ultra high speed SDR104 SDHC card at address 59b4
[    2.541006] mmcblk1: mmc1:59b4 USDU1 14.7 GiB
[    2.542511] usbcore: registered new interface driver usbhid
[    2.546366]  mmcblk1: p1 p2
[    2.550578] usbhid: USB HID core driver
[    2.554410]  mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8
[    2.557539] remoteproc remoteproc0: f800817c.remoteproc is available
[    2.568683] optee: probing for conduit method.
[    2.572313] optee: revision 3.13 (150e2ba5)
[    2.572627] optee: initialized driver
[    2.580328] usbcore: registered new interface driver snd-usb-audio
[    2.586820] sunplus-audio f8800480.audio: sunplus_audio_probe
[    2.592078] mmc2: error -110 whilst initialising SDIO card
[    2.592131] sunplus-audio f8800480.audio: sunplus_i2s_register
[    2.603466] sunplus-audio f8800480.audio: sunplus_tdm_register
[    2.609526] aud-codec aud-codec: aud_codec_probe
[    2.614197] usb 1-1.1: new low-speed USB device number 3 using ehci0-sunplus
[    2.621901] snd_spsoc_audio_init , create soc_card
[    2.625914] soc-audio soc-audio: ASoC: machine sp-aud should use snd_soc_register_card()
[    2.634233] debugfs: Directory 'f8800480.audio' with parent 'sp-aud' already present!
[    2.642775] NET: Registered protocol family 10
[    2.646612] Segment Routing with IPv6
[    2.649815] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    2.655926] NET: Registered protocol family 17
[    2.660194] Bluetooth: RFCOMM TTY layer initialized
[    2.664987] Bluetooth: RFCOMM socket layer initialized
[    2.670107] Bluetooth: RFCOMM ver 1.11
[    2.673833] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    2.679121] Bluetooth: BNEP filters: protocol multicast
[    2.684333] Bluetooth: BNEP socket layer initialized
[    2.689277] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    2.695182] Bluetooth: HIDP socket layer initialized
[    2.700166] Key type dns_resolver registered
[    2.704387] Key type ceph registered
[    2.708088] libceph: loaded (mon/osd proto 15/24)
[    2.712856] registered taskstats version 1
[    2.716712] Loading compiled-in X.509 certificates
[    2.727049] fbdev: fb create 1920x1080, cmod 8(RGB565)
[    2.727146] sp7350-fb fb_disp_device: assigned reserved memory node fb@5c000000
[    2.735088] fbcon: Deferring console take-over
[    2.736915] input: HID 04f3:0103 as /devices/platform/f8102100.usb/usb1/1-1/1-1.1/1-1.1:1.0/0003:04F3:0103.0001/input/input0
[    2.738324] fbdev: fb res 1920x1080, size 8298496 + 1024
[    2.754884] hid-generic 0003:04F3:0103.0001: input: USB HID v1.11 Keyboard [HID 04f3:0103] on usb-f8102100.usb-1.1/input0
[    2.769853] input: HID 04f3:0103 Consumer Control as /devices/platform/f8102100.usb/usb1/1-1/1-1.1/1-1.1:1.1/0003:04F3:0103.0002/input/input1
[    2.778560] input: HID 04f3:0103 System Control as /devices/platform/f8102100.usb/usb1/1-1/1-1.1/1-1.1:1.1/0003:04F3:0103.0002/input/input2
[    2.791002] hid-generic 0003:04F3:0103.0002: input: USB HID v1.11 Device [HID 04f3:0103] on usb-f8102100.usb-1.1/input1
[    2.866511] usb 1-1.3: new low-speed USB device number 4 using ehci0-sunplus
[    2.954396] input: Logitech USB Optical Mouse as /devices/platform/f8102100.usb/usb1/1-1/1-1.3/1-1.3:1.0/0003:046D:C06A.0003/input/input3
[    2.955965] hid-generic 0003:046D:C06A.0003: input: USB HID v1.11 Mouse [Logitech USB Optical Mouse] on usb-f8102100.usb-1.3/input0
[    3.124594] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    3.126072] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    3.127715] [dhd] _dhd_module_init: in Dongle Host Driver, version 101.10.361.36 (wlan=r892223-20231114-1)
[    3.127715] drivers/net/wireless/bcmdhd compiled on Feb 26 2024 at 19:10:43
[    3.127715]
[    3.145730] [dhd] STATIC-MSG) dhd_static_buf_init : 101.10.361.36 (wlan=r892223-20231107-1)
[    3.154094] [dhd] STATIC-MSG) dhd_init_wlan_mem : prealloc ok for index 0: 1102848(1077K)
[    3.162291] [dhd] no wifi platform data, skip
[    3.166554] [dhd] dhd_wifi_platform_load: Enter
[    3.171063] [dhd] DHD wifi platform data is required for Android build
[    3.177573] [dhd] DHD registering bus directly
[    3.182002] [dhd] bcmsdh_register: register client driver
[    3.187414] [dhd] _dhd_module_init: Exit err=0
[    3.191811] ALSA device list:
[    3.194756]   #0: Q645/Q654, Sunplus Technology Inc.
[    3.199828] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    3.208323] platform regulatory.0: Falling back to sysfs fallback for: regulatory.db
[    3.552970] EXT4-fs (mmcblk1p2): recovery complete
[    3.555994] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
[    3.556101] VFS: Mounted root (ext4 filesystem) on device 179:26.
[    3.561209] devtmpfs: mounted
[    3.564851] Freeing unused kernel memory: 3264K
[    3.568260] Run /sbin/init as init process
/etc/init.d/rcS starts...
Mounting other filesystems ...
rc.extra [bg]
sdcard boot set...
[    3.859785] remoteproc remoteproc0: powering up f800817c.remoteproc
[    3.862398] remoteproc remoteproc0: Booting fw image firmware, size 244092
[    3.863813] virtio_rpmsg_bus virtio0: rpmsg host is online
[    3.868300]  remoteproc0#vdev0buffer: registered virtio0 (type 7)
[    3.874274] remoteproc remoteproc0: remote processor f800817c.remoteproc is now up
[    3.891831] virtio_rpmsg_bus virtio0: creating channel rpmsg-tty-raw addr 0x0
[    3.892174] virtio_rpmsg_bus virtio0: creating channel rpmsg-tty-raw addr 0x1
[    3.896190] virtio_rpmsg_bus virtio0: creating channel rpmsg-tty-raw addr 0x2
Boot CM4 firmware by remoteproc
extra done
End of /etc/init.d/rcS

login[145]: root login on 'console'
~ # [    3.990539] fbcon: Taking over console
[    3.990930] Console: switching to colour frame buffer device 240x67

~ # df -hT
Filesystem           Type            Size      Used Available Use% Mounted on
/dev/root            ext4           14.0G    342.9M     13.1G   2% /
devtmpfs             devtmpfs        1.2G         0      1.2G   0% /dev
tmpfs                tmpfs           1.4G         0      1.4G   0% /dev/shm
tmpfs                tmpfs           1.4G         0      1.4G   0% /tmp
~ #

  • No labels