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.

Linux/TDA2P-ACD: RNG adress...

Part Number: TDA2P-ACD

Tool/software: Linux

I've got a short question:

Found in Linux 4.4.84: 

dra7.dtsi

 rng: rng@48090000 {
                        compatible = "ti,omap4-rng";
                        ti,hwmods = "rng";
                        reg = <0x48090000 0x2000>;
                        interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&l3_iclk_div>;
                        clock-names = "fck";
                };

Using TDA2PH..ACD Processor. 
In TDA2Px manual for Rev. 1.0: At 0x48090000 there is McSPI mapped, not the RNG. 

I base my work on the following tree: 

dra7.dtsi -> dra74x.dtsi -> dra76x.dtsi  -> myown.dts

(using custom board, no SDK used, but kernel and uboot out of -> SDK Version: VisionSDK 3_2_0_0 ) 

I got the following OOPS: 

[    2.577825] ------------[ cut here ]------------
[    2.582475] WARNING: CPU: 0 PID: 1 at arch/arm/mach-omap2/omap_hwmod.c:2108 _enable+0x2b0/0x2d4()
[    2.591387] omap_hwmod: rng: enabled state can only be entered from initialized, idle, or disabled state
[    2.600907] Modules linked in:
[    2.603987] CPU: 0 PID: 1 Comm: swapper/0 Tainted: G        W       4.4.84-SMS_MONOLYTHIC-00013-g7a35563-dirty #2
[    2.614293] Hardware name: Generic DRA74X (Flattened Device Tree)
[    2.620412] Backtrace: 
[    2.622888] [<c0012f6c>] (dump_backtrace) from [<c0013108>] (show_stack+0x18/0x1c)
[    2.630490]  r6:20000093 r5:ffffffff r4:00000000 r3:00000000
[    2.636223] [<c00130f0>] (show_stack) from [<c02cf2ac>] (dump_stack+0x88/0xa8)
[    2.643482] [<c02cf224>] (dump_stack) from [<c004187c>] (warn_slowpath_common+0x80/0xbc)
[    2.651607]  r8:c08576f0 r7:00000009 r6:0000083c r5:c00325ac r4:eec77c60 r3:eec76000
[    2.659436] [<c00417fc>] (warn_slowpath_common) from [<c004195c>] (warn_slowpath_fmt+0x38/0x40)
[    2.668169]  r8:00000004 r7:c096e100 r6:a0000013 r5:c09876ac r4:c098764c
[    2.674949] [<c0041928>] (warn_slowpath_fmt) from [<c00325ac>] (_enable+0x2b0/0x2d4)
[    2.682723]  r3:c0856a80 r2:c0857b74
[    2.686336] [<c00322fc>] (_enable) from [<c0032aac>] (omap_hwmod_enable+0x2c/0x4c)
[    2.693934]  r7:c096e100 r6:a0000013 r5:c09876ac r4:c098764c
[    2.699662] [<c0032a80>] (omap_hwmod_enable) from [<c0033c4c>] (omap_device_enable+0x44/0x9c)
[    2.708221]  r6:eee5a980 r5:00000000 r4:00000000 r3:eee5a9c0
[    2.713947] [<c0033c08>] (omap_device_enable) from [<c0033cbc>] (_od_runtime_resume+0x18/0x2c)
[    2.722593]  r6:c0033ca4 r5:eee69e74 r4:eee69e10 r3:00001000
[    2.728320] [<c0033ca4>] (_od_runtime_resume) from [<c037c460>] (__rpm_callback+0x34/0x68)
[    2.736616]  r4:eee69e10 r3:00001000
[    2.740228] [<c037c42c>] (__rpm_callback) from [<c037c4bc>] (rpm_callback+0x28/0x88)
[    2.748003]  r6:eee18e10 r5:c0033ca4 r4:eee69e10 r3:00000000
[    2.753728] [<c037c494>] (rpm_callback) from [<c037d2bc>] (rpm_resume+0x388/0x4fc)
[    2.761328]  r5:c0033ca4 r4:eee69e10
[    2.764941] [<c037cf34>] (rpm_resume) from [<c037d6a8>] (__pm_runtime_resume+0x54/0x6c)
[    2.772976]  r10:00000000 r9:000000c7 r8:c09ae7a8 r7:60000013 r6:00000004 r5:eee69e74
[    2.780885]  r4:eee69e10
[    2.783446] [<c037d654>] (__pm_runtime_resume) from [<c036bbe0>] (omap_rng_probe+0x80/0x28c)
[    2.791919]  r7:c09ae7bc r6:eee69e00 r5:ee5a7490 r4:eee69e10
[    2.797643] [<c036bb60>] (omap_rng_probe) from [<c0376750>] (platform_drv_probe+0x58/0xb8)
[    2.805940]  r8:00000000 r7:c09ae7bc r6:fffffdfb r5:eee69e10 r4:ffffffed
[    2.812722] [<c03766f8>] (platform_drv_probe) from [<c03751f8>] (driver_probe_device+0x1e0/0x2ac)
[    2.821630]  r7:c09ae7bc r6:00000000 r5:eee69e10 r4:c0a0b418
[    2.827352] [<c0375018>] (driver_probe_device) from [<c0375358>] (__driver_attach+0x94/0x98)
[    2.835823]  r8:c093c594 r7:00000000 r6:eee69e44 r5:c09ae7bc r4:eee69e10 r3:00000000
[    2.843650] [<c03752c4>] (__driver_attach) from [<c0373770>] (bus_for_each_dev+0x5c/0x90)
[    2.851860]  r6:c03752c4 r5:c09ae7bc r4:00000000 r3:00001000
[    2.857582] [<c0373714>] (bus_for_each_dev) from [<c0374aec>] (driver_attach+0x20/0x28)
[    2.865617]  r6:c09aeb00 r5:ee5a2680 r4:c09ae7bc
[    2.870287] [<c0374acc>] (driver_attach) from [<c0374868>] (bus_add_driver+0xec/0x1fc)
[    2.878242] [<c037477c>] (bus_add_driver) from [<c0375998>] (driver_register+0x80/0xfc)
[    2.886277]  r7:c0956830 r6:ee5a7440 r5:c0974e28 r4:c09ae7bc
[    2.892000] [<c0375918>] (driver_register) from [<c03765dc>] (__platform_driver_register+0x38/0x4c)
[    2.901081]  r5:c0974e28 r4:c0974e28
[    2.904693] [<c03765a4>] (__platform_driver_register) from [<c093c5ac>] (omap_rng_driver_init+0x18/0x20)
[    2.914220] [<c093c594>] (omap_rng_driver_init) from [<c000989c>] (do_one_initcall+0x88/0x1e0)
[    2.922874] [<c0009814>] (do_one_initcall) from [<c0917ee4>] (kernel_init_freeable+0x1a0/0x278)
[    2.931608]  r10:c095683c r9:000000c7 r8:00000000 r7:c0956830 r6:c09d4000 r5:00000006
[    2.939514]  r4:c0965dfc
[    2.942071] [<c0917d44>] (kernel_init_freeable) from [<c06c8cf8>] (kernel_init+0x10/0x100)
[    2.950369]  r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c06c8ce8
[    2.958275]  r4:00000000
[    2.960830] [<c06c8ce8>] (kernel_init) from [<c000fe70>] (ret_from_fork+0x14/0x24)
[    2.968430]  r4:00000000 r3:eec76000
[    2.972036] ---[ end trace 014036efb3aea464 ]---
[    2.976714] omap_rng 48090000.rng: Failed to runtime_get device: -22
[    2.983098] omap_rng 48090000.rng: initialization failed.
[    2.988557] omap_rng: probe of 48090000.rng failed with error -22

Maybe: This is no wonder, because RNG is not mapped to 0x48090000...


There is something wrong with the mapping of the L3-Stuff in the Devicetree? 
But what else to use as basis for development on TDA2PHArVQACDQ1  (Package: ACD, TDA2PH). 

Are there some new DT files available for this brand new Chip? (Maybe newer Linux Kernel than 4.4.x, too ?)

  • Hi Marco,

    I have forwarded your question to a kernel expert.

    Regards,
    Yordan
  • Additional informations:

    In  "./arch/arm/mach-omap2/omap_hwmod_7xx_data.c" there's a hint to my problems during linux boot of TDA2PH ACD...

    =>  if (!ret && omap_type() == OMAP2_DEVICE_TYPE_GP)...

    If the device type is "GP", the RNG and the TIMER12 (both) are touched... otherwise not.

    If I comment out the call under the "if" like this:

    / * omap_hwmod_register_links(dra7xx_gp_hwmod_ocp_ifs); */

    ... of course timer12 and RNG are not initalized... the two of three "oops" are not printed... okay: Of course not... the modules are not touched.

    The question: Is the  package of my TDA2Plus a "GP" type, or is there something wrong in the detection of "omap_type()" or do our brand new Silicium give the wrong identification? (I think CTRL_CORE_STATUS DEVICE_TYPE... really 0x3 ?)

    But, anyway:

    RNG and TIMER12 depends on detecting a "GP"-Device. Would you be kind enough to check if this could be the problem?

    My Silicium: TDA2PHArVQACDQ1  -> CTRL_CORE_STATUS DEVICE_TYPE  = 0x3 -> Is this ok?

    If so... why Timer12 and RNG can no be initialized in hwmod? (Oops of RNG printed above, oops of timer12 shown in .)



    OOPS of timer12: 

    ------------[ cut here ]------------
    [    0.635800] WARNING: CPU: 0 PID: 1 at arch/arm/mach-omap2/omap_hwmod.c:2108 _enable+0x2b8/0x2d0()
    [    0.635808] omap_hwmod: timer12: enabled state can only be entered from initialized, idle, or disabled state
    [    0.635815] Modules linked in:
    [    0.635830] CPU: 0 PID: 1 Comm: swapper/0 Tainted: G        W       4.4.84XXXXX#2
    [    0.635838] Hardware name: Generic DRA74X (Flattened Device Tree)
    [    0.635845] Backtrace: 
    [    0.635866] [<c0012934>] (dump_backtrace) from [<c0012ad0>] (show_stack+0x18/0x1c)
    [    0.635874]  r6:20000093 r5:ffffffff r4:00000000 r3:00000000
    [    0.635905] [<c0012ab8>] (show_stack) from [<c028ff24>] (dump_stack+0x7c/0x9c)
    [    0.635919] [<c028fea8>] (dump_stack) from [<c003f0c8>] (warn_slowpath_common+0x7c/0xb8)
    [    0.635926]  r6:c06b5cf8 r5:0000083c r4:eec8dc70 r3:eec8c000
    [    0.635952] [<c003f04c>] (warn_slowpath_common) from [<c003f1a8>] (warn_slowpath_fmt+0x38/0x40)
    [    0.635959]  r8:00000004 r7:c00319f0 r6:a0000093 r5:ffffffea r4:c07afb40
    [    0.635987] [<c003f174>] (warn_slowpath_fmt) from [<c00302c4>] (_enable+0x2b8/0x2d0)
    [    0.635994]  r3:c06b823c r2:c06b617c
    [    0.636013] [<c003000c>] (_enable) from [<c00307b8>] (omap_hwmod_enable+0x2c/0x4c)
    [    0.636019]  r7:c00319f0 r6:a0000093 r5:c07afba0 r4:c07afb40
    [    0.636045] [<c003078c>] (omap_hwmod_enable) from [<c003199c>] (omap_device_enable+0x48/0x9c)
    [    0.636051]  r6:eee3b6c0 r5:00000000 r4:00000001 r3:eee3b700
    [    0.636076] [<c0031954>] (omap_device_enable) from [<c0031a08>] (_od_runtime_resume+0x18/0x2c)
    [    0.636083]  r6:c00319f0 r5:eee4fa74 r4:eee4fa10 r3:00000000
    [    0.636111] [<c00319f0>] (_od_runtime_resume) from [<c032c6f4>] (__rpm_callback+0x34/0x68)
    [    0.636117]  r4:eee4fa10 r3:00000000
    [    0.636136] [<c032c6c0>] (__rpm_callback) from [<c032c750>] (rpm_callback+0x28/0x88)
    [    0.636143]  r6:eee06c10 r5:c079c100 r4:eee4fa10 r3:00000002
    [    0.636168] [<c032c728>] (rpm_callback) from [<c032d528>] (rpm_resume+0x384/0x4fc)
    [    0.636175]  r5:c079c100 r4:eee4fa10
    [    0.636191] [<c032d1a4>] (rpm_resume) from [<c032d90c>] (__pm_runtime_resume+0x54/0x6c)
    [    0.636197]  r10:eee39880 r9:c078683c r8:eee398a8 r7:60000013 r6:00000004 r5:eee4fa74
    [    0.636222]  r4:eee4fa10
    [    0.636237] [<c032d8b8>] (__pm_runtime_resume) from [<c003b244>] (omap_dm_timer_probe+0x198/0x3e8)
    [    0.636244]  r7:c0577ef0 r6:eee4fa10 r5:eee4fa00 r4:eef550d0
    [    0.636271] [<c003b0ac>] (omap_dm_timer_probe) from [<c03269f0>] (platform_drv_probe+0x58/0xb8)
    [    0.636278]  r10:00000000 r8:00000000 r7:c07b0a5c r6:fffffdfb r5:eee4fa10 r4:ffffffed
    [    0.636309] [<c0326998>] (platform_drv_probe) from [<c03254d4>] (driver_probe_device+0x1e8/0x2b0)
    [    0.636316]  r7:c07b0a5c r6:00000000 r5:c0823d9c r4:eee4fa10
    [    0.636342] [<c03252ec>] (driver_probe_device) from [<c0325630>] (__driver_attach+0x94/0x98)
    [    0.636348]  r8:c075427c r7:00000000 r6:eee4fa44 r5:c07b0a5c r4:eee4fa10 r3:00000000
    [    0.636379] [<c032559c>] (__driver_attach) from [<c0323a40>] (bus_for_each_dev+0x5c/0x90)
    [    0.636385]  r6:c032559c r5:c07b0a5c r4:00000000 r3:00000000
    [    0.636410] [<c03239e4>] (bus_for_each_dev) from [<c0324dc4>] (driver_attach+0x24/0x28)
    [    0.636417]  r6:c07d64e0 r5:eef52600 r4:c07b0a5c
    [    0.636439] [<c0324da0>] (driver_attach) from [<c0324b40>] (bus_add_driver+0xf0/0x1fc)
    [    0.636452] [<c0324a50>] (bus_add_driver) from [<c0325c74>] (driver_register+0x80/0xfc)
    [    0.636458]  r7:00000077 r6:eef53040 r5:c07a29a8 r4:c07b0a5c
    [    0.636483] [<c0325bf4>] (driver_register) from [<c032688c>] (__platform_driver_register+0x4c/0x50)
    [    0.636489]  r5:c07a29a8 r4:c07a29a8
    [    0.636506] [<c0326840>] (__platform_driver_register) from [<c0754294>] (omap_dm_timer_driver_init+0x18/0x20)
    [    0.636517] [<c075427c>] (omap_dm_timer_driver_init) from [<c0009820>] (do_one_initcall+0x8c/0x1dc)
    [    0.636531] [<c0009794>] (do_one_initcall) from [<c0744f08>] (kernel_init_freeable+0x1a4/0x270)
    [    0.636538]  r10:00000000 r9:c078683c r8:c0786830 r7:00000077 r6:c07ec000 r5:00000006
    [    0.636561]  r4:c0793c08
    [    0.636577] [<c0744d64>] (kernel_init_freeable) from [<c056f450>] (kernel_init+0x10/0x100)
    [    0.636583]  r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c056f440
    [    0.636607]  r4:00000000
    [    0.636620] [<c056f440>] (kernel_init) from [<c000fc08>] (ret_from_fork+0x14/0x2c)
    [    0.636626]  r4:00000000 r3:eec8c000
    [    0.636640] ---[ end trace 74ff43b142d21e53 ]---
    [    0.636654] omap_timer 4ae20000.timer: omap_dm_timer_probe: pm_runtime_get_sync failed!
    [    0.636680] omap_timer: probe of 4ae20000.timer failed with error -22

  • Marco,

    The address for the RNG is correct. I'm pretty sure sure your device is a GP part (it seems likely you would know if it wasn't since you have to cryptographically sign boot images for a non-GP part).

    That said, not sure about the issue here. I'm confident it isn't some sort of access issue to those peripherals, but perhaps something is in the DTS that shouldn't be or something isn't present that should be.

    Can you provide the DTS file you use?

    Regards, Daniel

  • Marco,

    Without further feedback we will have to mark this as closed.

    Regards,
    Daniel