Hi All,
We are seeing carplay abrupt disconnection in one of our programme. Following is the snippet of log corresponding to the issue.
[ 1021.543447] CP_DOMAIN_ID KPI MARKER: 1021s530256120ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 418, 601), 0 at 1021530229120 ns
[ 1021.630978] CP_DOMAIN_ID KPI MARKER: 1021s617579454ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 411, 596), 1 at 1021617505787 ns
[ 1021.641991] CP_DOMAIN_ID KPI MARKER: 1021s628750454ns KPI CarPlay : _UpdateEstimatedRate : Req Rate 24000 Avg rate = 23954.295 diff in rate 46
[ 1021.715082] CP_DOMAIN_ID KPI MARKER: 1021s701870454ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 411, 596), 0 at 1021701837787 ns
[ 1021.754496] CP_DOMAIN_ID KPI MARKER: 1021s741207120ns KPI CarPlay : RTPJitterBuffer : Re-buffering: 0 ms buffered (0), 16 ms missing (384), 1 total) nowTS (19276320)
[ 1021.988794] CP_DOMAIN_ID KPI MARKER: 1021s975593787ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 427, 598), 1 at 1021975568120 ns
[ 1022.072573] CP_DOMAIN_ID KPI MARKER: 1022s059317787ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 427, 598), 0 at 1022059292787 ns
[ 1022.160371] CP_DOMAIN_ID KPI MARKER: 1022s147059454ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 421, 590), 1 at 1022146999120 ns
[ 1022.228117] CP_DOMAIN_ID KPI MARKER: 1022s214572787ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 421, 590), 0 at 1022214504787 ns
[ 1022.433464] CP_DOMAIN_ID KPI MARKER: 1022s419995787ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 424, 592), 1 at 1022419961787 ns
[ 1022.501722] CP_DOMAIN_ID KPI MARKER: 1022s488226787ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 424, 592), 0 at 1022488169120 ns
[ 1022.651950] CP_DOMAIN_ID KPI MARKER: 1022s638683787ns KPI CarPlay : _UpdateEstimatedRate : Req Rate 24000 Avg rate = 23953.072 diff in rate 47
[ 1022.668249] CP_DOMAIN_ID KPI MARKER: 1022s655016121ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 427, 601), 1 at 1022654986787 ns
[ 1022.743351] CP_DOMAIN_ID KPI MARKER: 1022s730120454ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 427, 601), 0 at 1022729997121 ns
[ 1022.891123] CP_DOMAIN_ID KPI MARKER: 1022s877941121ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 411, 585), 1 at 1022877922121 ns
[ 1023.018878] CP_DOMAIN_ID KPI MARKER: 1023s005608787ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 411, 585), 0 at 1023005583454 ns
[ 1023.161911] CP_DOMAIN_ID KPI MARKER: 1023s148623787ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 412, 595), 1 at 1023148580121 ns
[ 1023.194816] CP_DOMAIN_ID KPI MARKER: 1023s181597454ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 412, 595), 0 at 1023181561121 ns
[ 1023.346869] CP_DOMAIN_ID KPI MARKER: 1023s333569454ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 411, 592), 1 at 1023333544454 ns
[ 1023.454450] CP_DOMAIN_ID KPI MARKER: 1023s441272121ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 411, 592), 0 at 1023441259121 ns
[ 1023.602763] CP_DOMAIN_ID KPI MARKER: 1023s589560454ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 417, 598), 1 at 1023589533121 ns
[ 1023.632457] CP_DOMAIN_ID KPI MARKER: 1023s619138787ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 417, 598), 0 at 1023619074121 ns
[ 1023.660202] CP_DOMAIN_ID KPI MARKER: 1023s646968121ns KPI CarPlay : _UpdateEstimatedRate : Req Rate 24000 Avg rate = 23952.035 diff in rate 48
[ 1024.057739] CP_DOMAIN_ID KPI MARKER: 1024s044240787ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 422, 600), 1 at 1024044158121 ns
[ 1024.108688] CP_DOMAIN_ID KPI MARKER: 1024s095419454ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 422, 600), 0 at 1024095360787 ns
[ 1024.662558] CP_DOMAIN_ID KPI MARKER: 1024s649153787ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 432, 610), 1 at 1024649075787 ns
[ 1024.667818] CP_DOMAIN_ID KPI MARKER: 1024s654602121ns KPI CarPlay : _UpdateEstimatedRate : Req Rate 24000 Avg rate = 23951.039 diff in rate 49
[ 1024.806771] CP_DOMAIN_ID KPI MARKER: 1024s793452121ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 432, 610), 0 at 1024793386454 ns
[ 1024.940287] CP_DOMAIN_ID KPI MARKER: 1024s927097121ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 423, 608), 1 at 1024927068121 ns
[ 1025.030064] CP_DOMAIN_ID KPI MARKER: 1025s016617121ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 423, 608), 0 at 1025016508454 ns
[ 1025.164487] CP_DOMAIN_ID KPI MARKER: 1025s151299787ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 425, 607), 1 at 1025151272454 ns
[ 1025.221513] CP_DOMAIN_ID KPI MARKER: 1025s208288454ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 425, 607), 0 at 1025208262787 ns
[ 1025.371040] CP_DOMAIN_ID KPI MARKER: 1025s357764121ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 422, 613), 1 at 1025357709788 ns
[ 1025.436293] CP_DOMAIN_ID KPI MARKER: 1025s422997121ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 422, 613), 0 at 1025422940788 ns
[ 1025.589286] CP_DOMAIN_ID KPI MARKER: 1025s576031121ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 430, 610), 1 at 1025575980121 ns
[ 1025.674096] CP_DOMAIN_ID KPI MARKER: 1025s660809121ns KPI CarPlay : _UpdateEstimatedRate : Req Rate 24000 Avg rate = 23950.717 diff in rate 50
[ 1025.686262] CP_DOMAIN_ID KPI MARKER: 1025s672918121ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 430, 610), 0 at 1025672842454 ns
[ 1025.811166] CP_DOMAIN_ID KPI MARKER: 1025s797939788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 442, 624), 1 at 1025797895788 ns
[ 1025.874511] CP_DOMAIN_ID KPI MARKER: 1025s861207788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 442, 624), 0 at 1025861147121 ns
[ 1025.993271] CP_DOMAIN_ID KPI MARKER: 1025s980072121ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 444, 623), 1 at 1025979979121 ns
[ 1026.074283] CP_DOMAIN_ID KPI MARKER: 1026s060994454ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 444, 623), 0 at 1026060920454 ns
[ 1026.169891] CP_DOMAIN_ID KPI MARKER: 1026s156675788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 439, 624), 1 at 1026156638454 ns
[ 1026.286684] CP_DOMAIN_ID KPI MARKER: 1026s273509788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 439, 624), 0 at 1026273488454 ns
[ 1026.372615] CP_DOMAIN_ID KPI MARKER: 1026s359297121ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 437, 620), 1 at 1026359198454 ns
[ 1026.442229] CP_DOMAIN_ID KPI MARKER: 1026s429009788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 437, 620), 0 at 1026428972121 ns
[ 1026.563995] CP_DOMAIN_ID KPI MARKER: 1026s550706788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 432, 623), 1 at 1026550646788 ns
[ 1026.682480] CP_DOMAIN_ID KPI MARKER: 1026s669160454ns KPI CarPlay : _UpdateEstimatedRate : Req Rate 24000 Avg rate = 23950.225 diff in rate 50
[ 1026.711801] CP_DOMAIN_ID KPI MARKER: 1026s698558454ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 432, 623), 0 at 1026698510788 ns
[ 1026.780269] CP_DOMAIN_ID KPI MARKER: 1026s767074121ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 434, 617), 1 at 1026767047788 ns
[ 1026.866378] CP_DOMAIN_ID KPI MARKER: 1026s853044121ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 434, 617), 0 at 1026852949788 ns
[ 1026.991860] CP_DOMAIN_ID KPI MARKER: 1026s978624121ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 428, 618), 1 at 1026978573454 ns
[ 1027.058296] CP_DOMAIN_ID KPI MARKER: 1027s045095788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 428, 618), 0 at 1027045054788 ns
[ 1027.205044] CP_DOMAIN_ID KPI MARKER: 1027s191670454ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 425, 613), 1 at 1027191578121 ns
[ 1027.248628] CP_DOMAIN_ID KPI MARKER: 1027s234990121ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 425, 613), 0 at 1027234801788 ns
[ 1027.420746] CP_DOMAIN_ID KPI MARKER: 1027s407510788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 423, 608), 1 at 1027407466454 ns
[ 1027.458983] CP_DOMAIN_ID KPI MARKER: 1027s445734788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 423, 608), 0 at 1027445678121 ns
[ 1027.694022] CP_DOMAIN_ID KPI MARKER: 1027s680661454ns KPI CarPlay : _UpdateEstimatedRate : Req Rate 24000 Avg rate = 23950.238 diff in rate 50
[ 1028.020227] CP_DOMAIN_ID KPI MARKER: 1028s006896454ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 436, 626), 1 at 1028006815454 ns
[ 1028.076814] CP_DOMAIN_ID KPI MARKER: 1028s063508788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 436, 626), 0 at 1028063432121 ns
[ 1028.316842] CP_DOMAIN_ID KPI MARKER: 1028s303449788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 450, 620), 1 at 1028303392788 ns
[ 1028.367186] CP_DOMAIN_ID KPI MARKER: 1028s353746455ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 450, 620), 0 at 1028353638788 ns
[ 1028.533487] CP_DOMAIN_ID KPI MARKER: 1028s519973455ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 438, 622), 1 at 1028519919788 ns
[ 1028.589979] CP_DOMAIN_ID KPI MARKER: 1028s576675121ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 438, 622), 0 at 1028576602788 ns
[ 1028.701814] CP_DOMAIN_ID KPI MARKER: 1028s688427455ns KPI CarPlay : _UpdateEstimatedRate : Req Rate 24000 Avg rate = 23950.377 diff in rate 50
[ 1028.933095] CP_DOMAIN_ID KPI MARKER: 1028s919792788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 422, 608), 1 at 1028919732455 ns
[ 1029.005012] CP_DOMAIN_ID KPI MARKER: 1028s991628788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 422, 608), 0 at 1028991541788 ns
[ 1029.137778] CP_DOMAIN_ID KPI MARKER: 1029s124590788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 410, 608), 1 at 1029124569121 ns
[ 1029.210413] CP_DOMAIN_ID KPI MARKER: 1029s197159788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 410, 608), 0 at 1029197110788 ns
[ 1029.647390] CP_DOMAIN_ID KPI MARKER: 1029s634164788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 400, 600), 1 at 1029634130455 ns
[ 1029.708929] CP_DOMAIN_ID KPI MARKER: 1029s695652121ns KPI CarPlay : _UpdateEstimatedRate : Req Rate 24000 Avg rate = 23949.959 diff in rate 51
[ 1029.727280] CP_DOMAIN_ID KPI MARKER: 1029s714015455ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 400, 600), 0 at 1029713939788 ns
[ 1029.921736] CP_DOMAIN_ID KPI MARKER: 1029s908377121ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) (1221, 697), 1 at 1029908322121 ns
[ 1029.997903] CP_DOMAIN_ID KPI MARKER: 1029s984599121ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) (1221, 697), 0 at 1029984522121 ns
[ 1030.146395] CP_DOMAIN_ID KPI MARKER: 1030s133099788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) (1220, 673), 1 at 1030133028121 ns
[ 1030.286818] CP_DOMAIN_ID KPI MARKER: 1030s273619121ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) (1220, 673), 0 at 1030273583121 ns
[ 1030.364832] CP_DOMAIN_ID KPI MARKER: 1030s351590788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) (1209, 659), 1 at 1030351540455 ns
[ 1030.502900] CP_DOMAIN_ID KPI MARKER: 1030s489534788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) (1209, 659), 0 at 1030489442121 ns
[ 1030.581748] CP_DOMAIN_ID KPI MARKER: 1030s568468788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) (1193, 646), 1 at 1030568426121 ns
[ 1030.715606] CP_DOMAIN_ID KPI MARKER: 1030s702390121ns KPI CarPlay : _UpdateEstimatedRate : Req Rate 24000 Avg rate = 23949.770 diff in rate 51
[ 1030.738147] CP_DOMAIN_ID KPI MARKER: 1030s724923455ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) (1193, 646), 0 at 1030724899121 ns
[ 1030.801593] CP_DOMAIN_ID KPI MARKER: 1030s788313788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) (1177, 633), 1 at 1030788287121 ns
[ 1030.994895] CP_DOMAIN_ID KPI MARKER: 1030s981681455ns KPI CarPlay : AudioUtilsALSA : AudioStreamStop thread_join for input thread
[ 1031.001456] CP_DOMAIN_ID KPI MARKER: 1030s988270788ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) (1177, 633), 0 at 1030988252122 ns
[ 1031.001895] CP_DOMAIN_ID KPI MARKER: 1030s988745455ns KPI CarPlay : CCarPlayServiceCore : TouchEvt(x,y) ( 412, 605), 1 at 1030988735788 ns
[ 1031.005369] CP_DOMAIN_ID KPI MARKER: 1030s992103122ns KPI CarPlay : AudioUtilsALSA : AudioStreamStop thread_join for output thread
[ 1031.023144] CP_DOMAIN_ID KPI MARKER: 1031s009807455ns KPI CarPlay : ScreenUtils : Gstreamer - Screen stream stop called
[ 1031.023144]
[ 1031.032413] CP_DOMAIN_ID KPI MARKER: 1031s019092122ns KPI CarPlay : AirPlayReceiverSession : _ScreenTearDown entry
[ 1031.033245]
: Timeout waiting for hardware interrupt.
[ 1031.034087] cmd53 read error=-110
[ 1031.034277] moal_read_data_sync: read registers failed
PINMUX details:
pinctrl_usdhc2: usdhc2grp {
fsl,pins = <
MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059
MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059
MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059
MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059
>;
};
pinctrl_usdhc2_100mhz: usdhc2grp_100mhz {
fsl,pins = <
MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170b9
MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100b9
MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170b9
MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170b9
MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170b9
MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170b9
>;
};
pinctrl_usdhc2_200mhz: usdhc2grp_200mhz {
fsl,pins = <
MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170f9
MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100f9
MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170f9
MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170f9
MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170f9
MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170f9
>;
};
&usdhc2 {
pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = <&pinctrl_usdhc2>;
pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
bus-width = <4>;
non-removable;
/*no-1-8-v;*/
sd-uhs-ddr50;
keep-power-in-suspend;
status = "okay";
};
Could you please helps us resolve this issue.
Regards,
Shree
By enabling debug prints in SDIO/MMC driver we have found 2 abnormal behavior happening and need your support.
In our system, we have WLAN driver communicating to the chip over SDIO.
Issue1 :
Wifi Driver issued an RX and got a response back as interrupt 0x03 . For this , tasklet is issued and responded back that action is completed. But when we dump the data from Wifi driver side ,it is found as a duplicate data which was present in the buffer and there is no update from the WIFI chip. At this scenario we did not get and MMC/SDIO error.
[ 818.552201] HARMAN:: Calling moal_read_data_sync for wlan_interupt
[ 818.552265] mmc0: starting CMD53 arg 100000c4 flags 000001b5
[ 818.552283] mmc0: blksz 196 blocks 1 flags 00000200 tsac 1000 ms nsac 0
[ 818.552425] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000003
[ 818.552448] mmc0: harman:cmd valid and finish executing
[ 818.552485] mmc0: harman: sdhci_finish_data2
[ 818.552502] mmc0: Harman: returning interrupt
[ 818.552528] mmc0: harman sdhci_tasklet_finish
Issue 2:
After Issue 1, Wifi driver issued a Tx , and command 0x53 is issued for this . We got interrupt 0x01 as cmd response and for this we had written the data back to sdio which is same as normal working scenario. After this the chip should interrupt with mask “DATA END” which was not coming in this case. So as per our current analysis , it looks like a problem from chip side which didn’t interrupt for the data which we wrote .
[ 818.556140] mmc0: starting CMD53 arg 92001d00 flags 000001b5
[ 818.556160] mmc0: blksz 256 blocks 1 flags 00000100 tsac 1000 ms nsac 0
[ 818.556257] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
[ 818.556272] mmc0: harman:cmd valid and finish executing
[ 818.556284] mmc0: Harman: returning interrupt
During our Deeper analysis we have noticed 2 issues:-
[ 818.556140] mmc0: starting CMD53 arg 92001d00 flags 000001b5
[ 818.556160] mmc0: blksz 256 blocks 1 flags 00000100 tsac 1000 ms nsac 0
[ 818.556257] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
[ 818.556272] mmc0: harman:cmd valid and finish executing
[ 818.556284] mmc0: Harman: returning interrupt
[ 818.552201] HARMAN:: Calling moal_read_data_sync for wlan_interupt
[ 818.552265] mmc0: starting CMD53 arg 100000c4 flags 000001b5
[ 818.552283] mmc0: blksz 196 blocks 1 flags 00000200 tsac 1000 ms nsac 0
[ 818.552425] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000003
[ 818.552448] mmc0: harman:cmd valid and finish executing
[ 818.552485] mmc0: harman: sdhci_finish_data2
[ 818.552502] mmc0: Harman: returning interrupt
[ 818.552528] mmc0: harman sdhci_tasklet_finish
* ROM code will change the bit burst_length_enable setting
* to zero if this usdhc is choosed to boot system. Change
* it back here, otherwise it will impact the performance a
* lot. This bit is used to enable/disable the burst length
* for the external AHB2AXI bridge, it's usefully especially
* for INCR transfer because without burst length indicator,
* the AHB2AXI bridge does not know the burst length in
* advance. And without burst length indicator, AHB INCR
* transfer can only be converted to singles on the AXI side.
*/
writel(readl(host->ioaddr + SDHCI_HOST_CONTROL)
| ESDHC_BURST_LEN_EN_INCR,
host->ioaddr + SDHCI_HOST_CONTROL);
if (!(imx_data->socdata->flags & ESDHC_FLAG_HS200))
host->quirks2 |= SDHCI_QUIRK2_BROKEN_HS200;
/*
* errata ESDHC_FLAG_ERR004536 fix for MX6Q TO1.2 and MX6DL
* TO1.1, it's harmless for MX6SL
*/
writel(readl(host->ioaddr + 0x6c) | BIT(7),
host->ioaddr + 0x6c);
/* disable DLL_CTRL delay line settings */
writel(0x0, host->ioaddr + ESDHC_DLL_CTRL);
}
if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING)
sdhci_esdhc_ops.platform_execute_tuning =
esdhc_executing_tuning;
if (imx_data->socdata->flags & ESDHC_FLAG_ERR004536)
host->quirks |= SDHCI_QUIRK_BROKEN_ADMA;
if (imx_data->socdata->flags & ESDHC_FLAG_HS400)
host->quirks2 |= SDHCI_QUIRK2_CAPS_BIT63_FOR_HS400;
static struct esdhc_soc_data usdhc_imx6sl_data = {
.flags = ESDHC_FLAG_USDHC | ESDHC_FLAG_STD_TUNING
| ESDHC_FLAG_HAVE_CAP1 | ESDHC_FLAG_ERR004536
| ESDHC_FLAG_HS200,
};
Hi all,
More debugging log attached
[ 630.769590] select queue: tid=6, index=0
[ 630.775158] select queue: tid=6, index=0
[ 630.800221] select queue: tid=6, index=0
[ 630.814321] CP_DOMAIN_ID KPI MARKER: 630s800478073ns KPI CarPlay : ScreenUtils : Gstreamer - Screen stream stop called
[ 630.814321]
[ 630.822380] select queue: tid=6, index=0
[ 630.823824] mmc0: Timeout waiting for hardware interrupt.
[ 630.823881] sdhci: =========== REGISTER DUMP (mmc0)===========
[ 630.823902] sdhci: Sys addr: 0x57469560 | Version: 0x00000002
[ 630.823918] sdhci: Blk size: 0x00000100 | Blk cnt: 0x00000001
[ 630.823931] sdhci: Argument: 0x92000f00 | Trn mode: 0x00000003
[ 630.823946] sdhci: Present: 0x01f8858e | Host ctl: 0x00000023
[ 630.823963] sdhci: Power: 0x00000002 | Blk gap: 0x00000080
[ 630.823976] sdhci: Wake-up: 0x00000008 | Clock: 0x0000001f
[ 630.823988] sdhci: Timeout: 0x0000008f | Int stat: 0x00000000
[ 630.824002] sdhci: Int enab: 0x107f110b | Sig enab: 0x107f110b
[ 630.824015] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000003
[ 630.824031] sdhci: Caps: 0x07eb0000 | Caps_1: 0x0000a005
[ 630.824044] sdhci: Cmd: 0x0000353a | Max curr: 0x00ffffff
[ 630.824053] sdhci: Host ctl2: 0x00000008
[ 630.824065] sdhci: ADMA Err: 0x00000007 | ADMA Ptr: 0x6a040000
[ 630.824073] sdhci: ===========================================
[ 630.824172] mmc0: req done (CMD53): 0: 00002000 00000000 00000000 00000000
[ 630.824192] mmc0: 0 bytes transferred: -110
[ 630.825358] cmd53 write error=-110
[ 630.825404] mmc0: starting CMD52 arg 80000c01 flags 00000195
[ 630.825496] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
[ 630.825551] mmc0: req done (CMD52): 0: 00001001 00000000 00000000 00000000
[ 630.825595] host_to_card, write iomem (1) failed: -1
[ 630.825626] mmc0: starting CMD52 arg 90000004 flags 00000195
[ 630.825671] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
[ 630.825707] mmc0: req done (CMD52): 0: 00001004 00000000 00000000 00000000
[ 630.826205] mmc0: starting CMD53 arg 92000f00 flags 000001b5
[ 630.826222] mmc0: blksz 256 blocks 1 flags 00000100 tsac 1000 ms nsac 0
[ 630.826513] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000003
[ 630.826574] mmc0: req done (CMD53): 0: 00002000 00000000 00000000 00000000
[ 630.826593] mmc0: 256 bytes transferred: 0
[ 630.827088] uap0: 630.813400 : Data => FW
[ 630.829537] uap0: 630.815843 : Data => FW
[ 630.830932] uap0: 630.817243 : Data => FW
[ 630.831102] uap0: 630.817423 : Data => FW
[ 630.831241] uap0: 630.817564 : Data => FW
[ 630.831325] uap0: 630.817649 : Data => FW
[ 630.831437] uap0: 630.817760 : Data => FW
[ 630.831517] uap0: 630.817840 : Data => FW
[ 630.831661] 33081 : uap0 (bss=1): Data <= kernel
Regards,
Shree
The error log includes "[ 630.824065] sdhci: ADMA Err: 0x00000007 | ADMA Ptr: 0x6a040000".
Not sure which SoC platform you are using. You may check whether
ESDHC_FLAG_ERR004536 flag is enabled into drivers/mmc/host/sdhci-esdhc-imx.c for SoC platform you are using.
we are using IMX6Q platform and we don't see "ESDHC_FLAG_ERR004536" enabled.
static struct esdhc_soc_data usdhc_imx6q_data = {
.flags = ESDHC_FLAG_USDHC | ESDHC_FLAG_MAN_TUNING,
};
Yes. Performance will be impacted, the detailed impact depending on use case.
Actually to try this flag is used for debug purpose now because the error log indicates ADMA error. So we want to confirm whether the issue still exists without ADMA mode.
Can you please try to enable this flag and see whether the issue exists or not?