[PINE64] mmcsd0: aw_mmc0: Error indicated
Mark Millard
marklmi at yahoo.com
Sun Aug 19 16:23:50 UTC 2018
[Just clarifying my wording where it was incomplete. Not
tied to your problem but reading what I wrote in one area
would be confusing.]
On 2018-Aug-19, at 6:15 AM, Mark Millard <marklmi26-fbsd at yahoo.com> wrote:
> On 2018-Aug-19, at 5:15 AM, O. Hartmann <ohartmann at walstatt.org> wrote:
>
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA512
>>
>> Running 12-CURRENT for a while now on a PINE64+, 2GB RAM from SD, I face since months
>> those errors regarding the aw_mmc controller:
>>
>> [...]
>>
>> aw_mmc0: controller timeout
>> aw_mmc0: timeout updating clock
>> mmcsd0: Error indicated: 1 Timeout
>> g_vfs_done():ufs/rootfs[WRITE(offset=3281551360, length=4096)]error = 5
>> aw_mmc0: controller timeout
>> aw_mmc0: timeout updating clock
>> mmcsd0: Error indicated: 1 Timeout
>> g_vfs_done():ufs/rootfs[WRITE(offset=3282788352, length=4096)]error = 5
>> aw_mmc0: controller timeout
>> aw_mmc0: timeout updating clock
>> mmcsd0: Error indicated: 1 Timeout
>> g_vfs_done():ufs/rootfs[WRITE(offset=3283681280, length=32768)]error = 5
>>
>> [...]
>>
>> ... and a while, the system ic completely stuck and needs hard reset.
>>
>> I can remember this error since I played around with 12-CURRENT on the PINE64 and that is
>> on various revisions since December 2017.
>>
>> Is this related to some known issues or could this be related to my hardware?
>>
>> System is:
>>
>> FreeBSD 12.0-CURRENT #13 r336753: Fri Jul 27 06:02:30 CEST 2018 arm64
>>
>> I have a custom-built kernel with some add-ons like IPFW.
>>
>
> [These notes are based on a normal sdcard, not my historical
> e.MCC on an adapter. The e.MMC context no longer directly
> boots.]
>
> I've been running head -r337400 with then-modern:
>
> A) /boot/efi/dtb/
> (/boot/efi being a mount of the msdosfs,
> dtb/ being copy of target media's UFS /boot/dtb/ )
> B) /boot/efi/EFI/BOOT/bootaa64.efi
> (copy of . . ./stand/efi/loader/loader.efi from the build tree)
> and with -r476715 /usr/port 's:
> C) sysutils/u-boot-pine64
> (via /usr/local/share/u-boot/u-boot-pine64/u-boot-sunxi-with-spl.bin dd'd)
>
> My boot sdcard has a full installworld installkernel but I normally have
> its /etc/fstab edited to redirect the root file system (and swap partition)
> to a USB drive.
>
> But I've had no operational troubles so far when booted to the sdcard (via
> an edit if its /etc.fstab file to self-reference the root file system).
>
> For reference:
>
> mmcsd0: 32GB <SDHC SE32G 8.0 SN <replaced> MFG 07/2017 by 3 SD> at mmc0 50.0MHz/4bit/32768-block
>
> The kernel is from:
>
> # more /usr/src/sys/arm64/conf/GENERIC-NODBG
> #
> # GENERIC -- Custom configuration for the arm64/aarch64
> #
>
> include "GENERIC"
>
> ident GENERIC-NODBG
>
> makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
>
> options ALT_BREAK_TO_DEBUGGER
>
> options KDB # Enable kernel debugger support
>
> # For minimum debugger support (stable branch) use:
> #options KDB_TRACE # Print a stack trace for a panic
> options DDB # Enable the kernel debugger
>
> # Extra stuff:
> #options VERBOSE_SYSINIT # Enable verbose sysinit messages
> #options BOOTVERBOSE=1
> #options BOOTHOWTO=RB_VERBOSE
> #options KTR
> #options KTR_MASK=KTR_TRAP
> ##options KTR_CPUMASK=0xF
> #options KTR_VERBOSE
>
> # Disable any extra checking for. . .
> nooptions DEADLKRES # Enable the deadlock resolver
> nooptions INVARIANTS # Enable calls of extra sanity checking
> nooptions INVARIANT_SUPPORT # Extra sanity checks of internal structures, required by INVARIANTS
> nooptions WITNESS # Enable checks to detect deadlocks and cycles
> nooptions WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed
> nooptions DIAGNOSTIC
> nooptions MALLOC_DEBUG_MAXZONES # Separate malloc(9) zones
> nooptions BUF_TRACKING
> nooptions FULL_BUF_TRACKING
>
>
>
> Notes:
>
> I do get the two messages during boot:
>
> mmc0: ACMD42 failed, RESULT: 4
> mmc0: Card at relative address 43690 failed to set bus width
>
> but things seem to be operating fine.
The context for the below was probably unclear via my
incomplete statement of context:
> Because of my use of WITHOUT_BINTUTILS for buildworld buildkernel
> I added:
>
> BUILD_DEPENDS+= objdump:devel/binutils
>
> to:
>
> /usr/ports/sysutils/u-boot-master/Makefile
>
> in order for sysutils/u-boot-pine64 to build under
> poudriere-devel .
I should have started with:
"Because of my use of WITHOUT_BINTUTILS for buildworld buildkernel
for my amd64 environment that I did the cross build to aarch64
from . . ."
I built via an amd64 -> aarch64 cross build overall.
The sysutils/u-boot-pine64 build tried to use the
amd64 (or other host) objdump during its activity
for cross builds and its absence in the *host*
environment for the cross changed the result of the
build before this change to the Makefile.
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=230288
is about that (starting from before I figured out what
was going on).
[I also also used WITHOUT_BINTUTILS for the aarch64 TARGET_ARCH
in the cross build.]
===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)
More information about the freebsd-arm
mailing list