This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PROCESSOR-SDK-AM437X: video0 is not found even after sensor driver registered

Guru 10106 points

Part Number: PROCESSOR-SDK-AM437X
Other Parts Discussed in Thread: TPS65216, AM4372

Hi Champs.

There's a request form a customer who wants to resolve the camera driver issue.

Tey have implemented the camera sensor driver with PC7080D via i2c. also checked the device control and driver registration as below.

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.4.106-g023faefa70 (root@ubuntu) (gcc version 9.2.1 20191025 (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10))) #1 PREEMPT Fri Mar 4 14:22:35 KST 2022
[    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: ACROWELL AM437x AUM100
…
…
[    1.680250] omap_i2c 44e0b000.i2c: bus 0 rev0.12 at 100 kHz
[    1.695606] link-frequencies 0 value 70000000
[    1.700230] omap_i2c 4802a000.i2c: bus 1 rev0.12 at 300 kHz
[    1.706418] GPIO line 129 (LED) hogged as output/high
[    1.746127] link-frequencies 0 value 70000000
[    1.786550] pc7080d 1-0033: Found PC7080D sensor
[    1.807042] pc7080d 1-0033: pc7080d 1-0033 sensor driver registered !!
[    1.829594] hctosys: unable to open rtc device (rtc0)
[    1.836068] ALSA device list:
[    1.839065]   No soundcards found.
[    1.925636] EXT4-fs (mmcblk0p2): recovery complete
[    1.931723] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.940075] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    1.957027] devtmpfs: mounted
[    1.961981] Freeing unused kernel memory: 1024K
[    1.966837] Run /sbin/init as init process
INIT: version 2.96 booting

However, as shown in the log above, the driver was normally recognized and registered.

/dev/video0
/sys/class/video4linux/video0

Although the device was registered, but the video0 above does not appear on the custom board.
Currently, their board is tiny filesystem, so they haven't uploaded any modules.
All of the V4L2 related CONFIGs are included in the kernel as a static build, so if you need to set up a separate library or kernel module,
We ask for a review of what parts will be problematic.
Thank you.

  • Hi Jianzhong Xu

    Thanks for your quick reply.

    Here's an update after followed the VPFE guidance what you pointed at above.

    They tried to test with loadable kernel module of PC7080D sensor device. 

    However the additional issue was raised regarded with fck error.

    [  128.555797] link-frequencies 0 value 70000000
    [  128.569267] pc7080d 1-0033: Found PC7080D sensor
    [  128.585874] pc7080d 1-0033: pc7080d 1-0033 sensor driver registered !!
    [  128.592953] ti-sysc 44e3e074.target-module: clock get error for fck: -517
    

    Q1. Could you please figoure out why the clock issue comes out?

    As they're trying to enable their sensor driver on top of tiny root filesyste since NAND size is restricted by 128MB.

    Q2. Can you also please clarify the necessary module reqired to run camera app on top of V4L2 layer?

    What modules should be included tor camera app?

    Regards, 

    Jack

  • Hi Jianzhong Xu

    Here is a new update. 

    They're able to see kernel boot up after fixed VPFE setting with regarded with V4L2 missing. For now they can see /dev/video0

    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Linux version 5.4.106-g023faefa70 (root@ubuntu) (gcc version 9.2.1 20191025 (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10))) #4 PREEMPT Mon Mar 7 13:53:50 KST 2022
    [    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [    0.000000] OF: fdt: Machine model: ACROWELL AM437x AUM100
    [    0.000000] Memory policy: Data cache writeback
    . . .
    [    0.000000] /ocp@44000000/interconnect@44c00000/segment@100000/target-module@f0000/prcm@0/l4-rtc-cm@8500/l4-rtc-clkctrl@20 not found from clkctrl data.
    [    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
    [    0.000015] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
    [    0.000039] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
    [    0.000051] OMAP clocksource: timer1 at 24000000 Hz
    [    0.000688] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
    [    0.000700] OMAP clocksource: 32k_counter at 32768 Hz
    [    0.001403] Console: colour dummy device 80x30
    [    0.001475] Calibrating delay loop... 1196.85 BogoMIPS (lpj=5984256)
    [    0.090277] pid_max: default: 32768 minimum: 301
    [    0.090519] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
    [    0.090540] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
    [    0.091670] CPU: Testing write buffer coherency: ok
    [    0.091742] CPU0: Spectre v2: using BPIALL workaround
    [    0.092774] Setting up static identity map for 0x80100000 - 0x80100060
    [    0.092960] rcu: Hierarchical SRCU implementation.
    [    0.093062] EFI services will not be available.
    [    0.093502] devtmpfs: initialized
    [    0.109708] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
    [    0.110188] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.110218] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
    [    0.114331] pinctrl core: initialized pinctrl subsystem
    [    0.115246] DMI not present or invalid.
    [    0.115773] NET: Registered protocol family 16
    [    0.117989] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.149427] cpuidle: using governor ladder
    [    0.149473] cpuidle: using governor menu
    [    0.179687] No ATAGs?
    [    0.179714] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
    [    0.179734] hw-breakpoint: maximum watchpoint size is 4 bytes.
    [    0.201829] debugfs: Directory '49000000.edma' with parent 'dmaengine' already present!
    [    0.201864] edma 49000000.edma: TI EDMA DMA engine driver
    [    0.204695] iommu: Default domain type: Translated
    [    0.207919] SCSI subsystem initialized
    [    0.208589] mc: Linux media interface: v0.10
    [    0.208645] videodev: Linux video capture interface: v2.00
    [    0.208761] pps_core: LinuxPPS API ver. 1 registered
    [    0.208771] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.208799] PTP clock support registered
    [    0.208842] EDAC MC: Ver: 3.0.0
    [    0.210423] Advanced Linux Sound Architecture Driver Initialized.
    [    0.211904] clocksource: Switched to clocksource timer1
    [    0.222296] thermal_sys: Registered thermal governor 'fair_share'
    [    0.222305] thermal_sys: Registered thermal governor 'bang_bang'
    [    0.222322] thermal_sys: Registered thermal governor 'step_wise'
    [    0.222331] thermal_sys: Registered thermal governor 'user_space'
    [    0.222338] thermal_sys: Registered thermal governor 'power_allocator'
    [    0.223148] NET: Registered protocol family 2
    [    0.224033] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
    [    0.224074] TCP established hash table entries: 2048 (order: 1, 8192 bytes, linear)
    [    0.224108] TCP bind hash table entries: 2048 (order: 1, 8192 bytes, linear)
    [    0.224146] TCP: Hash tables configured (established 2048 bind 2048)
    [    0.224288] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
    [    0.224316] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
    [    0.224528] NET: Registered protocol family 1
    [    0.225225] RPC: Registered named UNIX socket transport module.
    [    0.225241] RPC: Registered udp transport module.
    [    0.225249] RPC: Registered tcp transport module.
    [    0.225256] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.225274] PCI: CLS 0 bytes, default 64
    [    0.227610] Initialise system trusted keyrings
    [    0.227948] workingset: timestamp_bits=14 max_order=16 bucket_order=2
    [    0.234688] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.235613] NFS: Registering the id_resolver key type
    [    0.235657] Key type id_resolver registered
    [    0.235667] Key type id_legacy registered
    [    0.235731] ntfs: driver 2.1.32 [Flags: R/O].
    [    0.236609] Key type asymmetric registered
    [    0.236626] Asymmetric key parser 'x509' registered
    [    0.236686] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
    [    0.236700] io scheduler mq-deadline registered
    [    0.236709] io scheduler kyber registered
    [    0.243388] OMAP GPIO hardware version 0.1
    [    0.249544] ti-sysc 44e3e074.target-module: clock get error for fck: -517
    [    0.272661] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [    0.297718] ti-sysc 48322000.target-module: dts flag should be at module level for ti,no-reset-on-init
    [    0.311380] pinctrl-single 44e10800.pinmux: 199 pins, size 796
    [    0.379491] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
    [    0.384540] omap8250 44e09000.serial: No clock speed specified: using default: 48000000
    [    0.385513] printk: console [ttyS0] disabled
    [    0.385626] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 67, base_baud = 3000000) is a 8250
    [    1.065254] printk: console [ttyS0] enabled
    [    1.073076] omap_rng 48310000.rng: Random Number Generator ver. 20
    [    1.081188] omapdss_dss 4832a000.dss: 4832a000.dss supply vdda_video not found, using dummy regulator
    [    1.090679] random: fast init done
    [    1.094390] random: crng init done
    [    1.098693] DSS: OMAP DSS rev 2.0
    [    1.104590] omapdss_dss 4832a000.dss: bound 4832a400.dispc (ops dispc_component_ops)
    [    1.135167] brd: module loaded
    [    1.149781] loop: module loaded
    [    1.160423] libphy: Fixed MDIO Bus: probed
    [    1.166351] i2c /dev entries driver
    [    1.174735] cpuidle: enable-method property 'ti,am4372' found operations
    [    1.182473] sdhci: Secure Digital Host Controller Interface driver
    [    1.188689] sdhci: Copyright(c) Pierre Ossman
    [    1.194951] omap_gpio 44e07000.gpio: Could not set line 6 debounce to 200000 microseconds (-22)
    [    1.203746] omap_hsmmc 48060000.mmc: Got CD GPIO
    [    1.236099] omap_hsmmc 47810000.mmc: RX DMA channel request failed
    [    1.243007] sdhci-pltfm: SDHCI platform and OF driver helper
    [    1.250841] ledtrig-cpu: registered to indicate activity on CPUs
    [    1.261850] davinci-mcasp 4803c000.mcasp: IRQ common not found
    [    1.269737] NET: Registered protocol family 10
    [    1.275693] Segment Routing with IPv6
    [    1.279504] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
    [    1.286523] NET: Registered protocol family 17
    [    1.291452] Key type dns_resolver registered
    [    1.296054] omap_voltage_late_init: Voltage driver support not added
    [    1.303282] Loading compiled-in X.509 certificates
    [    1.326140] mmc0: host does not support reading read-only switch, assuming write-enable
    [    1.336979] omapdrm omapdrm.0: DMM not available, disable DMM support
    [    1.344073] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
    [    1.350862] mmc0: new high speed SDHC card at address aaaa
    [    1.356420] [drm] No driver support for vblank timestamp query.
    [    1.363314] mmcblk0: mmc0:aaaa SS32G 29.7 GiB
    [    1.368670] [drm] Initialized omapdrm 1.0.0 20110917 for omapdrm.0 on minor 0
    [    1.378151] omap-gpmc 50000000.gpmc: GPMC revision 6.0
    [    1.383635]  mmcblk0: p1 p2
    [    1.387802] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
    [    1.395895] nand: device found, Manufacturer ID: 0xc8, Chip ID: 0xd1
    [    1.402408] nand: ESMT NAND 128MiB 3,3V 8-bit
    [    1.406796] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
    [    1.414640] nand: using OMAP_ECC_BCH8_CODE_HW ECC scheme
    [    1.420100] 10 fixed-partitions partitions found on MTD device omap2-nand.0
    [    1.427129] Creating 10 MTD partitions on "omap2-nand.0":
    [    1.432579] 0x000000000000-0x000000040000 : "NAND.SPL"
    [    1.439653] 0x000000040000-0x000000080000 : "NAND.SPL.backup1"
    [    1.447340] 0x000000080000-0x0000000c0000 : "NAND.SPL.backup2"
    [    1.455009] 0x0000000c0000-0x000000100000 : "NAND.SPL.backup3"
    [    1.462661] 0x000000100000-0x000000180000 : "NAND.u-boot-spl-os"
    [    1.470645] 0x000000180000-0x000000280000 : "NAND.u-boot"
    [    1.478411] 0x000000280000-0x0000002c0000 : "NAND.u-boot-env"
    [    1.486002] 0x0000002c0000-0x000000300000 : "NAND.u-boot-env.backup1"
    [    1.494250] 0x000000300000-0x000000a00000 : "NAND.kernel"
    [    1.506105] 0x000000a00000-0x000008000000 : "NAND.file-system"
    [    1.638515] omap_i2c 44e0b000.i2c: bus 0 rev0.12 at 100 kHz
    [    1.644675] ti-sysc 44e3e074.target-module: clock get error for fck: -517
    [    1.653883] link-frequencies 0 value 70000000
    [    1.658515] omap_i2c 4802a000.i2c: bus 1 rev0.12 at 300 kHz
    [    1.664719] GPIO line 129 (LED) hogged as output/high
    [    1.680773] omap_reset_deassert: timedout waiting for gfx:0
    [    1.686450] ti-sysc: probe of 44000000.ocp:target-module@56000000 failed with error -110
    [    1.697110] ti-sysc 44e3e074.target-module: clock get error for fck: -517
    [    1.704998] link-frequencies 0 value 70000000
    [    3.762003] omap_i2c 4802a000.i2c: controller timed out
    [    3.824555] pc7080d 1-0033: Found PC7080D sensor
    [    5.921987] omap_i2c 4802a000.i2c: controller timed out
    [    5.952519] pc7080d 1-0033: pc7080d 1-0033 sensor driver registered !!
    [    5.959933] ti-sysc 44e3e074.target-module: clock get error for fck: -517
    [    5.968291] ti-sysc 44e3e074.target-module: clock get error for fck: -517
    [    5.978304] ALSA device list:
    [    5.981317]   No soundcards found.
    [    6.053805] EXT4-fs (mmcblk0p2): recovery complete
    [    6.059868] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
    [    6.068179] VFS: Mounted root (ext4 filesystem) on device 179:2.
    [    6.085840] devtmpfs: mounted
    [    6.090798] Freeing unused kernel memory: 1024K
    [    6.095642] Run /sbin/init as init process
    INIT: version 2.96 booting
    [    6.535727] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
    

    There're several times of ti-sysc 44e3074.target.module ; fck error. is that related with RTC?

    ti-sysc 44e3e074.target-module: clock get error for fck: -517

    They don't use RTC feature as unwanted feature. Hence they deleted RTC related stuff from CONFIG and DTS regarded with RTC.

    Question is

    1. Do they need to use RTC?

    2. Accordin to e2e post below.  it is said that RTC is needed to staty enabled regardless of you use it. 
    Is this applicable to this customer who use TPS65216 PMIC.

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/890446/am4372-tps65218d0-with-rtc-disabled

    3. Please check the DTS file to figure out the problematic area?

    0447.am437x-aum100.zip 

    4. Regarding DTS, according to their earlier inspection, they could boot up after used "ti,am438x" value instead of "ti,am4372" in compatible value. 

    They found it is accessed by am4_l4_rtc_clkctrl_regs when used "ti, am4372"

    It is supposed that this is related with booting as well as camera bring up.

    Please check questions above.

    Regards, 

    Jack 

  • Hello Jack,

    I'm sorry for the delayed response. Appreciated your patience.

    You've opened a new thread here: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1089675/processor-sdk-am437x-how-to-set-clkout1-frequency-to-27mhz.

    Is the new thread related to this inquiry?

    Regards,

    Jianzhong

  • Hi Jianzhong. 

    This issue could be resolved by following PSDK guidance. And the new thread is asked to adjust master clock frequency which was used by clkout1 port.

    The Customer has two issues regarding clkout1 frequency adjustment and UVC gadet support for now.

    Regards, 

    Jack