Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MMC falling to PIO #985

Closed
kukabu opened this issue May 26, 2015 · 10 comments
Closed

MMC falling to PIO #985

kukabu opened this issue May 26, 2015 · 10 comments

Comments

@kukabu
Copy link

kukabu commented May 26, 2015

I update RPi via rpi-update to Hexxeh/rpi-firmware@4f95c89 and see it in the dmesg:

[ 1.376992] mmc-bcm2835 20300000.mmc: mmc-bcm2835: Unable to initialise DMA channels. Falling back to PIO

@kukabu
Copy link
Author

kukabu commented May 26, 2015

May be it helps.

root@rpi:~# for F in /proc/device-tree/soc/mmc@7e300000/* ; do echo $F; hexdump -C $F; done
/proc/device-tree/soc/mmc@7e300000/bus-width
00000000  00 00 00 04                                       |....|
00000004
/proc/device-tree/soc/mmc@7e300000/clocks
00000000  00 00 00 02                                       |....|
00000004
/proc/device-tree/soc/mmc@7e300000/compatible
00000000  62 72 63 6d 2c 62 63 6d  32 38 33 35 2d 6d 6d 63  |brcm,bcm2835-mmc|
00000010  00                                                |.|
00000011
/proc/device-tree/soc/mmc@7e300000/dma-names
00000000  74 78 00 72 78 00                                 |tx.rx.|
00000006
/proc/device-tree/soc/mmc@7e300000/interrupts
00000000  00 00 00 02 00 00 00 1e                           |........|
00000008
/proc/device-tree/soc/mmc@7e300000/linux,phandle
00000000  00 00 00 10                                       |....|
00000004
/proc/device-tree/soc/mmc@7e300000/name
00000000  6d 6d 63 00                                       |mmc.|
00000004
/proc/device-tree/soc/mmc@7e300000/phandle
00000000  00 00 00 10                                       |....|
00000004
/proc/device-tree/soc/mmc@7e300000/reg
00000000  7e 30 00 00 00 00 01 00                           |~0......|
00000008
/proc/device-tree/soc/mmc@7e300000/status
00000000  6f 6b 61 79 00                                    |okay.|
00000005
root@rpi:~# 

ps. Raspberry Pi Model B Revision 0x0f

@skogsmaskin
Copy link

Same here, with Arch Linux ARM's official packages. According to this thread it happened 3.18.13-1 -> 3.18.13-2.

(Raspberry Pi 2 Model B)

@notro
Copy link
Contributor

notro commented May 26, 2015

See comment on commit 10c0f30

@notro
Copy link
Contributor

notro commented May 27, 2015

Ping @popcornmix @pelwell
MMC DMA is broken in rpi-3.18.y
10c0f30#commitcomment-11371485

@kukabu
Copy link
Author

kukabu commented May 28, 2015

@notro, thanks, it works

@gregt590
Copy link

I just did a sudo apt-get update && sudo apt-get -y upgrade && sudo rpi-update to update my Raspberry Pi model B to the latest standard distribution Raspian software and am now always getting the "Unable to initialize DMA channels" error as well upon reboots.

As recorded in dmesg:
pi@talon5 ~ $ dmesg
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 3.18.14+ (dc4@dc4-XPS13-9333) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) ) #792 PREEMPT Sat May 23 15:53:19 BST 2015
[ 0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[ 0.000000] Machine model: Raspberry Pi Model B
...
[ 1.149003] bcm2835-cpufreq: min=700000 max=900000
[ 1.149945] sdhci: Secure Digital Host Controller Interface driver
[ 1.149969] sdhci: Copyright(c) Pierre Ossman
[ 1.150445] mmc-bcm2835 20300000.mmc: mmc-bcm2835: Unable to initialise DMA channels. Falling back to PIO
[ 1.191202] sdhci-pltfm: SDHCI platform and OF driver helper
...

Anything you want me to capture and post to help someone find the problem?

@notro
Copy link
Contributor

notro commented May 29, 2015

The problem is fixed in the source but there's no new kernel/firmware release yet.
You can go back to the previous firmware like this:

sudo rpi-update 56569584e2a65d50408ea56d467336446af69925

popcornmix added a commit to raspberrypi/firmware that referenced this issue May 30, 2015
See: raspberrypi/linux#985

firmware: MMAL queue: extra protection on the sanity check
firmware: MMAL: reset buffer recommended values on switching back to raw pixels
firmware: OV5647: Remove readback of I2C writes
firmware: MMAL: Add rawcam component and required framework changes
firmware: Add MMAL to IL mapping for rawcam parameters
firmware: Image_encode: Add support or YUYV input source
firmware: OV5647 tuning: Add the fixed ISO preview modes

firmware: Replacing board rev functions with board_info library

firmware: arm_loader: Add support for ARCH_BCM2835 builds
See: raspberrypi/linux#980 (comment)
popcornmix added a commit to Hexxeh/rpi-firmware that referenced this issue May 30, 2015
See: raspberrypi/linux#985

firmware: MMAL queue: extra protection on the sanity check
firmware: MMAL: reset buffer recommended values on switching back to raw pixels
firmware: OV5647: Remove readback of I2C writes
firmware: MMAL: Add rawcam component and required framework changes
firmware: Add MMAL to IL mapping for rawcam parameters
firmware: Image_encode: Add support or YUYV input source
firmware: OV5647 tuning: Add the fixed ISO preview modes

firmware: Replacing board rev functions with board_info library

firmware: arm_loader: Add support for ARCH_BCM2835 builds
See: raspberrypi/linux#980 (comment)
@popcornmix
Copy link
Collaborator

@kukabu can you test with latest rpi-update firmware?

@gregt590
Copy link

FYI, I first went ahead and re-installed the last production kernel/firmware release via:
sudo apt-get install --reinstall libraspberrypi-bin libraspberrypi-dev libraspberrypi-doc libraspberrypi0 raspberrypi-bootloader
to correct the problem falling back to:
$ uname -a
Linux talon5 3.18.11+ #781 PREEMPT Tue Apr 21 18:02:18 BST 2015 armv6l GNU/Linux
and confirmed the problem did not occur.

Then today I did a rpi-update to test with the updated firmware again, now running:
$ uname -a
Linux talon5 3.18.14+ #793 PREEMPT Sat May 30 13:15:19 BST 2015 armv6l GNU/Linux
and re-tested my application. I can report I do not see the error reported and that my application appears to runs fine.

Thanks,
Greg

@kukabu
Copy link
Author

kukabu commented May 31, 2015

Fixed. Thanks.

@kukabu kukabu closed this as completed May 31, 2015
neuschaefer pushed a commit to neuschaefer/raspi-binary-firmware that referenced this issue Feb 27, 2017
See: raspberrypi/linux#985

firmware: MMAL queue: extra protection on the sanity check
firmware: MMAL: reset buffer recommended values on switching back to raw pixels
firmware: OV5647: Remove readback of I2C writes
firmware: MMAL: Add rawcam component and required framework changes
firmware: Add MMAL to IL mapping for rawcam parameters
firmware: Image_encode: Add support or YUYV input source
firmware: OV5647 tuning: Add the fixed ISO preview modes

firmware: Replacing board rev functions with board_info library

firmware: arm_loader: Add support for ARCH_BCM2835 builds
See: raspberrypi/linux#980 (comment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants