Bug 4337

Summary: [SYS940X] S3 issue when booting the installed yocto on sd card
Product: [Build System, Metadata & Runtime] BSPs Reporter: Qian Yi <yi.qian>
Component: bsps-meta-intelAssignee: Darren Hart <dvhart>
Status: RESOLVED WONTFIX QA Contact:
Severity: normal    
Priority: Medium CC: dvhart, tom.zanussi
Version: 1.3   
Target Milestone: 1.6   
Hardware: TunnelCreek   
OS: x86   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)

Description Qian Yi 2013-04-18 05:22:44 UTC
Many errors will be popped up in yocto when the system resume back from s3.This issue will only happen when we used the installed yocto on the sd card. If we use the yocto on usb disk, there is no such issue. After these errors were reported, all the shell commands were not available. It looks like root file system partition was not successfully mounted. At the same time, I tried s3 sleep with the yocto on sd card using the board shipped bios instead of OC bios and found on the shipped bios, this issue still occurred.

the below are the error messages:

pch_gpio 0000:02:00.2: pci_enable_wake Failed --22 EXT3-fs error (device mmcblk0p2): ext3_find_entry: reading directory #236177 off set 0 EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=156027, block=622674
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=105940, block=425990
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=105940, block=425990
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=105940, block=425990
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=228158, block=917513
EXT3-fs (mmcblk0p2): previous I/O error to superblock detected EXT3-fs (mmcblk0p2): I/O error while writing superblock @sys940x:/home/rEXT3-fs error (device mmcblk0p2): ext3_find_entry: reading direc tory #236177 offset 0 oot# EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=399135, block=1606077
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=277179, block=1114131
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=105928, block=425989
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=155823, block=622661
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=105928, block=425989
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=155978, block=622671
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=155978, block=622671
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=156027, block=622674
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=105928, block=425989
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=155823, block=622661
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=105928, block=425989
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=155978, block=622671
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=155978, block=622671
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=156027, block=622674
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=105928, block=425989
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=155823, block=622661
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=105928, block=425989
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=155978, block=622671
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=155978, block=622671
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=156027, block=622674
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=105928, block=425989
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=155823, block=622661
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=105928, block=425989
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=155978, block=622671
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=155978, block=622671
EXT3-fs (mmcblk0p2): I/O error while writing superblock EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=156027, block=622674
EXT3-fs (mmcblk0p2): I/O error while writing superblock
journal_bmap: journal block not found at offset 234 on mmcblk0p2 Aborting journal on device mmcblk0p2.
JBD: I/O error detected when updating journal superblock for mmcblk0p2.

EXT3-fs error (device mmcblk0p2): ext3_get_inode_loc: unable to read inode block
 - inode=228158, block=917513
EXT3-fs (mmcblk0p2): I/O error while writing superblock
Comment 1 Darren Hart 2013-04-18 15:01:34 UTC
The exact board you observed this on was an Inforce SYS9450 I believe, is that correct?
Comment 2 Qian Yi 2013-04-19 01:45:17 UTC
(In reply to comment #1)
> The exact board you observed this on was an Inforce SYS9450 I believe, is
> that correct?
Yes, correct
Comment 3 Qian Yi 2013-04-19 08:17:06 UTC
These two days, I did one more investigation:before the bios jump to the os s3 wake vector, I used itp to reinitialize the sdio controller, eg:reset the controller, set voltage, configure the speed, clock , bus width, timeout, etc. And then I released the halt in itp and let the system go, but the error still existed. Another new symptom I found: this error will sometimes also occur after we type the command "echo mem>/sys/power/state" before the hardware really goes to sleep.
Comment 4 Qian Yi 2013-04-25 01:49:44 UTC
Darren helpped us build a new image with CONFIG_MMC_UNSAFE_RESUME enabled. The new image can solve this issue, so this bug can be closed
Comment 5 Darren Hart 2013-04-25 04:55:11 UTC
Thanks for reporting the issue and your help testing the images Quian Yi. We'll keep this open until we have a fix committed to the source repository. I'm not sure what that will be yet, but we at least know where to look.

The problem with using CONFIG_MMC_UNSAFE_RESUME on a board with a removable MMC device is that it assumes the card will not be removed while suspended. This cannot be guaranteed unless the device is either inaccessible or soldered down. The option doesn't fix the underlying cause, it just avoids the problem but not bothering to properly prepare for and restore from suspend.

More investigation is required for a proper fix.
Comment 6 Darren Hart 2014-06-09 22:46:03 UTC
The SYS940X has been merged in master with intel-core2-32 as the emgd driver is no longer available. As we have not seen much interest in this particular platform, I am marking this as WONTFIX. We can reopen if someone has a real-world issue with it.