optee imx8mm

news2024/11/25 22:54:31

总仓库
git clone https://github.com/Xsyin/imx8mqevk.git -b container_region

替换imx8mqevk中的optee-client
git clone https://github.com/nxp-imx/imx-optee-client.git -b lf-5.15.32_2.0.0

用 5.15.32 kernel 会有如下报错,需要将optee os升级到分支 lf-5.15.32_2.0.0

D/TC:0 core_mmu_entry_to_finer_grained:653 xlat tables used 3 / 5
D/TC:0 tee_ta_init_pseudo_ta_session:274 Lookup pseudo TA 7011a688-ddde-4053-a5a9-7b3c4ddf13b8
D/TC:0 load_elf:842 Lookup user TA ELF 7011a688-ddde-4053-a5a9-7b3c4ddf13b8 (Secure Storage TA)
D/TC:0 load_elf:847 res=0xffff000c
D/TC:0 tee_ta_open_session:540 init session failed 0xffff000c
F/TC:0 plat_prng_add_jitter_entropy:74 plat_prng_add_jitter_entropy: 0x99C5

替换imx8mqevk中的optee-os
git clone https://github.com/nxp-imx/imx-optee-os.git -b lf-5.15.32_2.0.0

替换optee test 到 lf-5.15.32_2.0.0
git clone https://github.com/nxp-imx/imx-optee-test.git -b lf-5.15.32_2.0.0

下载编译工具
sudo make -f toolchain.mk toolchains

编译
make all -i

单编optee os
make optee-os

报错

/D/TC:0 verify_special_mem_areas:479 NSEC DDR memory [40000000 be000000]
E/TC:0 verify_special_mem_areas:510 [40000000 be000000] intersecs [bc000000 be000000]
E/TC:0 Panic 'Special memory intersection' at core/arch/arm/mm/core_mmu.c:511 <verify_special_mem_areas>
E/TC:0 Call stack:
E/TC:0  0x00000000be00c36c
#修改optee os
core\arch\arm\plat-imx\config\imx8mm.h
#define DRAM0_NSEC_SIZE     (CFG_TZDRAM_START - DRAM0_NSEC_BASE)
#修改为
#define DRAM0_NSEC_SIZE     (CFG_TZDRAM_START - DRAM0_NSEC_BASE - CFG_TEE_CONTAINER_SIZE)

单编optee examples
make optee-examples

编译kernel

~/share/imx8mm/linux
export PATH=$PATH:/home/peich/share/toolchain/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- imx8mm_topeet_defconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j12

编译uboot

~/share/imx8mm/uboot
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- ATF_LOAD_ADDR=0x920000 flash.bin -j12

启动

setenv bootcmd 'bootcmd=mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; else if run loadimage; then run mmcboot; else run netboot; fi; fi; else booti ${loadaddr} - ${fdt_addr}; fi'
setenv mmcdev 1
setenv fdtfile itop8mm-evk-mipi.dtb
boot

linux

arch\arm64\boot\dts\freescale\fsl-imx8-ca53.dtsi
添加如下内容

    firmware {
        optee {
            compatible = "linaro,optee-tz";
            method = "smc";
        };
    };

Documentation\devicetree\bindings\arm\firmware\linaro,optee-tz.txt

 * ----------------------------------------------------------------------------
 * TEE RAM layout without CFG_WITH_PAGER
 *_
 *  +----------------------------------+ <-- CFG_TZDRAM_START
 *  | TEE core secure RAM (TEE_RAM)    |
 *  +----------------------------------+
 *  | Trusted Application RAM (TA_RAM) |
 *  +----------------------------------+
 *  | SDP test memory (optional)       |
 *  +----------------------------------+ <-- CFG_TZDRAM_START + CFG_TZDRAM_SIZE
 *
 *  +----------------------------------+ <-- CFG_SHMEM_START
 *  | Non-secure static SHM            |
 *  +----------------------------------+ <-- CFG_SHMEM_START + CFG_SHMEM_SIZE

图片:
内存分布

setenv bootargs 'console=ttymxc1,115200 root=/dev/nfs nfsroot=192.168.10.199:/home/peich/nfsroot/yocto,v3 rw ip=192.168.10.65:192.168.10.199:192.168.10.103:255.255.255.0::eth0:off'

setenv bootargs 'console=ttymxc1,115200 earlycon=ec_imx6q,0x30890000,115200 root=/dev/mmcblk2p2 rootwait rw'

setenv ipaddr 192.168.10.65
setenv netmask 255.255.255.0
setenv serverip 192.168.10.199
setenv bootcmd 'tftp 0x40480000 Image121601;tftp 0x43000000 imx8mm-topeet.dtb;booti 0x40480000 - 0x43000000' 

boot

Image0103

tftp 0x40480000 Image121601

tftp 0x43000000 imx8mm-topeet.dtb

booti 0x40480000 - 0x43000000


nfs 0x40480000 192.168.10.199:/home/peich/nfsroot/Image121601
nfs 0x40480000 192.168.10.199:/home/peich/nfsroot/imx8mm-topeet.dtb

挂载nfs
mount -t nfs -o nolock 192.168.10.199:/home/peich/nfsroot /mnt/

optee 3.17
U-Boot SPL 2021.04-gb1a78b67-dirty (Dec 17 2023 - 02:37:10 -0800)
DDRINFO: start DRAM init
DDRINFO: DRAM rate 2400MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
SEC0:  RNG instantiated
Normal Boot
Trying to boot from MMC2
Jumping to U-Boot
loaded - jumping to U-Boot...
image entry point: 0x920000
NOTICE:  BL31: v2.6(release):lf-6.1.1-1.0.0-0-g616a4588f-dirty
NOTICE:  BL31: Built : 06:32:23, Dec  6 2023
NOTICE:  BL31: Initializing runtime services
ERROR:   service->init addr 0x924098, service->name imx_sip_svc
ERROR:   service->init addr 0x92724c, service->name opteed_fast
ERROR:   optee_ep_info->pc 0xbe000000
ERROR:   service->init addr 0x92761c, service->name std_svc
NOTICE:  BL31: Initializing runtime services DONE
NOTICE:  BL31: Initializing BL32
ERROR:   opteed_init  linear_id 0
ERROR:   optee_entry_point->pc 0xbe000000
ERROR:   opteed_init line 174
ERROR:   opteed_synchronous_sp_entry optee_ctx->c_rt_ctx 0000x0
D/TC:0   get_aslr_seed:1464 Bad fdt: -9
D/TC:0   plat_get_aslr_seed:110 Warning: no ASLR seed
D/TC:0   add_phys_mem:556 ROUNDDOWN(0x38800000, CORE_MMU_PGDIR_SIZE) type IO_SEC 0x38800000 size 0x00200000
D/TC:0   add_phys_mem:556 ROUNDDOWN(0x30360000, CORE_MMU_PGDIR_SIZE) type IO_SEC 0x30200000 size 0x00400000
D/TC:0   add_phys_mem:556 ROUNDDOWN((0x30890000), CORE_MMU_PGDIR_SIZE) type IO_NSEC 0x30800000 size 0x00400000
D/TC:0   add_phys_mem:556 TZASC_BASE type IO_SEC 0x32f80000 size 0x00010000
D/TC:0   add_phys_mem:556 ROUNDDOWN(0x30350000, CORE_MMU_PGDIR_SIZE) type IO_SEC 0x30200000 size 0x00400000
D/TC:0   add_phys_mem:569 Physical mem map overlaps 0x30200000
D/TC:0   add_phys_mem:556 SECMEM_BASE type IO_SEC 0x00100000 size 0x00008000
D/TC:0   add_phys_mem:556 TEE_SHMEM_START type NSEC_SHM 0xbfe00000 size 0x00200000
D/TC:0   add_phys_mem:556 TA_RAM_START type TA_RAM 0xbe200000 size 0x01c00000
D/TC:0   add_phys_mem:556 VCORE_UNPG_RW_PA type TEE_RAM_RW 0xbe07a000 size 0x00186000
D/TC:0   add_phys_mem:556 VCORE_UNPG_RX_PA type TEE_RAM_RX 0xbe000000 size 0x0007a000
D/TC:0   add_va_space:595 type RES_VASPACE size 0x00a00000
D/TC:0   add_va_space:595 type SHM_VASPACE size 0x02000000
D/TC:0   dump_mmap_table:723 type NSEC_SHM     va 0xb8600000..0xb87fffff pa 0xbfe00000..0xbfffffff size 0x00200000 (pgdir)
D/TC:0   dump_mmap_table:723 type TA_RAM       va 0xb8800000..0xba3fffff pa 0xbe200000..0xbfdfffff size 0x01c00000 (pgdir)
D/TC:0   dump_mmap_table:723 type IO_SEC       va 0xba600000..0xba7fffff pa 0x38800000..0x389fffff size 0x00200000 (pgdir)
D/TC:0   dump_mmap_table:723 type IO_NSEC      va 0xba800000..0xbabfffff pa 0x30800000..0x30bfffff size 0x00400000 (pgdir)
D/TC:0   dump_mmap_table:723 type IO_SEC       va 0xbac00000..0xbaffffff pa 0x30200000..0x305fffff size 0x00400000 (pgdir)
D/TC:0   dump_mmap_table:723 type RES_VASPACE  va 0xbb000000..0xbb9fffff pa 0x00000000..0x009fffff size 0x00a00000 (pgdir)
D/TC:0   dump_mmap_table:723 type SHM_VASPACE  va 0xbbc00000..0xbdbfffff pa 0x00000000..0x01ffffff size 0x02000000 (pgdir)
D/TC:0   dump_mmap_table:723 type IO_SEC       va 0xbdfe8000..0xbdff7fff pa 0x32f80000..0x32f8ffff size 0x00010000 (smallpg)
D/TC:0   dump_mmap_table:723 type IO_SEC       va 0xbdff8000..0xbdffffff pa 0x00100000..0x00107fff size 0x00008000 (smallpg)
D/TC:0   dump_mmap_table:723 type TEE_RAM_RX   va 0xbe000000..0xbe079fff pa 0xbe000000..0xbe079fff size 0x0007a000 (smallpg)
D/TC:0   dump_mmap_table:723 type TEE_RAM_RW   va 0xbe07a000..0xbe1fffff pa 0xbe07a000..0xbe1fffff size 0x00186000 (smallpg)
D/TC:0   core_mmu_xlat_table_alloc:520 xlat tables used 1 / 8
D/TC:0   core_mmu_xlat_table_alloc:520 xlat tables used 2 / 8
D/TC:0   core_mmu_xlat_table_alloc:520 xlat tables used 3 / 8
I/TC:
I/TC: Non-secure external DT found
D/TC:0 0 discover_nsec_memory:1226 No non-secure memory found in FDT
D/TC:0 0 discover_nsec_memory:1245 Warning register_dynamic_shm() is deprecated, please use register_ddr() instead
D/TC:0 0 carve_out_phys_mem:284 No need to carve out 0xbe000000 size 0x200000
D/TC:0 0 carve_out_phys_mem:284 No need to carve out 0xbe200000 size 0x1c00000
D/TC:0 0 carve_out_phys_mem:284 No need to carve out 0xbfe00000 size 0x200000
D/TC:0 0 get_console_node_from_dt:72 No console directive from DTB
I/TC: OP-TEE version: lf-5.15.32-2.0.0-1-g984996422 (gcc version 8.3.0 (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36))) #1 Sun Dec 17 10:35:23 UTC 2023 aarch64
I/TC: WARNING: This OP-TEE configuration might be insecure!
I/TC: WARNING: Please check https://optee.readthedocs.io/en/latest/architecture/porting_guidelines.html
I/TC: Primary CPU initializing
D/TC:0 0 boot_init_primary_late:1345 Executing at offset 0 with virtual load address 0xbe000000
D/TC:0 0 call_preinitcalls:21 level 2 mobj_mapped_shm_init()
D/TC:0 0 mobj_mapped_shm_init:464 Shared memory address range: bbc00000, bdc00000
D/TC:0 0 call_initcalls:40 level 1 register_time_source()
D/TC:0 0 call_initcalls:40 level 1 crypto_driver_init()
D/TC:0 0 gic_it_set_cpu_mask:320 cpu_mask: writing 0xff0000 to 0xba600890
D/TC:0 0 gic_it_set_cpu_mask:322 cpu_mask: 0x0
D/TC:0 0 gic_it_set_prio:335 prio: writing 0x1 to 0xba600492
D/TC:0 0 caam_hal_ctrl_fill_mpmr:211 is_filled = false
D/TC:0 0 caam_hal_ctrl_fill_mpmr:256 val_scfgr = 0x34000001
D/TC:0 0 call_initcalls:40 level 1 teecore_init_pub_ram()
D/TC:0 0 call_initcalls:40 level 2 init_caam_late()
D/TC:0 0 call_initcalls:40 level 2 probe_dt_drivers_early()
D/TC:0 0 call_initcalls:40 level 3 imx_ocotp_init()
D/TC:0 0 call_initcalls:40 level 3 check_ta_store()
D/TC:0 0 check_ta_store:408 TA store: "Secure Storage TA"
D/TC:0 0 check_ta_store:408 TA store: "REE"
D/TC:0 0 call_initcalls:40 level 3 verify_pseudo_tas_conformance()
D/TC:0 0 call_initcalls:40 level 3 tee_cryp_init()
D/TC:0 0 call_initcalls:40 level 4 tee_fs_init_key_manager()
D/TC:0 0 imx_ocotp_read:107 OCOTP Bank 0 Word 2 Fuse 0x351f4209
D/TC:0 0 imx_ocotp_read:107 OCOTP Bank 0 Word 1 Fuse 0xdab75352
D/TC:0 0 call_initcalls:40 level 5 tzasc_init()
D/TC:0 0 tzc_dump_state:336 TZC380 configuration:
D/TC:0 0 tzc_dump_state:338 security_inversion_en 0
D/TC:0 0 tzc_dump_state:344
D/TC:0 0 tzc_dump_state:345 region 1
D/TC:0 0 tzc_dump_state:348 region_base: 0x0000000000000000
D/TC:0 0 tzc_dump_state:350 region sp: f
D/TC:0 0 tzc_dump_state:352 region size: 1f
D/TC:0 0 tzc_dump_state:344
D/TC:0 0 tzc_dump_state:345 region 2
D/TC:0 0 tzc_dump_state:348 region_base: 0x000000007c000000
D/TC:0 0 tzc_dump_state:350 region sp: c
D/TC:0 0 tzc_dump_state:352 region size: 19
D/TC:0 0 tzc_dump_state:344
D/TC:0 0 tzc_dump_state:345 region 3
D/TC:0 0 tzc_dump_state:348 region_base: 0x000000007f000000
D/TC:0 0 tzc_dump_state:350 region sp: c
D/TC:0 0 tzc_dump_state:352 region size: 17
D/TC:0 0 tzc_dump_state:344
D/TC:0 0 tzc_dump_state:345 region 4
D/TC:0 0 tzc_dump_state:348 region_base: 0x000000007fc00000
D/TC:0 0 tzc_dump_state:350 region sp: f
D/TC:0 0 tzc_dump_state:352 region size: 15
D/TC:0 0 tzc_dump_state:355 Lockdown select: 1
D/TC:0 0 tzc_dump_state:357 Lockdown range: 8000000f
D/TC:0 0 tzc_dump_state:358 Action register: 1
D/TC:0 0 tzc_dump_state:359 exit
D/TC:0 0 call_initcalls:40 level 5 snvs_set_npswa_en()
D/TC:0 0 call_initcalls:40 level 5 probe_dt_drivers()
D/TC:0 0 call_initcalls:40 level 6 mobj_init()
D/TC:0 0 call_initcalls:40 level 6 default_mobj_init()
D/TC:0 0 call_initcalls:40 level 7 release_probe_lists()
D/TC:0 0 call_finalcalls:59 level 1 release_external_dt()
I/TC: Primary CPU switching to normal world boot
ERROR:   opteed_synchronous_sp_entry optee_ctx->c_rt_ctx 000x92aba0
ERROR:   opteed_init line 181
NOTICE:  BL31 188
NOTICE:  BL31 194
NOTICE:  BL31 196


U-Boot 2021.04-gb1a78b67-dirty (Dec 17 2023 - 02:37:10 -0800)

CPU:   i.MX8MMQ rev1.0 1600 MHz (running at 1200 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 20C
Reset cause: POR
Model: NXP i.MX8MM TOPEET board
DRAM:  2 GiB
MMC:   FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... *** Warning - bad CRC, using default environment

Fail to setup video link
In:    serial
Out:   serial
Err:   serial
SEC0:  RNG instantiated

 BuildInfo:
  - ATF 616a458

switch to partitions #0, OK
mmc2(part 0) is current device
flash target is MMC:2
Net:
Warning: ethernet@30be0000 (eth0) using random MAC address - ce:58:ca:f2:bf:b0
eth0: ethernet@30be0000
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot:  0
u-boot=> setenv bootargs 'console=ttymxc1,115200 earlycon=ec_imx6q,0x30890000,115200 root=/dev/mmcblk2p2 rootwait rw'
u-boot=>
u-boot=> setenv ipaddr 192.168.10.65
u-boot=> setenv netmask 255.255.255.0
u-boot=> setenv serverip 192.168.10.199
u-boot=> tftp 0x40480000 Image121601
Using ethernet@30be0000 device
TFTP from server 192.168.10.199; our IP address is 192.168.10.65
Filename 'Image121601'.
Load address: 0x40480000
Loading: #################################################################
         ###########################
         432.6 KiB/s
done
Bytes transferred = 30929408 (1d7f200 hex)
u-boot=> tftp 0x43000000 imx8mm-topeet.dtb
Using ethernet@30be0000 device
TFTP from server 192.168.10.199; our IP address is 192.168.10.65
Filename 'imx8mm-topeet.dtb'.
Load address: 0x43000000
Loading: ####
         378.9 KiB/s
done
Bytes transferred = 48228 (bc64 hex)
u-boot=> booti 0x40480000 - 0x43000000
Moving Image from 0x40480000 to 0x40600000, end=42410000
## Flattened Device Tree blob at 43000000
   Booting using the fdt blob at 0x43000000
   Using Device Tree in place at 0000000043000000, end 000000004300ec63

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.15.32-g21e809b958ba-dirty (peich@ubuntu) (aarch64-linux-gnu-gcc (Linaro GCC 7.5-2019.12) 7.5.0, GNU ld (Linaro_Binutils-2019.12) 2.28.2.20170706) #2 SMP PREEMPT Fri Sep 15 23:55:56 PDT 2023
[    0.000000] Machine model: FSL i.MX8MM TOPEET board
[    0.000000] earlycon: ec_imx6q0 at MMIO 0x0000000030890000 (options '115200')
[    0.000000] printk: bootconsole [ec_imx6q0] enabled
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created CMA memory pool at 0x0000000096000000, size 640 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000040000000-0x00000000bdffffff]
[    0.000000] NUMA: NODE_DATA [mem 0x95bd1800-0x95bd3fff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000040000000-0x00000000bdffffff]
[    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 0x0000000040000000-0x00000000bdffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x00000000bdffffff]
[    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 20 pages/cpu s41112 r8192 d32616 u81920
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 508032
[    0.000000] Policy zone: DMA
[    0.000000] Kernel command line: console=ttymxc1,115200 earlycon=ec_imx6q,0x30890000,115200 root=/dev/mmcblk2p2 rootwait rw
[    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 1337752K/2064384K available (18496K kernel code, 1532K rwdata, 7104K rodata, 2944K init, 547K bss, 71272K reserved, 655360K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 128 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: Distributor has no Range Selector support
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GICv3: 16 PPIs implemented
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000038880000
[    0.000000] ITS: No ITS available, not enabling LPIs
[    0.000000] random: get_random_bytes called from start_kernel+0x484/0x674 with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 8.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 440795202120 ns
[    0.000000] sched_clock: 56 bits at 8MHz, resolution 125ns, wraps every 2199023255500ns
[    0.008435] Console: colour dummy device 80x25
[    0.012574] Calibrating delay loop (skipped), value calculated using timer frequency.. 16.00 BogoMIPS (lpj=32000)
[    0.022844] pid_max: default: 32768 minimum: 301
[    0.027531] LSM: Security Framework initializing
[    0.032167] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.039558] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.048628] rcu: Hierarchical SRCU implementation.
[    0.053235] EFI services will not be available.
[    0.056987] 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.072055] Detected VIPT I-cache on CPU1
[    0.072086] GICv3: CPU1: found redistributor 1 region 0:0x00000000388a0000
[    0.072129] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.080353] Detected VIPT I-cache on CPU2
[    0.080376] GICv3: CPU2: found redistributor 2 region 0:0x00000000388c0000
[    0.080403] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.088599] Detected VIPT I-cache on CPU3
[    0.088619] GICv3: CPU3: found redistributor 3 region 0:0x00000000388e0000
[    0.088644] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.088702] smp: Brought up 1 node, 4 CPUs
[    0.142462] SMP: Total of 4 processors activated.
[    0.147181] CPU features: detected: 32-bit EL0 Support
[    0.152353] CPU features: detected: 32-bit EL1 Support
[    0.157506] CPU features: detected: CRC32 instructions
[    0.170323] CPU: All CPU(s) started at EL2
[    0.171590] alternatives: patching kernel code
[    0.177382] devtmpfs: initialized
[    0.186165] KASLR disabled due to lack of seed
[    0.187898] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.197592] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.225597] pinctrl core: initialized pinctrl subsystem
[    0.228486] DMI not present or invalid.
[    0.232325] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.242553] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
[    0.247165] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.254951] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.262614] audit: initializing netlink subsys (disabled)
[    0.268170] audit: type=2000 audit(0.196:1): state=initialized audit_enabled=0 res=1
[    0.268725] thermal_sys: Registered thermal governor 'step_wise'
[    0.275768] thermal_sys: Registered thermal governor 'power_allocator'
[    0.281983] cpuidle: using governor menu
[    0.292577] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.299201] ASID allocator initialised with 65536 entries
[    0.305420] Serial: AMBA PL011 UART driver
[    0.308717] imx mu driver is registered.
[    0.312607] imx rpmsg driver is registered.
[    0.327761] imx8mm-pinctrl 30330000.pinctrl: initialized IMX pinctrl driver
[    0.341370] platform 32e30000.mipi_csi: Fixing up cyclic dependency with 32e20000.csi1_bridge
[    0.368419] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.372312] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    0.379091] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.385779] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    0.393552] cryptd: max_cpu_qlen set to 1000
[    0.399557] ACPI: Interpreter disabled.
[    0.401363] iommu: Default domain type: Translated
[    0.405558] iommu: DMA domain TLB invalidation policy: strict mode
[    0.412009] vgaarb: loaded
[    0.414809] SCSI subsystem initialized
[    0.418641] usbcore: registered new interface driver usbfs
[    0.423873] usbcore: registered new interface driver hub
[    0.429209] usbcore: registered new device driver usb
[    0.435119] mc: Linux media interface: v0.10
[    0.438561] videodev: Linux video capture interface: v2.00
[    0.444122] pps_core: LinuxPPS API ver. 1 registered
[    0.449039] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.458240] PTP clock support registered
[    0.462315] EDAC MC: Ver: 3.0.0
[    0.466359] FPGA manager framework
[    0.468801] Advanced Linux Sound Architecture Driver Initialized.
[    0.475367] Bluetooth: Core ver 2.22
[    0.478451] NET: Registered PF_BLUETOOTH protocol family
[    0.483778] Bluetooth: HCI device and connection manager initialized
[    0.490167] Bluetooth: HCI socket layer initialized
[    0.495066] Bluetooth: L2CAP socket layer initialized
[    0.500151] Bluetooth: SCO socket layer initialized
[    0.505742] clocksource: Switched to clocksource arch_sys_counter
[    0.511318] VFS: Disk quotas dquot_6.6.0
[    0.515147] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.522169] pnp: PnP ACPI: disabled
[    0.531317] NET: Registered PF_INET protocol family
[    0.533450] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.541743] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
[    0.549425] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.557443] TCP bind hash table entries: 16384 (order: 6, 262144 bytes, linear)
[    0.564906] TCP: Hash tables configured (established 16384 bind 16384)
[    0.571342] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.578029] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    0.585281] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.591191] RPC: Registered named UNIX socket transport module.
[    0.596808] RPC: Registered udp transport module.
[    0.601544] RPC: Registered tcp transport module.
[    0.606250] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.613413] PCI: CLS 0 bytes, default 64
[    0.617276] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    0.625510] kvm [1]: IPA Size Limit: 40 bits
[    0.630436] kvm [1]: GICv3: no GICV resource entry
[    0.633990] kvm [1]: disabling GICv2 emulation
[    0.638458] kvm [1]: GIC system register CPU interface enabled
[    0.644399] kvm [1]: vgic interrupt IRQ9
[    0.648368] kvm [1]: Hyp mode initialized successfully
[    0.656455] Initialise system trusted keyrings
[    0.658183] workingset: timestamp_bits=42 max_order=19 bucket_order=0
[    0.670427] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.674007] NFS: Registering the id_resolver key type
[    0.678526] Key type id_resolver registered
[    0.682705] Key type id_legacy registered
[    0.686797] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.693468] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.700923] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    0.707365] 9p: Installing v9fs 9p2000 file system support
[    0.747816] Key type asymmetric registered
[    0.749059] Asymmetric key parser 'x509' registered
[    0.754011] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
[    0.761405] io scheduler mq-deadline registered
[    0.765954] io scheduler kyber registered
[    0.775813] EINJ: ACPI disabled.
[    0.785367] imx-sdma 302c0000.dma-controller: Direct firmware load for imx/sdma/sdma-imx7d.bin failed with error -2
[    0.793051] imx-sdma 302c0000.dma-controller: Falling back to sysfs fallback for: imx/sdma/sdma-imx7d.bin
[    0.808366] mxs-dma 33000000.dma-controller: initialized
[    0.812342] SoC: i.MX8MM revision 1.0
[    0.815006] Bus freq driver module loaded
[    0.824144] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.829812] 30860000.serial: ttymxc0 at MMIO 0x30860000 (irq = 47, base_baud = 5000000) is a IMX
[    0.836955] 30880000.serial: ttymxc2 at MMIO 0x30880000 (irq = 48, base_baud = 5000000) is a IMX
[    0.845693] 30890000.serial: ttymxc1 at MMIO 0x30890000 (irq = 49, base_baud = 1500000) is a IMX
[    0.854156] printk: console [ttymxc1] enabled
[    0.854156] printk: console [ttymxc1] enabled
[    0.862797] printk: bootconsole [ec_imx6q0] disabled
[    0.862797] printk: bootconsole [ec_imx6q0] disabled
[    0.874902] imx-drm 32c00000.bus:display-subsystem: no available port
[    0.892457] loop: module loaded
[    0.896814] of_reserved_mem_lookup() returned NULL
[    0.901691] megasas: 07.717.02.00-rc1
[    0.906887] imx ahci driver is registered.
[    0.914235] spi-nor spi0.0: unrecognized JEDEC id bytes: 00 00 00 00 00 00
[    0.921133] spi-nor: probe of spi0.0 failed with error -2
[    0.929052] tun: Universal TUN/TAP device driver, 1.6
[    0.934880] thunder_xcv, ver 1.0
[    0.938155] thunder_bgx, ver 1.0
[    0.941409] nicpf, ver 1.0
[    0.946061] hclge is initializing
[    0.949390] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version
[    0.956625] hns3: Copyright (c) 2017 Huawei Corporation.
[    0.962012] e1000: Intel(R) PRO/1000 Network Driver
[    0.966946] e1000: Copyright (c) 1999-2006 Intel Corporation.
[    0.972739] e1000e: Intel(R) PRO/1000 Network Driver
[    0.977711] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    0.983670] igb: Intel(R) Gigabit Ethernet Network Driver
[    0.989103] igb: Copyright (c) 2007-2014 Intel Corporation.
[    0.994712] igbvf: Intel(R) Gigabit Virtual Function Network Driver
[    1.000989] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[    1.007096] sky2: driver version 1.30
[    1.011297] usbcore: registered new interface driver r8152
[    1.017036] VFIO - User Level meta-driver version: 0.3
[    1.024275] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.030826] ehci-pci: EHCI PCI platform driver
[    1.035309] ehci-platform: EHCI generic platform driver
[    1.040726] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.046930] ohci-pci: OHCI PCI platform driver
[    1.051410] ohci-platform: OHCI generic platform driver
[    1.057313] usbcore: registered new interface driver uas
[    1.062677] usbcore: registered new interface driver usb-storage
[    1.068761] usbcore: registered new interface driver usbserial_generic
[    1.075311] usbserial: USB Serial support registered for generic
[    1.081358] usbcore: registered new interface driver ftdi_sio
[    1.087126] usbserial: USB Serial support registered for FTDI USB Serial Device
[    1.094465] usbcore: registered new interface driver usb_serial_simple
[    1.101017] usbserial: USB Serial support registered for carelink
[    1.107131] usbserial: USB Serial support registered for zio
[    1.112809] usbserial: USB Serial support registered for funsoft
[    1.118836] usbserial: USB Serial support registered for flashloader
[    1.125210] usbserial: USB Serial support registered for google
[    1.131150] usbserial: USB Serial support registered for libtransistor
[    1.137697] usbserial: USB Serial support registered for vivopay
[    1.143729] usbserial: USB Serial support registered for moto_modem
[    1.150016] usbserial: USB Serial support registered for motorola_tetra
[    1.156650] usbserial: USB Serial support registered for novatel_gps
[    1.163023] usbserial: USB Serial support registered for hp4x
[    1.168789] usbserial: USB Serial support registered for suunto
[    1.174732] usbserial: USB Serial support registered for siemens_mpi
[    1.181117] usbcore: registered new interface driver usb_ehset_test
[    1.190127] input: 30370000.snvs:snvs-powerkey as /devices/platform/soc@0/30000000.bus/30370000.snvs/30370000.snvs:snvs-powerkey/input/input0
[    1.204507] snvs_rtc 30370000.snvs:snvs-rtc-lp: registered as rtc0
[    1.210721] snvs_rtc 30370000.snvs:snvs-rtc-lp: setting system clock to 1970-01-01T00:00:00 UTC (0)
[    1.219883] i2c_dev: i2c /dev entries driver
[    1.225046] mx6s-csi 32e20000.csi1_bridge: initialising
[    1.233591] Bluetooth: HCI UART driver ver 2.3
[    1.238064] Bluetooth: HCI UART protocol H4 registered
[    1.243209] Bluetooth: HCI UART protocol BCSP registered
[    1.248546] Bluetooth: HCI UART protocol LL registered
[    1.253695] Bluetooth: HCI UART protocol ATH3K registered
[    1.259116] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    1.265477] Bluetooth: HCI UART protocol Broadcom registered
[    1.271160] Bluetooth: HCI UART protocol QCA registered
[    1.277895] sdhci: Secure Digital Host Controller Interface driver
[    1.284089] sdhci: Copyright(c) Pierre Ossman
[    1.289075] Synopsys Designware Multimedia Card Interface Driver
[    1.295662] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.303266] ledtrig-cpu: registered to indicate activity on CPUs
[    1.310262] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    1.317168] usbcore: registered new interface driver usbhid
[    1.322749] usbhid: USB HID core driver
[    1.330414]  cs_system_cfg: CoreSight Configuration manager initialised
[    1.334674] mmc2: SDHCI controller on 30b60000.mmc [30b60000.mmc] using ADMA
[    1.338467] optee: probing for conduit method.
D/TC:0   tee_entry_exchange_capabilities:101 Asynchronous notifications are disabled
D/TC:0   tee_entry_exchange_capabilities:109 Dynamic shared memory is enabled
[    1.348620] optee: revision 3.17 (98499642)
[    1.363798] optee: dynamic shared memory is enabled
D/TC:0 0 core_mmu_xlat_table_alloc:520 xlat tables used 4 / 8
D/TC:? 0 tee_ta_init_pseudo_ta_session:296 Lookup pseudo TA 7011a688-ddde-4053-a5a9-7b3c4ddf13b8
D/TC:? 0 tee_ta_init_pseudo_ta_session:309 Open device.pta
D/TC:? 0 tee_ta_init_pseudo_ta_session:326 device.pta : 7011a688-ddde-4053-a5a9-7b3c4ddf13b8
F/TC:? 0 plat_prng_add_jitter_entropy:72 0x1FDA
D/TC:? 0 tee_ta_close_session:512 csess 0xbe0a9d20 id 1
D/TC:? 0 tee_ta_close_session:530 Destroy session
[    1.414181] optee: initialized driver
[    1.419556] galcore: clk_get vg clock failed, disable vg!
[    1.425285] Galcore version 6.4.3.p4.398061
[    1.486584] mmc2: new HS400 Enhanced strobe MMC card at address 0001
[    1.488442] [drm] Initialized vivante 1.0.0 20170808 for 38000000.gpu on minor 0
[    1.493729] mmcblk2: mmc2:0001 AJTD4R 14.6 GiB
[    1.501982] hantrodec 0 : module inserted. Major = 511
[    1.510456]  mmcblk2: p1 p2
[    1.510684] hantrodec 1 : module inserted. Major = 511
[    1.515005] mmcblk2boot0: mmc2:0001 AJTD4R 4.00 MiB
[    1.519355] hx280enc: module inserted. Major <510>
[    1.524751] mmcblk2boot1: mmc2:0001 AJTD4R 4.00 MiB
[    1.534522] mmcblk2rpmb: mmc2:0001 AJTD4R 4.00 MiB, chardev (234:0)
[    1.534583] NET: Registered PF_LLC protocol family
[    1.546123] NET: Registered PF_INET6 protocol family
[    1.553305] Segment Routing with IPv6
[    1.557012] In-situ OAM (IOAM) with IPv6
[    1.560984] NET: Registered PF_PACKET protocol family
[    1.567098] Bluetooth: RFCOMM TTY layer initialized
[    1.571995] Bluetooth: RFCOMM socket layer initialized
[    1.577191] Bluetooth: RFCOMM ver 1.11
[    1.580963] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    1.586293] Bluetooth: BNEP filters: protocol multicast
[    1.591530] Bluetooth: BNEP socket layer initialized
[    1.596505] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    1.602434] Bluetooth: HIDP socket layer initialized
[    1.608141] 8021q: 802.1Q VLAN Support v1.8
[    1.612366] lib80211: common routines for IEEE802.11 drivers
[    1.618142] 9pnet: Installing 9P2000 support
[    1.622449] tsn generic netlink module v1 init...
[    1.627230] Key type dns_resolver registered
[    1.632495] Loading compiled-in X.509 certificates
[    1.661205] usb_phy_generic usbphynop1: supply vcc not found, using dummy regulator
[    1.669108] usb_phy_generic usbphynop2: supply vcc not found, using dummy regulator
[    1.740945] nxp-pca9450 0-0025: pca9450a probed.
[    1.745687] i2c i2c-0: IMX I2C adapter registered
[    1.752270] i2c 1-0050: Fixing up cyclic dependency with 32e40000.usb
[    1.759712] i2c i2c-1: IMX I2C adapter registered
[    1.765584] pca953x 2-0020: using no AI
[    1.770384] pca953x 2-0020: failed writing register
[    1.776466] i2c 2-003c: Fixing up cyclic dependency with 32e30000.mipi_csi
[    1.783792] ov5640_mipi 2-003c: No sensor reset pin available
[    1.789584] ov5640_mipi 2-003c: supply DOVDD not found, using dummy regulator
[    1.796828] ov5640_mipi 2-003c: supply DVDD not found, using dummy regulator
[    1.803942] ov5640_mipi 2-003c: supply AVDD not found, using dummy regulator
[    1.822722] ov5640_mipi 2-003c: Read reg error: reg=300a
[    1.828057] ov5640_mipi 2-003c: Camera is not found
[    1.833221] i2c i2c-2: IMX I2C adapter registered
[    1.840049] imx6q-pcie 33800000.pcie: supply epdev_on not found, using dummy regulator
[    1.842592] pps pps0: new PPS source ptp0
[    1.848302] imx6q-pcie 33800000.pcie: EXT REF_CLK is used!.
[    1.865651] fec 30be0000.ethernet eth0: registered PHC device 0
[    1.878057] mxc_mipi-csi 32e30000.mipi_csi: supply mipi-phy not found, using dummy regulator
[    1.886115] imx6q-pcie 33800000.pcie: PCIe PLL is locked.
[    1.886881] mxc_mipi-csi 32e30000.mipi_csi: mipi csi v4l2 device registered
[    1.891960] imx6q-pcie 33800000.pcie: iATU unroll: enabled
[    1.898878] CSI: Registered sensor subdevice: mxc_mipi-csi.0
[    1.904362] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound
[    1.910041] mxc_mipi-csi 32e30000.mipi_csi: lanes: 2, hs_settle: 13, clk_settle: 2, wclk: 1, freq: 333000000
[    1.917598] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges:
[    1.928026] imx-cpufreq-dt imx-cpufreq-dt: cpu speed grade 2 mkt segment 2 supported-hw 0x4 0x4
[    1.934697] imx6q-pcie 33800000.pcie:       IO 0x001ff80000..0x001ff8ffff -> 0x0000000000
[    1.944357] Hot alarm is canceled. GPU3D clock will return to 64/64
[    1.951561] imx6q-pcie 33800000.pcie:      MEM 0x0018000000..0x001fefffff -> 0x0018000000
[    1.958908] imx8mm-pinctrl 30330000.pinctrl: pin MX8MM_IOMUXC_SD1_RESET_B already requested by 30be0000.ethernet; cannot claim for usdhc1_pwrseq
[    1.966096] imx6q-pcie 33800000.pcie: iATU unroll: enabled
[    1.978978] imx8mm-pinctrl 30330000.pinctrl: pin-50 (usdhc1_pwrseq) status -22
[    1.984481] imx6q-pcie 33800000.pcie: Detected iATU regions: 4 outbound, 4 inbound
[    1.991684] imx8mm-pinctrl 30330000.pinctrl: could not request pin 50 (MX8MM_IOMUXC_SD1_RESET_B) from group usdhc1grpgpio  on device 30330000.pinctrl
[    2.012666] pwrseq_simple usdhc1_pwrseq: Error applying setting, reverse things back
[    2.022456] sdhci-esdhc-imx 30b50000.mmc: Got CD GPIO
[    2.027637] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    2.038794] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    2.045444] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    2.051415] ALSA device list:
[    2.054076] platform regulatory.0: Falling back to sysfs fallback for: regulatory.db
[    2.057032]   No soundcards found.
[    2.066200] mmc1: SDHCI controller on 30b50000.mmc [30b50000.mmc] using ADMA
[    2.144166] mmc1: host does not support reading read-only switch, assuming write-enable
[    2.185097] mmc1: new ultra high speed SDR104 SDHC card at address 0001
[    2.192877] mmcblk1: mmc1:0001 SD16G 29.8 GiB
[    2.200418]  mmcblk1: p1 p2
[    3.003175] imx6q-pcie 33800000.pcie: Phy link never came up
[    3.008904] imx6q-pcie: probe of 33800000.pcie failed with error -110
[    3.020135] random: fast init done
[    3.083128] EXT4-fs (mmcblk2p2): recovery complete
[    3.088777] EXT4-fs (mmcblk2p2): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[    3.098657] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    3.105434] devtmpfs: mounted
[    3.109086] Freeing unused kernel memory: 2944K
[    3.113710] Run /sbin/init as init process
[    3.167627] systemd[1]: System time before build time, advancing clock.
[    3.181701] systemd[1]: systemd 237 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.203317] systemd[1]: Detected architecture arm64.

Welcome to NXP i.MX Release Distro 4.14-sumo (sumo)!


root@imx8mmevk:~# ls /lib/optee_armtz/
5b9e0e40-2636-11e1-ad9e-0002a5d5c51b.ta
5ce0c432-0ab0-40e5-a056-782ca0e6aba2.ta
614789f2-39c0-4ebf-b235-92b32ac107ed.ta
731e279e-aafb-4575-a771-38caa6f0cca6.ta
873bcd08-c2c3-11e6-a937-d0bf9c45c61c.ta
b689f2a7-8adf-477a-9f99-32e90c0ad0a2.ta
c3f6e2c0-3548-11e1-b86c-0800200c9a66.ta
cb3e5ba0-adf1-11e0-998b-0002a5d5c51b.ta
d17f73a0-36ef-11e1-984a-0002a5d5c51b.ta
e13010e0-2ae1-11e5-896a-0002a5d5c51b.ta
e626662e-c0e2-485c-b8c8-09fbce6edf3d.ta
e6a33ed4-562b-463a-bb7e-ff5e15a493c8.ta
f157cda0-550c-11e5-a6fa-0002a5d5c51b.ta
ffd2bded-ab7d-4988-95ee-e4962fff7154.ta
root@imx8mmevk:~#




root@imx8mmevk:~# optee_example_hello_world
D/TC:? 0 tee_ta_init_pseudo_ta_session:296 Lookup pseudo TA 8aaaf200-2450-11e4-abe2-0002a5d5c51b
D/TC:? 0 ldelf_load_ldelf:95 ldelf load address 0x40006000
D/LD:  ldelf:134 Loading TS 8aaaf200-2450-11e4-abe2-0002a5d5c51b
D/TC:? 0 ldelf_syscall_open_bin:143 Lookup user TA ELF 8aaaf200-2450-11e4-abe2-0002a5d5c51b (Secure Storage TA)
D/TC:? 0 ldelf_syscall_open_bin:146 res=0xf0100001
E/LD:  init_elf:439 sys_open_ta_bin(8aaaf200-2450-11e4-abe2-0002a5d5c51b)
E/TC:? 0 ldelf_init_with_ldelf:130 ldelf failed with res: 0xf0100001
D/TC:? 0 tee_ta_open_session:717 init session failed 0xf0100001
optee_example_hello_world: TEEC_Opensession failed with code 0xf0100001 origin 0x3
root@imx8mmevk:~# [   50.086186] random: crng init done
[   50.089604] random: 7 urandom warning(s) missed due to ratelimiting

root@imx8mmevk:~#


root@imx8mmevk:~# optee_example_hello_world
D/TC:? 0 tee_ta_init_pseudo_ta_session:296 Lookup pseudo TA 8aaaf200-2450-11e4-abe2-0002a5d5c51b
D/TC:? 0 ldelf_load_ldelf:95 ldelf load address 0x40006000
D/LD:  ldelf:134 Loading TS 8aaaf200-2450-11e4-abe2-0002a5d5c51b
D/TC:? 0 ldelf_syscall_open_bin:143 Lookup user TA ELF 8aaaf200-2450-11e4-abe2-0002a5d5c51b (Secure Storage TA)
D/TC:? 0 secstor_ta_open:19 secstor_ta_open 8aaaf200-2450-11e4-abe2-0002a5d5c51b
D/TC:? 0 ree_fs_open:636 ree_fs_open
D/TC:? 0 ree_fs_open_primitive:402 ree_fs_open_primitive
D/TC:? 0 operation_open_dfh:68 res 0x0
D/TC:? 0 operation_open_dfh:80 res 0x0
D/TC:? 0 ree_fs_open_primitive:417 res 0x0
D/TC:? 0 tee_fs_htree_open:656 res 0x0
D/TC:? 0 verify_root:552 res 0x0
D/TC:? 0 verify_root:557 res 0x0
D/TC:? 0 __gcm_dec_final:329 res 0x0
D/TC:? 0 consttime_memcmp:52 isLT 0x0 isGT 0x100 mask 0x0
D/TC:? 0 consttime_memcmp:54 res 0x1
D/TC:? 0 __gcm_dec_final:333 res 0x1
D/TC:? 0 aes_gcm_dec_final:506 res 0x0
D/TC:? 0 crypto_authenc_dec_final:429 res 0x0
D/TC:? 0 authenc_decrypt_final:513 res 0x0
D/TC:? 0 verify_root:563 res 0x0
D/TC:? 0 tee_fs_htree_open:661 res 0x0
D/TC:? 0 tee_fs_htree_open:666 res 0xf0100001
D/TC:? 0 ree_fs_open_primitive:424 res 0xf0100001
D/TC:? 0 tee_fs_dirfile_open:137 tee_fs_dirfile_open 0xf0100001
D/TC:? 0 open_dirh:559 open_dirh 0xf0100001
D/TC:? 0 open_dirh:566 open_dirh 0xf0100001
D/TC:? 0 get_dirh:586 get_dirh 0xf0100001
D/TC:? 0 ree_fs_open:638 exit ree_fs_open 0xf0100001
D/TC:? 0 ree_fs_open:667 exit ree_fs_open 0xf0100001
D/TC:? 0 tadb_open:228 tadb_open 0xf0100001
D/TC:? 0 tee_tadb_ta_open:649 tee_tadb_ta_open 0xf0100001
D/TC:? 0 secstor_ta_open:23 secstor_ta_open 0xf0100001
D/TC:? 0 ldelf_syscall_open_bin:146 res=0xf0100001
E/LD:  init_elf:439 sys_open_ta_bin(8aaaf200-2450-11e4-abe2-0002a5d5c51b)
E/TC:? 0 ldelf_init_with_ldelf:130 ldelf failed with res: 0xf0100001
D/TC:? 0 tee_ta_open_session:717 init session failed 0xf0100001
optee_example_hello_world: TEEC_Opensession failed with code 0xf0100001 origin 0x3
root@imx8mmevk:~# [   51.370111] random: crng init done
[   51.373529] random: 7 urandom warning(s) missed due to ratelimiting


root@imx8mmevk:~# optee_example_hello_world
D/TC:? 0 tee_ta_init_pseudo_ta_session:296 Lookup pseudo TA 8aaaf200-2450-11e4-abe2-0002a5d5c51b
D/TC:? 0 ldelf_load_ldelf:96 ldelf load address 0x40006000
D/LD:  ldelf:135 Loading TS 8aaaf200-2450-11e4-abe2-0002a5d5c51b
D/TC:? 0 ldelf_syscall_open_bin:143 Lookup user TA ELF 8aaaf200-2450-11e4-abe2-0002a5d5c51b (Secure Storage TA)
D/TC:? 0 ldelf_syscall_open_bin:146 res=0xffff0008
D/TC:? 0 ldelf_syscall_open_bin:143 Lookup user TA ELF 8aaaf200-2450-11e4-abe2-0002a5d5c51b (REE)
D/TC:? 0 ldelf_syscall_open_bin:146 res=0
D/LD:  ldelf:170 ELF (8aaaf200-2450-11e4-abe2-0002a5d5c51b) at 0x4006c000
D/TA:  TA_CreateEntryPoint:39 has been called
D/TA:  TA_OpenSessionEntryPoint:68 has been called
I/TA: Hello World!
D/TA:  inc_value:105 has been called
I/TA: Got value: 42 from NW
I/TA: Increase value to: 43
D/TC:? 0 tee_ta_close_session:530 csess 0xbe0bea90 id 1
D/TC:? 0 tee_ta_close_session:548 Destroy session
I/TA: Goodbye!
D/TA:  TA_DestroyEntryPoint:50 has been called
D/TC:? 0 destroy_context:326 Destroy TA ctx (0xbe0bea30)
Invoking TA to increment 42
TA incremented value to 43
root@imx8mmevk:~# 
root@imx8mmevk:~# xtest 1004
Test ID: 1004
Run test suite with level=0

TEE test application started over default TEE instance
######################################################
#
# regression+pkcs11+regression_nxp
#
######################################################

* regression_1004 Test User Crypt TA
D/TC:? 0 tee_ta_init_pseudo_ta_session:296 Lookup pseudo TA cb3e5ba0-adf1-11e0-998b-0002a5d5c51b
D/TC:? 0 ldelf_load_ldelf:96 ldelf load address 0x40006000
D/LD:  ldelf:135 Loading TS cb3e5ba0-adf1-11e0-998b-0002a5d5c51b
D/TC:? 0 ldelf_syscall_open_bin:143 Lookup user TA ELF cb3e5ba0-adf1-11e0-998b-0002a5d5c51b (Secure Storage TA)
D/TC:? 0 ldelf_syscall_open_bin:146 res=0xffff0008
D/TC:? 0 ldelf_syscall_open_bin:143 Lookup user TA ELF cb3e5ba0-adf1-11e0-998b-0002a5d5c51b (REE)
D/TC:? 0 ldelf_syscall_open_bin:146 res=0
D/LD:  ldelf:170 ELF (cb3e5ba0-adf1-11e0-998b-0002a5d5c51b) at 0x40082000
o regression_1004.1 AES encrypt
D/TC:? 0 tee_ta_close_session:530 csess 0xbe0bea90 id 1
D/TC:? 0 tee_ta_close_session:548 Destroy session
D/TC:? 0 destroy_context:326 Destroy TA ctx (0xbe0bea30)
  regression_1004.1 OK
o regressD/TC:? 0 tee_ta_init_pseudo_ta_session:296 Lookup pseudo TA fd02c9da-306c-48c7-a49c-bbd827ae86ee
ion_1004.2 AES decrypt
  regressD/TC:? 0 ldelf_load_ldelf:96 ldelf load address 0x40006000
D/LD:  ldelf:135 Loading TS fd02c9da-306c-48c7-a49c-bbd827ae86ee
D/TC:? 0 ldelf_syscall_open_bin:143 Lookup user TA ELF fd02c9da-306c-48c7-a49c-bbd827ae86ee (Secure Storage TA)
ion_1004.2 OK
o regression_1004.3 SHA-256 test, 3 bytes input
  regression_1004.3 OK
o regression_1004.4 AES-256 ECB encrypt (32B, fixed key)
  regression_1004.4 OK
o regression_1004.5 AES-256 ECB decrypt (32B, fixed key)
 D/TC:? 0 ldelf_syscall_open_bin:146 res=0xffff0008
D/TC:? 0 ldelf_syscall_open_bin:143 Lookup user TA ELF fd02c9da-306c-48c7-a49c-bbd827ae86ee (REE)
 regression_1004.5 OK
  regression_1004 OK

* pkcs11_1004 PKCS11: create/destroy PKCS#11 simple objects
o pkcs11_1004.1 Cre[  283.601001] audit: type=1701 audit(1626284105.944:4): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=402 comm="tee-supplicant" exe="/usr/bin/tee-supplicant" sig=11 res=1
ate and destroy a volatile object
root@imx8mmevk:/mnt/usr# optee_example_random
D/TC:? 0 tee_ta_init_pseudo_ta_session:296 Lookup pseudo TA b6c53aba-9669-4668-a7f2-205629d00f86
D/TC:? 0 ldelf_load_ldelf:96 ldelf load address 0x40006000
D/LD:  ldelf:135 Loading TS b6c53aba-9669-4668-a7f2-205629d00f86
D/TC:? 0 ldelf_syscall_open_bin:143 Lookup user TA ELF b6c53aba-9669-4668-a7f2-205629d00f86 (Secure Storage TA)
D/TC:? 0 ldelf_syscall_open_bin:146 res=0xffff0008
D/TC:? 0 ldelf_syscall_open_bin:143 Lookup user TA ELF b6c53aba-9669-4668-a7f2-205629d00f86 (REE)
D/TC:? 0 ldelf_syscall_open_bin:146 res=0
D/LD:  ldelf:170 ELF (b6c53aba-9669-4668-a7f2-205629d00f86) at 0x40052000
Invoking TA to generate random UUID...
D/TA:  random_number_generate:73 has been called
I/TA: Generating random data over 16 bytes.
E/TC:? 0
E/TC:? 0 TA panicked with code 0xffff0001
E/LD:  Status of TA b6c53aba-9669-4668-a7f2-205629d00f86
E/LD:   arch: aarch64
E/LD:  region  0: va 0x40004000 pa 0xbe200000 size 0x002000 flags rw-s (ldelf)
E/LD:  region  1: va 0x40006000 pa 0xbe202000 size 0x008000 flags r-xs (ldelf)
E/LD:  region  2: va 0x4000e000 pa 0xbe20a000 size 0x001000 flags rw-s (ldelf)
E/LD:  region  3: va 0x4000f000 pa 0xbe20b000 size 0x004000 flags rw-s (ldelf)
E/LD:  region  4: va 0x40013000 pa 0xbe20f000 size 0x001000 flags r--s
E/LD:  region  5: va 0x40014000 pa 0xbe22e000 size 0x001000 flags rw-s (stack)
E/LD:  region  6: va 0x40015000 pa 0x4d32bff0 size 0x001000 flags rw-- (param)
E/LD:  region  7: va 0x40052000 pa 0x00001000 size 0x012000 flags r-xs [0]
E/LD:  region  8: va 0x40064000 pa 0x00013000 size 0x00c000 flags rw-s [0]
E/LD:   [0] b6c53aba-9669-4668-a7f2-205629d00f86 @ 0x40052000
E/LD:  Call stack:
E/LD:   0x400521bc
E/LD:   0x40056a2c
E/LD:   0x400521c8
D/TC:? 0 user_ta_enter:177 tee_user_ta_enter: TA panicked with code 0xffff0001
D/TC:? 0 destroy_ta_ctx_from_session:341 Remove references to context (0xbe0bde98)
D/TC:? 0 destroy_context:326 Destroy TA ctx (0xbe0bde80)
D/TC:? 0 tee_ta_close_session:530 csess 0xbe0bdee0 id 1
D/TC:? 0 tee_ta_close_session:548 Destroy session
optee_example_random: TEEC_InvokeCommand failed with code 0xffff3024 origin 0x3
root@imx8mmevk:/mnt/usr#
root@imx8mmevk:/mnt/out/ca# optee_example_hotp
D/TC:? 0 tee_ta_init_pseudo_ta_session:296 Lookup pseudo TA 484d4143-2d53-4841-3120-4a6f636b6542
D/TC:? 0 ldelf_load_ldelf:96 ldelf load address 0x40006000
D/LD:  ldelf:135 Loading TS 484d4143-2d53-4841-3120-4a6f636b6542
D/TC:? 0 ldelf_syscall_open_bin:143 Lookup user TA ELF 484d4143-2d53-4841-3120-4a6f636b6542 (Secure Storage TA)
D/TC:? 0 ldelf_syscall_open_bin:146 res=0xffff0008
D/TC:? 0 ldelf_syscall_open_bin:143 Lookup user TA ELF 484d4143-2d53-4841-3120-4a6f636b6542 (REE)
D/TC:? 0 ldelf_syscall_open_bin:146 res=0
D/LD:  ldelf:170 ELF (484d4143-2d53-4841-3120-4a6f636b6542) at 0x40060000
Register the shared key: 12345678901234567890
D/TA:  register_shared_key:147 Got shared key 12345678901234567890 (20 bytes).
D/TA:  get_hotp:179 HOTP is: 755224
HOTP: 755224
D/TA:  get_hotp:179 HOTP is: 287082
HOTP: 287082
D/TA:  get_hotp:179 HOTP is: 359152
HOTP: 359152
D/TA:  get_hotp:179 HOTP is: 969429
HOTP: 969429
D/TA:  get_hotp:179 HOTP is: 338314
D/TA:  get_hotp:179 HOTP is: 254676
HOTP: 338314
HOTP: 254676
D/TA:  get_hotp:179 HOTP is: 287922
D/TA:  get_hotp:179 HOTP is: 162583
HOTP: 287922
HOTP: 162583
D/TA:  get_hotp:179 HOTP is: 399871
D/TA:  get_hotp:179 HOTP is: 520489
D/TC:? 0 tee_ta_close_session:530 csess 0xbe0bdee0 id 1
D/TC:? 0 tee_ta_close_session:548 Destroy session
D/TC:? 0 destroy_context:326 Destroy TA ctx (0xbe0bde80)
HOTP: 399871
HOTP: 520489
root@imx8mmevk:/mnt/out/ca# optee_example_aes
D/TC:? 0 tee_ta_init_pseudo_ta_session:296 Lookup pseudo TA 5dbac793-f574-4871-8ad3-04331ec17f24
Prepare session with the TA
D/TC:? 0 ldelf_load_ldelf:96 ldelf load address 0x40006000
D/LD:  ldelf:135 Loading TS 5dbac793-f574-4871-8ad3-04331ec17f24
D/TC:? 0 ldelf_syscall_open_bin:143 Lookup user TA ELF 5dbac793-f574-4871-8ad3-04331ec17f24 (Secure Storage TA)
D/TC:? 0 ldelf_syscall_open_bin:146 res=0xffff0008
D/TC:? 0 ldelf_syscall_open_bin:143 Lookup user TA ELF 5dbac793-f574-4871-8ad3-04331ec17f24 (REE)
D/TC:? 0 ldelf_syscall_open_bin:146 res=0
D/LD:  ldelf:170 ELF (5dbac793-f574-4871-8ad3-04331ec17f24) at 0x40015000
D/TA:  TA_OpenSessionEntryPoint:394 Session 0x40032450: newly allocated
Prepare encode operation
D/TA:  alloc_resources:124 Session 0x40032450: get ciphering resources
D/TA:  set_aes_key:240 Session 0x40032450: load key material
Load key in TA
Reset ciphering operation in TA (provides the initial vector)
D/TA:  reset_aes_iv:308 Session 0x40032450: reset initial vector
D/TA:  cipher_buffer:340 Session 0x40032450: cipher buffer
Encore buffer from TA
Prepare decode operation
D/TA:  alloc_resources:124 Session 0x40032450: get ciphering resources
D/TA:  set_aes_key:240 Session 0x40032450: load key material
Load key in TA
Reset ciphering operation in TA (provides the initial vector)
D/TA:  reset_aes_iv:308 Session 0x40032450: reset initial vector
D/TA:  cipher_buffer:340 Session 0x40032450: cipher buffer
Decode buffer from TA
D/TC:? 0 tee_ta_close_session:530 csess 0xbe0bdee0 id 1
D/TC:? 0 tee_ta_close_session:548 Destroy session
D/TA:  TA_CloseSessionEntryPoint:404 Session 0x40032450: release session
D/TC:? 0 destroy_context:326 Destroy TA ctx (0xbe0bde80)
Clear text and decoded text match

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1451409.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Istio复习总结:xDS协议、Istio Pilot源码、Istio落地问题总结

1、xDS协议 1&#xff09;、xDS是什么 xDS是一类发现服务的总称&#xff0c;包含LDS、RDS、CDS、EDS以及SDS。Envoy通过xDS API可以动态获取Listener&#xff08;监听器&#xff09;、Route&#xff08;路由&#xff09;、Cluster&#xff08;集群&#xff09;、Endpoint&…

不同AI分析错误代码的差异:谁更胜一筹?谁才是最强者?结果出乎意料!

先祝大家新春快乐&#xff0c;我已经提前三天上班了~~为了年后新框架能上线运行&#xff0c;这几天没人打扰&#xff0c;能安静地冲一下代码&#xff0c;嘎嘎嘎。 准备 错误代码&#xff1a; ... foreach($arr_config[path] as $value_path) {if(file_exists($value_path)){r…

制作怎么自己搭建一个网站

制作怎么自己搭建一个网站 一.领取一个免费域名和SSL证书&#xff0c;和CDN 1.打开网站链接&#xff1a;https://www.rainyun.com/ycpcp_ 首先创建一个CDN&#xff0c;这里以我加速域名“cdntest.biliwind.com 1”为例 这里就要填写 cdntest.biliwind.com 1 &#xff0c;而…

Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(上)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

FuckIt.py库让你的代码从此远离bug

今天给你推荐的这个库叫 “FuckIt.py”&#xff0c;名字一看就是很黄很暴力的那种&#xff0c;作者是这样介绍它的&#xff1a; FuckIt.py uses state-of-the-art technology to make sure your Python code runs whether it has any right to or not. Some code has an error…

无心剑中译莎士比亚《劝君缔结连理枝》

莎士比亚十四行诗第8首 Sonnet 8 - 劝君缔结连理枝 Music to hear, why hear’st thou music sadly? Sweets with sweets war not, joy delights in joy. Why lovest thou that which thou receivest not gladly, Or else receivest with pleasure thine annoy? If the tru…

BUGKU-WEB bp

题目描述 题目截图如下&#xff1a; 进入场景看看&#xff1a; 解题思路 提示说&#xff1a;弱密码top1000&#xff1f;z???(爆破?)先看看源码有没有提示 相关工具 Burp Suit 爆破top1000字典&#xff0c;点击下载 解题步骤 随便测试账号密码admin、admin 得到提…

scIMC:scRNA-seq插补方法基准

在scRNA-seq中一个主要的挑战即为“dropout”事件&#xff0c;它扭曲了基因表达&#xff0c;显著影响了单细胞转录组的下游分析。为了解决这个问题&#xff0c;已经做了很多努力&#xff0c;并开发了几种基于模型和基于深度学习的scRNA-seq插补方法。但是&#xff0c;目前还缺乏…

彻底理解无刷电机

前言 现在很多设备都是搭载的无刷电机而不是有刷电机了&#xff0c;为啥&#xff1f;性能好啊&#xff01; 引入 同性相斥异性相吸 可以看出&#xff0c;只要改变磁铁的极性&#xff0c;电机就能转起来 那 怎么改变磁铁极性呢&#xff1f; 右手螺旋定则可以根据电流的流向…

ch3-homework-基于InternLM和LangChain搭建自己的知识库

ch3-homework-基于InternLM和LangChain搭建自己的知识库 复现课程知识库助手搭建过程先看结果环境配置语料开源词向量模型Sentence Transformer知识库搭建InternLM 接入 LangChain构建检索问答链&#xff0c;并基于Gradio框架部署 基础作业&#xff1a; 复现课程知识库助手搭建…

【Day42】代码随想录之动态规划0-1背包_416. 分割等和子集

文章目录 动态规划理论基础动规五部曲&#xff1a;出现结果不正确&#xff1a; 416. 分割等和子集 动态规划理论基础 动规五部曲&#xff1a; 确定dp数组 下标及dp[i] 的含义。递推公式&#xff1a;比如斐波那契数列 dp[i] dp[i-1] dp[i-2]。初始化dp数组。确定遍历顺序&am…

Android---Jetpack Compose学习006

1. 点击 clickable 修饰符允许应用检测对已应用该修饰符的元素的点击。 示例&#xff1a;点击控件&#xff0c;使得内容发生改变 class MainActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setCo…

C++数据结构与算法——双指针法

C第二阶段——数据结构和算法&#xff0c;之前学过一点点数据结构&#xff0c;当时是基于Python来学习的&#xff0c;现在基于C查漏补缺&#xff0c;尤其是树的部分。这一部分计划一个月&#xff0c;主要利用代码随想录来学习&#xff0c;刷题使用力扣网站&#xff0c;不定时更…

0901多元函数的基本概念-多元函数微分法及其应用

文章目录 1 平面点集1.1 坐标平面1.2 平面点集1.3 邻域1.4 电与点集的关系1.5 聚点1.6 点集所属点的特征定义的平面点集 2 多元函数的概念2.1 定义2.2 值域2.3推广2.4 自然定义域2.5 二元函数的图形 3 多元函数的极限4 多元函数的连续性4.1 连续函数定义4.2 间断点定义4.3 多元…

【教程】C++语言基础学习笔记(八)——函数

写在前面&#xff1a; 如果文章对你有帮助&#xff0c;记得点赞关注加收藏一波&#xff0c;利于以后需要的时候复习&#xff0c;多谢支持&#xff01; 【C语言基础学习】系列文章 第一章 《项目与程序结构》 第二章 《数据类型》 第三章 《运算符》 第四章 《流程控制》 第五章…

2024】前端,该卷什么呢?_2024-02-16

2024已来&#xff0c;过去的 2023 可以说是具有里程碑意义的一年&#xff0c;ChatGPT 的炸裂式发展&#xff0c;很多大佬都亲自入场整活儿&#xff0c;你不得不说&#xff0c;人工智能时代的未来已来&#xff0c;大势所趋&#xff0c;不可阻挡。随着生成式AI的迅猛发展&#xf…

Spring AMQP(3.1.1)设置ConfirmCallback和ReturnsCallback

文章目录 一、起因二、代码1. 定义exchange和queue2. RabbitTemplate3. EnhancedCorrelationData4. 发送消息 环境如下 VersionSpringBoot3.2.1spring-amqp3.1.1RabbitMq3-management 一、起因 老版本的spring-amqp在CorrelationData上设置ConfirmCallback。但是今天却突然发…

RCS系统之:浅谈系统设计与开发

这是我在开发RCS系统中的一些个人感悟与心得&#xff0c;写出来与大家一起分享下。是想到什么写到什么&#xff0c;如果有什么不对的&#xff0c;欢迎大家一起探讨。 有些人喜欢把WMS系统下面的系统统称为RCS系统。 但我不是这么想的&#xff0c;我这里把WMS/ERP系统与AGV之间…

[office] Excel 数据库函数条件区域怎样设置 #笔记#笔记

Excel 数据库函数条件区域怎样设置 以下面的数据表格为例&#xff0c;对于条件区域的设置&#xff0c;有几方面需要注意的内容&#xff0c;下面就一起看看如何对Excel 数据库函数条件区域设置的吧。希望会大家有所帮助 以下面的数据表格为例&#xff0c;对于条件区域的设置&am…

Java:如何判断一个链表是否为回文结构?(画图+代码 详解)

一、判断思想 我们设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法&#xff0c;我们在不创建额外空间的基础上来判断是否为回文结构。 思想&#xff1a; 1、使用快慢指针法&#xff0c;找到链表的中间节点。 2、翻转中间节点的后半部分。 3、分别从头节点和尾节点向中间遍…