Programming 64GB eMMC (for Arch on Odroid-U3)

Moderators: mdrjr, odroid

Programming 64GB eMMC (for Arch on Odroid-U3)

Unread postby safeman » Mon May 09, 2016 4:56 am

Are you aware of any issues programming 64GB eMMC?

I'm on debian and using a Transcend USB SD card adapter as recommended by Hardkernel - I've used it to program SD cards before (eg for Raspberry Pi) but don't think I've programmed an eMMC as these came pre-loaded.

I'm trying to install Arch using the ArchLinuxARM instructions of Odroid-U3. This seems to go as expected but it doesn't appear to boot at the first stage (eMMC instered into SD adapter in preparation for the final step.

I read elsewhere this can be an issue, and have followed the instructions for Odroid-U3, but it doesn't work: no HDMI signal on boot, blue LED solid on. I haven't tried a serial cable yet but this post (admittedly about the XU3 rather than U3) suggests that isn't going to work either so I want to check if you are aware of this issue, and if you have any suggestions. Thanks.

UPDATE: using a serial cable from a Windows machine I have a very primitive shell. I'm not sure what it is, but obviously it is not what I need (I can't execute the final commands to burn the eMMC boot for example). If I type "help" I get a list of commands, one of which is a memory dump. See below. It is clear that the eMMC is not quite as needed, although something is booting.

So I guess the issue is indeed some tweak needed to program a 64GB eMMC. Please advise if you can! Thanks.

Code: Select all
Odroid # sh
HUSH_VERSION=0.01

Odroid # ls
ls - list files in a directory (default /)

Usage:
ls <interface> [<dev[:part]> [directory]]
    - List files in directory 'directory' of partition 'part' on
      device type 'interface' instance 'dev'.

Odroid # cd /boot
Unknown command 'cd' - try 'help'

Odroid # ls /home
** No device specified **

Odroid # md 0
00000000:data abort
pc : [<bfe97bbc>]          lr : [<bfe97b90>]
reloc pc : [<43e4bbbc>]    lr : [<43e4bb90>]
sp : bae46d78  ip : 00000030    fp : 00000000
r10: 00000000  r9 : bae4aeb0    r8 : 00000004
r7 : 00000000  r6 : 00000004    r5 : 00000004  r4 : 00000040
r3 : 00000000  r2 : bae4b118    r1 : bae46d8c  r0 : 00000009
Flags: nZCv  IRQs off  FIQs off  Mode SVC_32
Resetting CPU ...

resetting ...


U-Boot 2016.03-1 (Mar 27 2016 - 09:14:44 -0600) Arch Linux ARM

CPU:  Exynos4412 @ 1 GHz
Model: Odroid based on Exynos4412
Board: Odroid based on Exynos4412
Type:  u3
DRAM:  2 GiB
LDO20@VDDQ_EMMC_1.8V: set 1800000 uV; enabling
LDO22@VDDQ_EMMC_2.8V: set 2800000 uV; enabling
LDO21@TFLASH_2.8V: set 2800000 uV; enabling
MMC:  SAMSUNG SDHCI: 0, EXYNOS DWMMC: 1
*** Warning - bad CRC, using default environment

Net:  No ethernet found.
Hit any key to stop autoboot:  0
starting USB...
USB0:  USB EHCI 1.00
scanning bus 0 for devices... 1 USB Device(s) found
      scanning usb for ethernet devices... 0 Ethernet Device(s) found
switch to partitions #0, OK
mmc0(part 0) is current device
mmc found on device 0
Checking for: /boot/uEnv.txt ...
Failed to mount ext2 filesystem...
** Unrecognized filesystem type **
Failed to mount ext2 filesystem...
** Unrecognized filesystem type **
No kernel found
Card did not respond to voltage select!

USB device 0: unknown device

Odroid # df
dfu - Device Firmware Upgrade

Usage:
dfu <USB_controller> <interface> <dev> [list]
  - device firmware upgrade via <USB_controller>
    on device <dev>, attached to interface
    <interface>
    [list] - list available alt settings

Odroid # help
?      - alias for 'help'
base    - print or set address offset
bdinfo  - print Board Info structure
boot    - boot default, i.e., run 'bootcmd'
bootd  - boot default, i.e., run 'bootcmd'
bootelf - Boot from an ELF image in memory
bootm  - boot application image from memory
bootp  - boot image via network using BOOTP/TFTP protocol
bootvx  - Boot vxWorks from an ELF image
bootz  - boot Linux zImage image from memory
cmp    - memory compare
coninfo - print console devices and information
cp      - memory copy
crc32  - checksum calculation
dcache  - enable or disable data cache
dfu    - Device Firmware Upgrade
dhcp    - boot image via network using DHCP/TFTP protocol
dm      - Driver model low level access
echo    - echo args to console
editenv - edit environment variable
env    - environment handling commands
erase  - erase FLASH memory
exit    - exit script
ext2load- load binary file from a Ext2 filesystem
ext2ls  - list files in a directory (default /)
ext4load- load binary file from a Ext4 filesystem
ext4ls  - list files in a directory (default /)
ext4size- determine a file's size
ext4write- create a file in the root directory
false  - do nothing, unsuccessfully
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls  - list files in a directory (default /)
fatsize - determine a file's size
fatwrite- write file into a dos filesystem
fdt    - flattened device tree utility commands
flinfo  - print FLASH memory information
fstype  - Look up a filesystem type
go      - start application at address 'addr'
gpio    - query and control gpio pins
gpt    - GUID Partition Table
help    - print command description/usage
i2c    - I2C sub-system
icache  - enable or disable instruction cache
iminfo  - print header information for application image
itest  - return true/false on integer compare
load    - load binary file from a filesystem
loadb  - load binary file over serial line (kermit mode)
loads  - load S-Record file over serial line
loadx  - load binary file over serial line (xmodem mode)
loady  - load binary file over serial line (ymodem mode)
loop    - infinite loop on address range
ls      - list files in a directory (default /)
md      - memory display
mii    - MII utility commands
mm      - memory modify (auto-incrementing address)
mmc    - MMC sub system
mmcinfo - display MMC info
mw      - memory write (fill)
nm      - memory modify (constant address)
part    - disk partition related commands
ping    - send ICMP ECHO_REQUEST to network host
pmic    -  operations
printenv- print environment variables
protect - enable or disable FLASH write protection
pxe    - commands to get and boot from pxe files
regulator- uclass operations
reset  - Perform RESET of the CPU
run    - run commands in an environment variable
save    - save file to a filesystem
saveenv - save environment variables to persistent storage
setenv  - set environment variables
setexpr - set environment variable as the result of eval expression
showvar - print local hushshell variables
size    - determine a file's size
source  - run script from memory
sysboot - command to get and boot from syslinux files
test    - minimal test like /bin/sh
tftpboot- boot image via network using TFTP protocol
thordown- TIZEN "THOR" downloader
true    - do nothing, successfully
ums    - Use the UMS [USB Mass Storage]
usb    - USB sub-system
usbboot - boot from USB device
version - print monitor, compiler and linker version
safeman
 
Posts: 52
Joined: Fri Jun 27, 2014 11:04 pm
languages_spoken: english
ODROIDs: Odroid U3 + 64G eMMC

Re: Programming 64GB eMMC (for Arch on Odroid-U3)

Unread postby odroid » Mon May 09, 2016 10:30 am

You are in the boot loader (u-boot) state since the Linux Kernel was not loaded properly.

Did the preinstalled Ubuntu worked well?
User avatar
odroid
Site Admin
 
Posts: 28497
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID

Re: Programming 64GB eMMC (for Arch on Odroid-U3)

Unread postby safeman » Mon May 09, 2016 5:29 pm

Ubuntu was fine but I need a later kernel and wanted to try arch.

Can you tell why this failed and how to solve it?
safeman
 
Posts: 52
Joined: Fri Jun 27, 2014 11:04 pm
languages_spoken: english
ODROIDs: Odroid U3 + 64G eMMC

Re: Programming 64GB eMMC (for Arch on Odroid-U3)

Unread postby LiquidAcid » Mon May 09, 2016 5:50 pm

safeman wrote:Ubuntu was fine but I need a later kernel and wanted to try arch.

Arch doesn't provide a newer kernel, it's still the ancient 3.8.y based one.

uname:
Code: Select all
Linux version 3.8.13.30-3-ARCH (root@leming) (gcc version 5.3.0 (GCC) ) #3 SMP PREEMPT Wed Jan 20 12:43:29 MST 2016
LiquidAcid
 
Posts: 1080
Joined: Fri Oct 11, 2013 11:07 pm
languages_spoken: english
ODROIDs: X2

Re: Programming 64GB eMMC (for Arch on Odroid-U3)

Unread postby safeman » Tue May 10, 2016 7:22 pm

LiquidAcid wrote:Arch doesn't provide a newer kernel, it's still the ancient 3.8.y based one.

uname:
Code: Select all
Linux version 3.8.13.30-3-ARCH (root@leming) (gcc version 5.3.0 (GCC) ) #3 SMP PREEMPT Wed Jan 20 12:43:29 MST 2016


Doh! Thanks... someone told me it did.

I *still* need a way to program a 64GB eMMC if anyone can help? I think I can probably restore the Ubuntu image by writing it from a windows machine, but I'd like to find a more general solution, one that does work with the ArchLinuxARM method so I can try arch anyway.

Any help appreciated! Thanks
safeman
 
Posts: 52
Joined: Fri Jun 27, 2014 11:04 pm
languages_spoken: english
ODROIDs: Odroid U3 + 64G eMMC

Re: Programming 64GB eMMC (for Arch on Odroid-U3)

Unread postby odroid » Tue May 10, 2016 7:56 pm

Would be better to post your issue on ALARM forum.
User avatar
odroid
Site Admin
 
Posts: 28497
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID

Re: Programming 64GB eMMC (for Arch on Odroid-U3)

Unread postby safeman » Tue May 10, 2016 8:18 pm

odroid wrote:Would be better to post your issue on ALARM forum.


I did, same time as here, but no response yet. :-(

Do you think this might be the issue, or is that a different question?

Arch Linux ARM (ALARM) with F2FS root
safeman
 
Posts: 52
Joined: Fri Jun 27, 2014 11:04 pm
languages_spoken: english
ODROIDs: Odroid U3 + 64G eMMC

Re: Programming 64GB eMMC (for Arch on Odroid-U3)

Unread postby LiquidAcid » Wed May 11, 2016 2:16 am

I'm not sure why they use an upstream u-boot together with the vendor kernel. That calls for trouble because of MPLL clock mismatch.

Studid idea: Just try 'boot' on the u-boot console.
LiquidAcid
 
Posts: 1080
Joined: Fri Oct 11, 2013 11:07 pm
languages_spoken: english
ODROIDs: X2

Re: Programming 64GB eMMC (for Arch on Odroid-U3)

Unread postby safeman » Wed May 11, 2016 2:50 am

LiquidAcid wrote: ... try 'boot' on the u-boot console.


Thanks, worth a try but...
Code: Select all
Odroid # boot
switch to partitions #0, OK
mmc0(part 0) is current device
mmc found on device 0
Checking for: /boot/uEnv.txt ...
Failed to mount ext2 filesystem...
** Unrecognized filesystem type **
Failed to mount ext2 filesystem...
** Unrecognized filesystem type **
No kernel found

USB device 0: unknown device
Odroid #
safeman
 
Posts: 52
Joined: Fri Jun 27, 2014 11:04 pm
languages_spoken: english
ODROIDs: Odroid U3 + 64G eMMC

Re: Programming 64GB eMMC (for Arch on Odroid-U3)

Unread postby LiquidAcid » Wed May 11, 2016 2:55 am

See UBootCmdGroupMMC and find out of the bootloader detects any MMC devices at all.

And for reference you could try my u-boot snapshot from early last year.
LiquidAcid
 
Posts: 1080
Joined: Fri Oct 11, 2013 11:07 pm
languages_spoken: english
ODROIDs: X2

Re: Programming 64GB eMMC (for Arch on Odroid-U3)

Unread postby safeman » Wed May 11, 2016 3:04 am

Thanks. This looks fairly ok... as in the partition size fits what I created! (At the time though, I did wonder what happened to the remainder of the 64GB).
Code: Select all
Odroid # mmc list
SAMSUNG SDHCI: 0 (eMMC)
EXYNOS DWMMC: 1
Odroid # mmc info
Device: SAMSUNG SDHCI
Manufacturer ID: 11
OEM: 100
Name: 064G9
Tran Speed: 25000000
Rd Block Len: 512
MMC version 4.5
High Capacity: Yes
Capacity: 58.2 GiB
Bus Width: 4-bit
Erase Group Size: 512 KiB
HC WP Group Size: 16 MiB
User Capacity: 58.2 GiB WRREL
Boot Capacity: 4 MiB ENH
RPMB Capacity: 4 MiB ENH
Odroid #


This less so! Should it be DOS? I used "mkfs ext4". Maybe a different filesystem would help do you think?
Code: Select all
Odroid # mmc part

Partition Map for MMC device 0  --   Partition Type: DOS

Part    Start Sector    Num Sectors     UUID            Type
  1     2048            122140672       cc684735-01     83
Odroid #
safeman
 
Posts: 52
Joined: Fri Jun 27, 2014 11:04 pm
languages_spoken: english
ODROIDs: Odroid U3 + 64G eMMC


Return to Other OS

Who is online

Users browsing this forum: No registered users and 2 guests