[U-Boot] "Writing to MMC(%d)... failed"

Przemyslaw Marczak
2015-02-27T13:08:00Z

Hello Nathan,

On 02/26/2015 01:30 AM, Nathan wrote:
> Wow, that came out as a real mess.
> I used Outlook.com to compose that message.
> Anyone experience that and can recommend how I can clean it up?
> I see that I composed using "Rich Text".
>
> I'll try to redo it in my reply here using "Plain Text":

Plain text is the right text formating.

>
> "saveenv" won't write the environment out to disk.
>
> $ sudo dd if=/dev/zero of=/dev/sde seek=1 bs=512 count=3999
> //wiping out area just to make sure no garbage is picked up.
> $ sudo dd if=bl1.HardKernel of=/dev/sde seek=1 iflag=dsync oflag=dsync
> $ sudo dd if=bl2.HardKernel of=/dev/sde seek=31 iflag=dsync oflag=dsync
> $ sudo dd if=u-boot-dtb.bin of=/dev/sde seek=63 iflag=dsync oflag=dsync
> $ sudo dd if=tzsw.HardKernel of=/dev/sde seek=2111 iflag=dsync oflag=dsync
>
> Fail:
> git://git.denx.de/u-boot.git
> commit 47d8ae4069b47ce966c0c5e0d8dd041e69ee1f86
> *****
> U-Boot 2015.04-rc2-00081-g47d8ae4 (Feb 25 2015 - 12:12:40)
>
> CPU: Exynos4412 at 1000MHz
> Model: Odroid based on Exynos4412
> DRAM: 2 GiB
> Board PMIC init
> MMC: SAMSUNG SDHCI: 0, EXYNOS DWMMC: 1
> *** Warning - bad CRC, using default environment
>
> DFU alt info setting: done
> Net: No ethernet found.
> Hit any key to stop autoboot: 0
> ** Unrecognized filesystem type **
> ** Unrecognized filesystem type **
> ** Unrecognized filesystem type **
> Bad Linux ARM zImage magic!
> Odroid # saveenv
> Saving Environment to MMC...
> Writing to MMC(0)... failed
> Odroid # mmc info
> Device: SAMSUNG SDHCI
> Manufacturer ID: 3
> OEM: 5344
> Name: SU08G
> Tran Speed: 50000000
> Rd Block Len: 512
> SD version 3.0
> High Capacity: Yes
> Capacity: 7.4 GiB
> Bus Width: 4-bit
> Erase Group Size: 512 Bytes
> Odroid # mmc list
> SAMSUNG SDHCI: 0 (SD)
> EXYNOS DWMMC: 1
> Odroid # mmc part
>
> Partition Map for MMC device 0 -- Partition Type: DOS
>
> Part Start Sector Num Sectors UUID Type
> ** Can't read partition table on 0:0 **

SD cards doesn't have hwpartitions.

> Odroid # mmc hwpartition check
> Partition configuration:
> No enhanced user data area
> No GP1 partition
> No GP2 partition
> No GP3 partition
> No GP4 partition
> eMMC >= 4.4 required for enhanced user data area
> Failed!
> Odroid # version
>
> U-Boot 2015.04-rc2-00081-g47d8ae4 (Feb 25 2015 - 12:12:40)
> armv7l-unknown-linux-gnueabihf-gcc (GCC) 5.0.0 20150221 (experimental)
> GNU ld (GNU Binutils) 2.25.51.20150221

Partition numbering starts from 1, so should use mmc 0:1

> Odroid # fstype mmc 0:0
> ** ext4fs_devread read error - block
> Failed to mount ext2 filesystem...
> ** Unrecognized filesystem type **
> Odroid # bdinfo
> arch_number = 0x000010C1
> boot_params = 0x40000100
> DRAM bank = 0x00000000
> -> start = 0x40000000
> -> size = 0x10000000
> DRAM bank = 0x00000001
> -> start = 0x50000000
> -> size = 0x10000000
> DRAM bank = 0x00000002
> -> start = 0x60000000
> -> size = 0x10000000
> DRAM bank = 0x00000003
> -> start = 0x70000000
> -> size = 0x10000000
> DRAM bank = 0x00000004
> -> start = 0x80000000
> -> size = 0x10000000
> DRAM bank = 0x00000005
> -> start = 0x90000000
> -> size = 0x10000000
> DRAM bank = 0x00000006
> -> start = 0xA0000000
> -> size = 0x10000000
> DRAM bank = 0x00000007
> -> start = 0xB0000000
> -> size = 0x0FF00000
> current eth = unknown
> ip_addr = <NULL>
> baudrate = 115200 bps
> TLB addr = 0xBFEF0000
> relocaddr = 0xBDE43000
> reloc off = 0x7A043000
> irq_sp = 0xB8E3D860
> sp start = 0xB8E3D850
> *****
> Ignore the "unrecognized filesystem type" stuff. I'm using ext4.
> mmc hwpartition only used for eMMC?

Yes, only eMMC.

>
> Success:
> https://github.com/hardkernel/u-boot.git
> commit 33e05ffb159141b640571e91470172d83a2a1273
> *****
> U-Boot 2010.12-svn (May 12 2014 - 15:05:46) for Exynox4412
>
>
> CPU: S5PC220 [Samsung SOC on SMP Platform Base on ARM CortexA9]
> APLL = 1000MHz, MPLL = 880MHz
> DRAM: 2 GiB
>
> PMIC VERSION : 0x00, CHIP REV : 3
> TrustZone Enabled BSP
> BL1 version: 20121128
>
> Checking Boot Mode ... SDMMC
> MMC Device 0: 7580 MB
> MMC Device 1 not found
> *** Warning - using default environment
> USB3503 NINT = OUTPUT LOW!
> ModeKey Check... run normal_boot
> No ethernet found.
> Hit any key to stop autoboot: 0
> Exynos4412 # wipeenv 0
> spot on!
> 0: wipeenv
> 1:0
> MMC Device 1 not found
> Wiping u-boot env at MMC: 0
> Exynos4412 # mmcinfo
> Device: S3C_HSMMC2
> Manufacturer ID: 3
> OEM: 5344
> Name: SU08G
> Tran Speed: 0
> Rd Block Len: 512
> SD version 2.0
> High Capacity: Yes
> Size: 0MB (block: 7580)
> Bus Width: 4-bit
> Boot Partition Size: 0 KB
> Exynos4412 # saveenv
> Saving Environment to SMDK bootable device...
> done
> *****
>

I tested the latest mainline HEAD on U3, rev.0.2, on some two cheap
Sandisk 4GB SD cards. It works fine for both
Maybe your card is little tired and need some more timeout for some
operations, this could be the reason of that issue.
Can you test a different card?

Best regards,
--
Przemyslaw Marczak
Samsung R&D Institute Poland
Samsung Electronics
p.marczak at samsung.com