[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