SD card issue in 5.4.28 and WARN() message while booting

Hi All,

We are porting the kernel version 5.4.28 for our SD820 based custom board.
Earlier, we were using 4.14.89 kernel but we ought to bring up the kernel-5.4.28
I downloaded source code from the below link and the branch is release/qcomlt-5.4

https://git.linaro.org/landing-teams/working/qualcomm/kernel.git/log/?h=release/qcomlt-5.4

Board is booting up and I am facing two issues in this kernel version.

1) Kernel is not detecting the SD card upon insertion. And getting the below message :

root@820-devkit:~# [ 621.133247] mmc0: Reset 0x4 never completed.
[ 621.133272] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 621.136576] mmc0: sdhci: Sys addr: 0x00000000 | Version: 0x00004902
[ 621.142912] mmc0: sdhci: Blk size: 0x00004008 | Blk cnt: 0x00000000
[ 621.149337] mmc0: sdhci: Argument: 0x00000c00 | Trn mode: 0x00000013
[ 621.155759] mmc0: sdhci: Present: 0x01f80206 | Host ctl: 0x00000019
[ 621.162183] mmc0: sdhci: Power: 0x00000001 | Blk gap: 0x00000000
[ 621.168606] mmc0: sdhci: Wake-up: 0x00000000 | Clock: 0x00000007
[ 621.175030] mmc0: sdhci: Timeout: 0x0000000a | Int stat: 0x00000000
[ 621.181454] mmc0: sdhci: Int enab: 0x00ff9003 | Sig enab: 0x00ff1003
[ 621.187878] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000
[ 621.194301] mmc0: sdhci: Caps: 0x322dc8b2 | Caps_1: 0x00008007
[ 621.200724] mmc0: sdhci: Cmd: 0x0000341a | Max curr: 0x00000000
[ 621.207148] mmc0: sdhci: Resp[0]: 0x00000000 | Resp[1]: 0x00000000
[ 621.213571] mmc0: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000
[ 621.219996] mmc0: sdhci: Host ctl2: 0x00000000
[ 621.226417] mmc0: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000001768bd200
[ 621.230758] mmc0: sdhci: ============================================
[ 621.338490] mmc0: Reset 0x4 never completed.
[ 621.338513] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 621.341815] mmc0: sdhci: Sys addr: 0x00000000 | Version: 0x00004902
[ 621.348153] mmc0: sdhci: Blk size: 0x00004008 | Blk cnt: 0x00000000
[ 621.354577] mmc0: sdhci: Argument: 0x80000c08 | Trn mode: 0x00000013
[ 621.361000] mmc0: sdhci: Present: 0x01f80206 | Host ctl: 0x00000019
[ 621.367423] mmc0: sdhci: Power: 0x00000001 | Blk gap: 0x00000000
[ 621.373846] mmc0: sdhci: Wake-up: 0x00000000 | Clock: 0x00000007
[ 621.380272] mmc0: sdhci: Timeout: 0x0000000a | Int stat: 0x00000000
[ 621.386693] mmc0: sdhci: Int enab: 0x00ff9003 | Sig enab: 0x00ff1003
[ 621.393118] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000
[ 621.399542] mmc0: sdhci: Caps: 0x322dc8b2 | Caps_1: 0x00008007
[ 621.405966] mmc0: sdhci: Cmd: 0x0000341a | Max curr: 0x00000000
[ 621.412389] mmc0: sdhci: Resp[0]: 0x00000000 | Resp[1]: 0x00000000
[ 621.418813] mmc0: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000
[ 621.425235] mmc0: sdhci: Host ctl2: 0x00000000
[ 621.431658] mmc0: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000001768bd200
[ 621.436000] mmc0: sdhci: ============================================

2) I am getting the below WARN() message and don’t know why.

[ 10.220141] arm-smmu da0000.iommu: probing hardware configuration…
[ 10.222728] arm-smmu da0000.iommu: SMMUv2 with:
[ 10.229234] arm-smmu da0000.iommu: stage 1 translation
[ 10.233452] arm-smmu da0000.iommu: address translation ops
[ 10.238660] arm-smmu da0000.iommu: non-coherent table walk
[ 10.244214] arm-smmu da0000.iommu: (IDR0.CTTW overridden by FW configuration)
[ 10.249783] arm-smmu da0000.iommu: stream matching with 4 register groups
[ 10.257095] arm-smmu da0000.iommu: 2 context banks (0 stage-2 only)
[ 10.263944] arm-smmu da0000.iommu: Supported page sizes: 0x63315000
[ 10.270443] arm-smmu da0000.iommu: Stage-1: 32-bit VA -> 36-bit IPA
[ 10.278264] ------------[ cut here ]------------
[ 10.283104] gpu_gx status stuck at ‘off’
[ 10.283130] WARNING: CPU: 0 PID: 1 at drivers/clk/qcom/gdsc.c:145 gdsc_toggle_logic+0xc8/0xd0
[ 10.291604] Modules linked in:
[ 10.300018] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.4.0-qcomlt-arm64 #34
[ 10.302974] Hardware name: Mistral 820 Nano SoM Development Kit (DT)
[ 10.310178] pstate: 60000005 (nZCv daif -PAN -UAO)
[ 10.316511] pc : gdsc_toggle_logic+0xc8/0xd0
[ 10.321110] lr : gdsc_toggle_logic+0xc8/0xd0
[ 10.325535] sp : ffff80001003b9f0
[ 10.329787] x29: ffff80001003b9f0 x28: 0000000000000007
[ 10.333004] x27: ffff80001166f068 x26: 0000000000000001
[ 10.338385] x25: ffff800011c26a28 x24: 0000000000000000
[ 10.343681] x23: ffff0000f886e010 x22: 0000000000000001
[ 10.348975] x21: 0000000000000000 x20: 00000000ffffff92
[ 10.354270] x19: ffff800011c26a28 x18: ffffffffffffffff
[ 10.359565] x17: 0000000000000001 x16: 0000000000000000
[ 10.364861] x15: ffff800011b498c8 x14: 0720072007200720
[ 10.370156] x13: 0720072007200720 x12: 0720072007200720
[ 10.375451] x11: 0720072007200720 x10: 0720072007200720
[ 10.380746] x9 : ffff80001003b9f0 x8 : 27207461206b6375
[ 10.386041] x7 : 7473207375746174 x6 : ffff800011d8c7ac
[ 10.391337] x5 : 0000000000000000 x4 : 0000000000000000
[ 10.396632] x3 : 00000000ffffffff x2 : ffff8000ec500000
[ 10.401926] x1 : fd7208cb6bead300 x0 : 0000000000000000
[ 10.407223] Call trace:
[ 10.412515] gdsc_toggle_logic+0xc8/0xd0
[ 10.414688] gdsc_enable+0xd4/0x210
[ 10.418858] genpd_power_on.part.25+0x17c/0x208
[ 10.422065] genpd_power_on.part.25+0x84/0x208
[ 10.426580] __genpd_dev_pm_attach+0x1a0/0x268
[ 10.431094] genpd_dev_pm_attach+0x64/0x70
[ 10.435525] dev_pm_domain_attach+0x48/0x50
[ 10.439603] platform_drv_probe+0x38/0xa0
[ 10.443681] really_probe+0x27c/0x458
[ 10.447845] driver_probe_device+0x12c/0x148
[ 10.451491] device_driver_attach+0x6c/0x90
[ 10.455831] __driver_attach+0xb0/0x160
[ 10.459737] bus_for_each_dev+0x74/0xc8
[ 10.463556] driver_attach+0x20/0x28
[ 10.467376] bus_add_driver+0x154/0x238
[ 10.471195] driver_register+0x60/0x110
[ 10.474755] __platform_driver_register+0x40/0x48
[ 10.478582] arm_smmu_driver_init+0x18/0x20
[ 10.483440] do_one_initcall+0x5c/0x1b0
[ 10.487434] kernel_init_freeable+0x1a4/0x24c
[ 10.491253] kernel_init+0x10/0x108
[ 10.495761] ret_from_fork+0x10/0x18
[ 10.499066] —[ end trace 1dee3e0125abd77a ]—

Kindly let us know the resolution for these issues.

Thanks,
Shiva Shankar K.

@danielt
@loic

Which system are you running (Android, Yocto, Debian)?

This branch does not ‘fully’ support the 820c and you very likely to see issues, there is currently no plan to support 820c on 5.4 (Linaro qcomlt). however if you browse the forum you’ll certainly find some thread related to 5.4 porting and alternative branches for android.

You can also try the 5.7 branch, which is supposed to contain all the fixes for the 820c:
branch: https://git.linaro.org/landing-teams/working/qualcomm/kernel.git/log/?h=release/qcomlt-5.7
snapshot: https://snapshots.linaro.org/96boards/dragonboard820c/linaro/debian/536

Hello Loic,

Thanks for your quick response. We are running Debian. I will check on those points you have mentioned.

Regards,
Shiva Shankar K.

Hi Loic,

Its been a while since I updated you last time. We are using the same 5.7 release branch as suggested, here I am unable to bring up USB host and SD card, also I am getting “thermal shutdown” following which board goes off. I am getting the below message for the usb, the SD card and thermal shut down:
Note : Few commits back
USB log message :
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
[ 32.377518] xhci-hcd xhci-hcd.1.auto: Abort failed to stop command ring: -110
[ 32.393586] xhci-hcd xhci-hcd.1.auto: Host halt failed, -110
[ 32.393626] xhci-hcd xhci-hcd.1.auto: xHCI host controller not responding, assume dead
[ 32.398341] xhci-hcd xhci-hcd.1.auto: HC died; cleaning up
[ 32.406325] xhci-hcd xhci-hcd.1.auto: Error while assigning device slot ID

[ 32.426332] xhci-hcd xhci-hcd.1.auto: Max number of devices this xHCI host supports is 64.
[ 32.426409] usb usb3-port1: couldn’t allocate usb_device
root@820-devkit:~#

SD card log message :
root@820-devkit:~# [ 621.133247] mmc0: Reset 0x4 never completed.
[ 621.133272] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 621.136576] mmc0: sdhci: Sys addr: 0x00000000 | Version: 0x00004902
[ 621.142912] mmc0: sdhci: Blk size: 0x00004008 | Blk cnt: 0x00000000
[ 621.149337] mmc0: sdhci: Argument: 0x00000c00 | Trn mode: 0x00000013
[ 621.155759] mmc0: sdhci: Present: 0x01f80206 | Host ctl: 0x00000019
[ 621.162183] mmc0: sdhci: Power: 0x00000001 | Blk gap: 0x00000000
[ 621.168606] mmc0: sdhci: Wake-up: 0x00000000 | Clock: 0x00000007
[ 621.175030] mmc0: sdhci: Timeout: 0x0000000a | Int stat: 0x00000000
[ 621.181454] mmc0: sdhci: Int enab: 0x00ff9003 | Sig enab: 0x00ff1003
[ 621.187878] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000
[ 621.194301] mmc0: sdhci: Caps: 0x322dc8b2 | Caps_1: 0x00008007
[ 621.200724] mmc0: sdhci: Cmd: 0x0000341a | Max curr: 0x00000000
[ 621.207148] mmc0: sdhci: Resp[0]: 0x00000000 | Resp[1]: 0x00000000
[ 621.213571] mmc0: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000
[ 621.219996] mmc0: sdhci: Host ctl2: 0x00000000
[ 621.226417] mmc0: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000001768bd200
[ 621.230758] mmc0: sdhci: ============================================
[ 621.338490] mmc0: Reset 0x4 never completed.
[ 621.338513] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 621.341815] mmc0: sdhci: Sys addr: 0x00000000 | Version: 0x00004902
[ 621.348153] mmc0: sdhci: Blk size: 0x00004008 | Blk cnt: 0x00000000
[ 621.354577] mmc0: sdhci: Argument: 0x80000c08 | Trn mode: 0x00000013
[ 621.361000] mmc0: sdhci: Present: 0x01f80206 | Host ctl: 0x00000019
[ 621.367423] mmc0: sdhci: Power: 0x00000001 | Blk gap: 0x00000000
[ 621.373846] mmc0: sdhci: Wake-up: 0x00000000 | Clock: 0x00000007
[ 621.380272] mmc0: sdhci: Timeout: 0x0000000a | Int stat: 0x00000000
[ 621.386693] mmc0: sdhci: Int enab: 0x00ff9003 | Sig enab: 0x00ff1003
[ 621.393118] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000
[ 621.399542] mmc0: sdhci: Caps: 0x322dc8b2 | Caps_1: 0x00008007
[ 621.405966] mmc0: sdhci: Cmd: 0x0000341a | Max curr: 0x00000000
[ 621.412389] mmc0: sdhci: Resp[0]: 0x00000000 | Resp[1]: 0x00000000
[ 621.418813] mmc0: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000
[ 621.425235] mmc0: sdhci: Host ctl2: 0x00000000
[ 621.431658] mmc0: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000001768bd200
[ 621.436000] mmc0: sdhci: ============================================

Thermal Shutdown log message :
[ OK ] Stopped Create System Users.
[ OK ] Stopped Remount Root and Kernel File Systems.
[ OK ] Reached target Shutdown.
[ OK ] Reached target Final Step.
[ OK ] Started Power-Off.
[ OK ] Reached target Power-Off.
[ 79.580396] systemd-journald[293]: Received SIGTERM from PID 1 (systemd-shutdow).
[ 79.811821] EXT4-fs (sda1): re-mounted. Opts: (null)
[ 80.027180] xhci-hcd xhci-hcd.1.auto: Host halt failed, -110
[ 80.027731] arm-smmu b40000.iommu: removing device with active domains!
[ 80.035819] sd 0:0:0:5: [sdf] Synchronizing SCSI cache
[ 80.038902] sd 0:0:0:4: [sde] Synchronizing SCSI cache
[ 80.043957] sd 0:0:0:3: [sdd] Synchronizing SCSI cache
[ 80.048953] sd 0:0:0:2: [sdc] Synchronizing SCSI cache
[ 80.054246] sd 0:0:0:1: [sdb] Synchronizing SCSI cache
[ 80.059312] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[ 80.137836] arm-smmu d40000.iommu: removing device with active domains!
[ 80.144966] arm-smmu d00000.iommu: removing device with active domains!
[ 80.146407] reboot: Power down

Kindly help us resolving these issues.

@danielt
@srini
@Loic

Regards,
Shiva Shankar K.