Bug: sdhost-bcm2835 3f202000.mmc: timeout waiting for hardware interrupt.
Phil Elwell
phil at raspberrypi.org
Wed May 31 03:17:24 PDT 2017
Hi Stefan,
On 26/05/2017 16:50, Stefan Wahren wrote:
> Hi,
>
> i noticed that the RPI2 with next-20170526 and bcm2835_defconfig doesn't boot from SD card [1]. At least i was able to fix the NULL pointer dereference [2]. Now i'm getting the output see below. I try to narrow this down, but maybe someone already has an idea.
>
> Regards
> Stefan
>
> [1] - https://storage.kernelci.org/next/master/next-20170526/arm/bcm2835_defconfig/lab-collabora/boot-bcm2836-rpi-2-b.txt
> [2] - https://github.com/lategoodbye/rpi-zero/commit/ff0b8c7e3f6a4d1b6dfe99710fa9ee333e2b8886
>
> [ 0.328506] sdhci: Secure Digital Host Controller Interface driver
> [ 0.330949] sdhci: Copyright(c) Pierre Ossman
> [ 0.471038] sdhost-bcm2835 3f202000.mmc: loaded - DMA enabled (>1)
> [ 0.473582] sdhci-pltfm: SDHCI platform and OF driver helper
> [ 0.476764] ledtrig-cpu: registered to indicate activity on CPUs
> [ 0.479552] usbcore: registered new interface driver usbhid
> [ 0.481930] usbhid: USB HID core driver
> [ 0.484411] bcm2835-mbox 3f00b880.mailbox: mailbox enabled
> [ 0.488231] oprofile: using timer interrupt.
> [ 0.492227] NET: Registered protocol family 10
> [ 0.496233] Segment Routing with IPv6
> [ 0.498773] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
> [ 0.502518] NET: Registered protocol family 17
> [ 0.510802] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 87, base_baud = 0) is a PL011 rev2
> [ 0.852460] mmc0: host does not support reading read-only switch, assuming write-enable
> [ 0.860971] mmc0: new high speed SDHC card at address 0001
> [ 0.875465] mmcblk0: mmc0:0001 00000 29.8 GiB
> [ 1.397285] console [ttyAMA0] enabled
> [ 1.406137] raspberrypi-firmware soc:firmware: Attached to firmware from 2017-04-27 17:19
> [ 1.423787] vc4_hdmi 3f902000.hdmi: vc4-hdmi-hifi <-> 3f902000.hdmi mapping ok
> [ 1.434811] mmcblk0: p1 p2
> [ 1.441932] vc4-drm soc:gpu: bound 3f902000.hdmi (ops vc4_hdmi_ops)
> [ 1.452869] vc4-drm soc:gpu: bound 3f806000.vec (ops vc4_vec_ops)
> [ 1.462502] vc4-drm soc:gpu: bound 3f400000.hvs (ops vc4_hvs_ops)
> [ 1.472183] vc4-drm soc:gpu: bound 3f206000.pixelvalve (ops vc4_crtc_ops)
> [ 1.482493] vc4-drm soc:gpu: bound 3f207000.pixelvalve (ops vc4_crtc_ops)
> [ 1.492658] vc4-drm soc:gpu: bound 3f807000.pixelvalve (ops vc4_crtc_ops)
> [ 1.502596] cma: cma_alloc: alloc failed, req-size: 4096 pages, ret: -12
> [ 1.512404] vc4-drm soc:gpu: failed to allocate buffer with size 16777216
> [ 1.522337] cma: cma_alloc: alloc failed, req-size: 4096 pages, ret: -12
> [ 1.532182] vc4-drm soc:gpu: failed to allocate buffer with size 16777216
> [ 1.542155] [drm:vc4_bo_create] *ERROR* Failed to allocate from CMA:
> [ 1.551681] [drm] num bos allocated: 0
> [ 1.558530] [drm] size bos allocated: 0kb
> [ 1.565612] [drm] num bos used: 0
> [ 1.571938] [drm] size bos used: 0kb
> [ 1.578483] [drm] num bos cached: 0
> [ 1.584922] [drm] size bos cached: 0kb
> [ 1.591580] vc4_v3d 3fc00000.v3d: Failed to allocate memory for tile binning: -12. You may need to enable CMA or give it more memory.
> [ 1.609589] vc4-drm soc:gpu: failed to bind 3fc00000.v3d (ops vc4_v3d_ops): -12
> [ 1.621480] vc4-drm soc:gpu: master bind failed: -12
> [ 1.629515] vc4_v3d: probe of 3fc00000.v3d failed with error -12
> [ 1.715334] dwc2 3f980000.usb: DWC OTG Controller
> [ 1.723064] dwc2 3f980000.usb: new USB bus registered, assigned bus number 1
> [ 1.733085] dwc2 3f980000.usb: irq 39, io mem 0x3f980000
> [ 1.742503] hub 1-0:1.0: USB hub found
> [ 1.749074] hub 1-0:1.0: 1 port detected
> [ 1.756656] ALSA device list:
> [ 1.762420] No soundcards found.
> [ 1.798146] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
> [ 1.812372] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
> [ 1.830538] devtmpfs: mounted
> [ 1.841464] Freeing unused kernel memory: 1024K
Does this jump in time look reasonable to you? To me it looks like the problem we had with max_cpus=1 on an SMP configuration before we marked the first page as reserved. The kernel allocator would eventually allocate page zero for some application (it was usually audio-related), at which point the remaining spinning CPUs would execute semi-random code with interesting side effects. A bogus update to the system clock would be enough to trigger an apparent timeout when in fact the interval was much shorter.
> [ 223.667700] sdhost-bcm2835 3f202000.mmc: timeout waiting for hardware interrupt.
> [ 223.667701] sdhost-bcm2835 3f202000.mmc: =========== REGISTER DUMP ===========
> [ 223.667702] sdhost-bcm2835 3f202000.mmc: SDCMD 0x00004052
> [ 223.667702] sdhost-bcm2835 3f202000.mmc: SDARG 0x00021e18
> [ 223.667699] sdhost-bcm2835 3f202000.mmc: SDTOUT 0x017d2a20
> [ 223.667702] sdhost-bcm2835 3f202000.mmc: SDCDIV 0x00000003
> [ 223.667705] sdhost-bcm2835 3f202000.mmc: SDRSP0 0x00000900
> [ 223.667703] sdhost-bcm2835 3f202000.mmc: SDRSP1 0x00001269
> [ 223.667703] sdhost-bcm2835 3f202000.mmc: SDRSP2 0x7fffffff
> [ 223.667705] sdhost-bcm2835 3f202000.mmc: SDRSP3 0x00024007
> [ 223.667705] sdhost-bcm2835 3f202000.mmc: SDHSTS 0x00000081
> [ 223.667701] sdhost-bcm2835 3f202000.mmc: SDVDD 0x00000001
> [ 223.667702] sdhost-bcm2835 3f202000.mmc: SDEDM 0x00010831
> [ 223.667702] sdhost-bcm2835 3f202000.mmc: SDHCFG 0x0000040e
> [ 223.667700] sdhost-bcm2835 3f202000.mmc: SDHBCT 0x00000200
> [ 223.667699] sdhost-bcm2835 3f202000.mmc: SDHBLC 0x00000001
> [ 223.667699] sdhost-bcm2835 3f202000.mmc: ===========================================
>
Phil
More information about the linux-rpi-kernel
mailing list