No matter what I tried via kernel modules (mmcfix), I was not able to fix the issues with writing to certain sdcards under 2.6.29 kernel (of our 'vulnerable' recovery that we use to start OpenRecovery).
So I decided to give a try to 2ndboot from 2.6.29 to 2.6.32 kernel under recovery.
Here is a version of OpenRecovery 1.46 that runs under custom 2.6.32 kernel using 2ndboot:
- all issues with writing to some sdcards under recovery ("DMA transaction error with device 61" in dmesg)
- missing huge_file feature of ext4 filesystem under recovery
- battery charging under recovery
Please let me know if you encounter any problems.
The start of OpenRecovery with 2ndboot takes a bit longer, so be patient.
You can see a phone reboot during the start of OR under certain conditions - it's intentional, just wait, the OR will start automatically afterwards.
Kernel source: https://github.com/nadlabak/kernel/tree/recovery
- prevent watchdog reboot (by automatic reboot of recovery if it was not started via /cache/recovery/command)
- use 10% battd for better compatibility with 3rd party batteries
- modversion set to 2ndbootOR v1.2
- kernel and 2ndboot files updated (22.214.171.124, L2 cache enabled etc.)
- patches by justcsdr from issue #773 included (power off, mass storage with complete access to all sdcard partitions etc.)
- modversion set to 2ndbootOR v1.1
UPDATE 26.09.2012 (2)
- fixed linker issues - IMPORTANT! please update from the previous version
- modversion set to 2ndbootOR v1.0
- battery charging and status display added
- workaround for occasionally non-working adb
- clean kernel build (no change in functionality)
- fixed backup of logo, bpsw, lbl and devtree partitions
- added 2ndboot splash screen