Skip to content
ckuethe edited this page Jan 8, 2015 · 8 revisions

WORK IN PROGRESS

Bringing up a fresh USB armory should require nothing more than the USB Armory itself, and an SD card. Here's one attempt to do that.

  • Insulate the top of the microsd holder or the back of the board with tape; this is to prevent unwanted contact when opening the holder after the device is powered on
  • Ensure that there is no microsd in the Armory.
  • Connect the Armory to the host - a short USB extension cable will make this easier
  • Wait for the LED to dim, and the host to detect the Armory. It should show up as "SE Blank RITA"
[320196.125577] usb 1-1.2: new high-speed USB device number 68 using ehci-pci
[320196.219456] usb 1-1.2: New USB device found, idVendor=15a2, idProduct=004e
[320196.219466] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[320196.219471] usb 1-1.2: Product: SE Blank RITA
[320196.219476] usb 1-1.2: Manufacturer: Freescale SemiConductor Inc 
  • Carefully install the the microsd card
  • use imx_usb_loader u-boot.imx to inject uBoot into the Armory
$ ./imx_usb ../uboot/u-boot.imx 
config file <./imx_usb.conf>
vid=0x066f pid=0x3780 file_name=mx23_usb_work.conf
vid=0x15a2 pid=0x004f file_name=mx28_usb_work.conf
vid=0x15a2 pid=0x0052 file_name=mx50_usb_work.conf
vid=0x15a2 pid=0x0054 file_name=mx6_usb_work.conf
vid=0x15a2 pid=0x0061 file_name=mx6_usb_work.conf
vid=0x15a2 pid=0x0063 file_name=mx6_usb_work.conf
vid=0x15a2 pid=0x0041 file_name=mx51_usb_work.conf
vid=0x15a2 pid=0x004e file_name=mx53_usb_work.conf
vid=0x15a2 pid=0x006a file_name=vybrid_usb_work.conf
vid=0x066f pid=0x37ff file_name=linux_gadget.conf
config file <./mx53_usb_work.conf>
parse ./mx53_usb_work.conf
15a2:004e(mx53) bConfigurationValue =1
Interface 0 claimed
HAB security state: development mode (0xf0f0f0f0)
== work item
filename ../uboot/u-boot.imx
load_size 0 bytes
load_addr 0x00000000
dcd 1
clear_dcd 0
plug 1
jump_mode 2
jump_addr 0x00000000
== end work item
main dcd length 1a0
sub dcd length 19c

loading binary file(../uboot/u-boot.imx) to 777ff400, skip=0, fsize=3ac00 type=aa

<<<240640, 240640 bytes>>>
HAB security state: development mode (0x88888888)
  • uBoot is now running, connect to its console
    • A [Bus Pirate](../Bus Pirate) will work for the hardware console
    • uBoot's usb console

Commits d67b0d97b1 and e6607cffef may serve as an example of how to enable UMS.
Various references on the use of usbtty.

U-Boot 2014.07 (Nov 29 2014 - 16:07:25)

Board: USB armory
I2C:   ready
DRAM:  512 MiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
Card did not respond to voltage select!
MMC init failed
Using default environment

In:    serial
Out:   serial
Err:   serial
Net:   CPU Net Initialization Failed
No ethernet found.
Hit any key to stop autoboot:  0 
Card did not respond to voltage select!
** Bad device mmc 0 **
Card did not respond to voltage select!
** Bad device mmc 0 **
Wrong Image Format for bootm command
ERROR: can't get kernel image!
=> mmc info
=> mmc info
Device: FSL_SDHC
Manufacturer ID: 3
OEM: 5344
Name: SU04G 
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 3.7 GiB
Bus Width: 4-bit
=> boot
** No partition table - mmc 0 **
** No partition table - mmc 0 **
Wrong Image Format for bootm command
ERROR: can't get kernel image!

Future work

  • uboot usb gadgets
    • usbtty
    • mass storage
    • ethernet
  • installer uboot
    • fastboot
    • mass storage
    • tftp over usbnet
  • lockdown script (sign kernel, uboot, program keys into OTP, switch to verified boot)
Clone this wiki locally