Question about "0xDEAD2003"

I’m running a hypervisor in Jetson Xavier NX. The Guest OS is Jetson Linux. After shutting down the Guest OS, I need to use the sdmmc driver in the hypervisor. It returns the “0xdead2003” after accessing sdmmc register. However. it doesn’t happen before the Guest OS runs. So, I think the Guest OS may set some registers that lead to this result. I search the information about “0xdead2003”, and find that the MISCREG_CCROC_ERR_CONFIG register, the ERD bit, and inband errors may be related to it.
Is there any introduction to “0xdead2003”? How to reset the relative register to make the sdmmc available again?

Don’t know what you are talking about.

We don’t support hypervisor on jetson. Also, MISCREG_CCROC_ERR_CONFIG register seems not related to sdmmc directly, but more like a general register from CCPLEX.

Recently, I have ported a hypervisor on NX board.
Now, I test this register in Linux without the hypervisor. When I access some registers like sdmmc with “devmem”, it returns the “0xdead2003”, and the following message.

chen@chen-desktop:~$ sudo busybox devmem 0x3460000
0xDEAD2003
[   38.501409] CPU:0, Error:CBB-NOC@0x2300000,irq=478
[   38.501520] **************************************
[   38.501603] * For more Internal Decode Help
[   38.501677] *     http://nv/cbberr
[   38.501738] * NVIDIA userID is required to access
[   38.501817] **************************************
[   38.501902] CPU:0, Error:CBB-NOC
[   38.501963]  Error Logger            : 0
[   38.502027]  ErrLog0                 : 0x80030000
[   38.502093]    Transaction Type      : RD  - Read, Incrementing
[   38.502196]    Error Code            : SLV
[   38.502258]    Error Source          : Target
[   38.502330]    Error Description     : Target error detected by CBB slave
[   38.502454]    AXI2APB_4 bridge error: SFIFONE - Status FIFO Not Empty interrupt[   38.502574]         AXI2APB_4 bridge error: TIM - Timer(Timeout) interrupt
[   38.502732]    AXI2APB_4 bridge error: RDFIFOF - Read Response FIFO Full interrupt[   38.503308]       Packet header Lock    : 0
[   38.503595]    Packet header Len1    : 3
[   38.503874]    NOC protocol version  : version >= 2.7
[   38.504253]  ErrLog1                 : 0x319c20
[   38.504510]  ErrLog2                 : 0x0
chen@chen-desktop:~$ [   38.506598]       RouteId               : 0x319c20
[   38.511586]    InitFlow              : ccroc_p2ps/I/ccroc_p2ps
[   38.516401]    Targflow              : axis_satellite_axi2apb_p2pm/T/axis_satellite_axi2apb_p2pm
[   38.524098]    TargSubRange          : 78
[   38.527511]    SeqId                 : 0
[   38.530141]  ErrLog3                 : 0x20000
[   38.533721]  ErrLog4                 : 0x0
[   38.536629]    Address               : 0x3460000 -- /sdhci@3460000 + 0x0
[   38.542042]  ErrLog5                 : 0x809f850
[   38.545460]    Non-Modify            : 0x1
[   38.549037]    AXI ID                : 0x10
[   38.552191]    Master ID             : CCPLEX
[   38.555426]    Security Group(GRPSEC): 0x7e
[   38.559367]    Cache                 : 0x0 -- Non-cacheable/Non-Bufferable)
[   38.565401]    Protection            : 0x2 -- Unprivileged, Non-Secure, Data Access
[   38.571880]    FALCONSEC             : 0x0
[   38.575029]    Virtual Queuing Channel(VQC): 0x0
[   38.580011]  **************************************
[   38.584642] kernel BUG at /dvs/git/dirty/git-master_linux/kernel/nvidia/drivers/platform/tegra/tegra_cbb.c:839!
[   38.594890] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
[   38.600050] Modules linked in: fuse xt_conntrack ipt_MASQUERADE nf_nat_masquerade_ipv4 nf_conntrack_netlink nfnetlink xt_addrtype iptable_filter iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 bnep nf_nat_ipv4 nfs
[   38.632614] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.9.253-tegra #1
[   38.639160] Hardware name: NVIDIA Jetson Xavier NX Developer Kit (DT)
[   38.645739] task: ffffff8009e913c0 task.stack: ffffff8009e80000
[   38.651597] PC is at tegra_cbb_error_isr+0x1a0/0x1a8
[   38.656579] LR is at tegra_cbb_error_isr+0xc8/0x1a8
[   38.661478] pc : [<ffffff8008cb4e88>] lr : [<ffffff8008cb4db0>] pstate: 604001c5
[   38.669088] sp : ffffffc1ffd03e50
[   38.672239] x29: ffffffc1ffd03e50 x28: 0000000000000005 
[   38.677747] x27: 00000000000001c0 x26: 0000000000000001 
[   38.683523] x25: ffffff800a1ef000 x24: ffffff8009836018 
[   38.688348] x23: ffffff8009517300 x22: 0000000000000001 
[   38.693596] x21: 00000000000001de x20: ffffff800a03b7e0 
[   38.698937] x19: ffffff800a03b7e0 x18: 0000000000000010 
[   38.704961] x17: 0000007f9b21e128 x16: ffffff80080b9328 
[   38.710400] x15: ffffffffffffffff x14: ffffff808a16e5b7 
[   38.716175] x13: ffffff800a16e5c5 x12: 0000000000000000 
[   38.722109] x11: 0000000005f5e0ff x10: 00000000000003f6 
[   38.727551] x9 : 00000000ffffffd0 x8 : ffffff80083d7080 
[   38.733322] x7 : ffffff8009ed44a8 x6 : 0000000000000000 
[   38.739084] x5 : 0000000000000000 x4 : ffffffc1ffd04be8 
[   38.744422] x3 : ffffffc1ffd04be8 x2 : 0000000000000007 
[   38.749759] x1 : ffffff8009e913c0 x0 : 0000000000010001 
[   38.755095] 
[   38.756254] Process swapper/0 (pid: 0, stack limit = 0xffffff8009e80000)
[   38.762631] Call trace:
[   38.764997] [<ffffff8008cb4e88>] tegra_cbb_error_isr+0x1a0/0x1a8
[   38.770600] [<ffffff8008121960>] __handle_irq_event_percpu+0x68/0x288
[   38.776722] [<ffffff8008121ba8>] handle_irq_event_percpu+0x28/0x60
[   38.782842] [<ffffff8008121c30>] handle_irq_event+0x50/0x80
[   38.788180] [<ffffff8008125ac4>] handle_fasteoi_irq+0xd4/0x1c0
[   38.793602] [<ffffff8008120914>] generic_handle_irq+0x34/0x50
[   38.798859] [<ffffff8008121000>] __handle_domain_irq+0x68/0xc0
[   38.804541] [<ffffff8008080d44>] gic_handle_irq+0x5c/0xb0
[   38.809615] [<ffffff8008082c28>] el1_irq+0xe8/0x194
[   38.814087] [<ffffff8008ba2300>] cpuidle_enter_state+0xb8/0x380
[   38.819595] [<ffffff8008ba263c>] cpuidle_enter+0x34/0x48
[   38.825278] [<ffffff80081113bc>] call_cpuidle+0x44/0x70
[   38.830094] [<ffffff8008111738>] cpu_startup_entry+0x1b0/0x200
[   38.836133] [<ffffff8008f6587c>] rest_init+0x84/0x90
[   38.841292] [<ffffff8009610b68>] start_kernel+0x374/0x38c
[   38.846458] [<ffffff8009610204>] __primary_switched+0x80/0x94
[   38.852337] ---[ end trace ddca260504df1967 ]---
[   38.870633] Kernel panic - not syncing: Fatal exception in interrupt
[   38.870782] SMP: stopping secondary CPUs
[   38.870895] Kernel Offset: disabled
[   38.870992] Memory Limit: none
[   38.874015] trusty-log panic notifier - trusty version Built: 02:25:37 Apr 17 2022 [   38.894763] Rebooting in 5 seconds..

I’m not familiar with the mechanism of Jetson Linux, and looking for the reasons caused this error. It seems that the Control Backbone(CBB) has some restrictions. Is there any documents for this error?
Thank you for your help.

It looks like the software is not in sync and it is trying to access registers when the controller is off or clock is not there.

Thank you for your reply.
I guess resetting registers can solve the problem above. Does Xavier NX provide the mechanism to reset all of the registers? Normally, powering off the board can make a cold reset. However, I need to keep my hypervisor running after shutting down the Guest OS. So I need to realize a function in the hypervisor for resetting registers. Does the Jetson Linux have a similar driver which I can refer to?

That is the sdhci driver itself…

I need to reset all (or most) of the registers on board, including the sdhci. I think it could eliminate the effect made by Guest OS (Jetson Linux).

There is no such function.

Thank you for your help.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.