MityARM: Difference between revisions

From DaqWiki
Jump to navigation Jump to search
Line 55: Line 55:
* eject /dev/sda
* eject /dev/sda
* try to boot from the new flash card
* try to boot from the new flash card
= minicom settings =
<pre>
    +-----------------------------------------------------------------------+
    | A -    Serial Device      : /dev/ttyUSB0                              |
    | B - Lockfile Location    : /var/lock                                |
    | C -  Callin Program      :                                          |
    | D -  Callout Program      :                                          |
    | E -    Bps/Par/Bits      : 115200 8N1                                |
    | F - Hardware Flow Control : No                                        |
    | G - Software Flow Control : No                                        |
    |                                                                      |
    |    Change which setting?                                              |
    +-----------------------------------------------------------------------+
</pre>


= CPU info =
= CPU info =

Revision as of 15:46, 14 June 2014

CriticalLink MityARM

Links

Useful links

Ask 2012-oct-19

http://www.mitydsp.com/products-services/cpu-engines/mityarm-3359/www.mitydsp.com/products-services/working-with-us/rfi/

Hello! I just started with a MityARM-335x Development Kit and I am trying to make sense of the development environment. We hope to use the MityARM-3359 SoM in several research projects (we are a subatomic particle physics research lab in Canada) on custom-built base-boards. Personally, I have experience with embedded linux development for PowerPC CPUs in the VME and FPGA (Xilinx Virtex4) environements. Here is my questions:
a) the USB flash drive that came with the dev kit contains some kind of virtual machine file with instructions to use some kind of Windows software to open it. We do our development exclusively on Linux - do you provide the development kit software in a linux-usable format? (I did find the TI SDK, but I do not know if it is the same as your SDK).
b) on your wiki page, many links lead to your redmine site which requires a login, for example, at
http://support.criticallink.com/redmine/projects/armc8-platforms/wiki
this link requires a password the http://support.criticallink.com/redmine/projects/am335x-devkit/files
are development kit customers like myself supposed to have access to these files?
I will start with the TI SDK for now and hope it is enough, but your information for the above two questions would be highly appreciated. Konstantin Olchanski olchansk@triumf.ca

Create boot disk

  • use 32GB "class 10" MicroSD card (use MicroSD->SD adapter for CL evaluation boards)
  • partition using "fdisk" like this:
Device Boot      Start         End      Blocks   Id  System
sda1   *             1           9       72261    c  W95 FAT32 (LBA)
sda2                11         xxx      xxxxxx   83  Linux
  • remember to mark partition 1 as active (boot flag, fdisk command "a")
  • mkfs.msdos /dev/sda1
  • mke2fs -j /dev/sda2; tune2fs -c0 -i0 /dev/sda2
  • mount /dev/sda1 /mnt/tmp
  • cd /mnt/tmp
  • tar xzvf /ladd/data0/olchansk/MityARM/kit/2GB-SDflash-3-29-12/sdd1-FAT32.tgz
  • umount /mnt/tmp
  • mount /dev/sda2 /mnt/tmp
  • cd /mnt/tmp
  • tar xzvf /ladd/data0/olchansk/MityARM/kit/2GB-SDflash-3-29-12/sdd2-Linux.tgz
  • umount /mnt/tmp
  • eject /dev/sda
  • try to boot from the new flash card

minicom settings

    +-----------------------------------------------------------------------+
    | A -    Serial Device      : /dev/ttyUSB0                              |
    | B - Lockfile Location     : /var/lock                                 |
    | C -   Callin Program      :                                           |
    | D -  Callout Program      :                                           |
    | E -    Bps/Par/Bits       : 115200 8N1                                |
    | F - Hardware Flow Control : No                                        |
    | G - Software Flow Control : No                                        |
    |                                                                       |
    |    Change which setting?                                              |
    +-----------------------------------------------------------------------+

CPU info

root@mityarm-335x:~# cat /proc/cpuinfo 
Processor       : ARMv7 Processor rev 2 (v7l)
BogoMIPS        : 718.02
Features        : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x3
CPU part        : 0xc08
CPU revision    : 2

Hardware        : mityarm335x
Revision        : 0000
Serial          : 0000000000000000
root@mityarm-335x:~# 

Benchmarks

  • memcpy
root@mityarm-335x:~# ./memcpy
memcpy       1 KiBytes:    598 MB/sec
memcpy       2 KiBytes:    800 MB/sec
memcpy       4 KiBytes:    936 MB/sec
memcpy       8 KiBytes:   1027 MB/sec
memcpy      16 KiBytes:   1058 MB/sec
memcpy      32 KiBytes:   1051 MB/sec
memcpy      64 KiBytes:   1057 MB/sec
memcpy     128 KiBytes:   1059 MB/sec
memcpy     256 KiBytes:    861 MB/sec
memcpy     512 KiBytes:    240 MB/sec
memcpy    1024 KiBytes:    196 MB/sec
memcpy    2048 KiBytes:    169 MB/sec
memcpy    4096 KiBytes:    163 MB/sec
memcpy    8192 KiBytes:    160 MB/sec
memcpy   16384 KiBytes:    160 MB/sec
memcpy   32768 KiBytes:    158 MB/sec
memcpy   65536 KiBytes:    157 MB/sec
memcpy  131072 KiBytes:    156 MB/sec
root@mityarm-335x:~#
  • ttcp receive: 38 Mbytes/sec
root@lxdaq30:/ladd/ladd00/olchansk/daq/MityARM/play# ./ttcp -r -s
ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
ttcp-r: socket
ttcp-r: accept from 142.90.119.144
ttcp-r: 81920000 bytes in 2.09 real seconds = 38225.11 KB/sec +++
ttcp-r: 10005 I/O calls, msec/call = 0.21, calls/sec = 4780.53
ttcp-r: 0.0user 2.0sys 0:02real 100% 0i+0d 240maxrss 0+2pf 8+7csw
root@lxdaq30:/ladd/ladd00/olchansk/daq/MityARM/play# 
  • ttcp transmit: 40 Mbytes/s
root@lxdaq30:/ladd/ladd00/olchansk/daq/MityARM/play# ./ttcp -n 10000 -t -s ladd14
ttcp-t: buflen=8192, nbuf=10000, align=16384/0, port=5001  tcp  -> ladd14
ttcp-t: socket
ttcp-t: connect
ttcp-t: 81920000 bytes in 1.96 real seconds = 40798.09 KB/sec +++
ttcp-t: 10000 I/O calls, msec/call = 0.20, calls/sec = 5099.76
ttcp-t: 0.0user 1.9sys 0:01real 98% 0i+0d 376maxrss 0+2pf 7+5csw
root@lxdaq30:/ladd/ladd00/olchansk/daq/MityARM/play# 

Boot messages

U-Boot SPL 2011.09-00000-g23e81b9-dirty (Feb 24 2012 - 11:15:23)
Texas Instruments Revision detection unimplemented
PLL configuration complete
OMAP SD/MMC: 0
reading u-boot.img
reading u-boot.img


U-Boot 2011.09-00000-g23e81b9-dirty (Feb 24 2012 - 11:15:23)

I2C:   ready
DRAM:  256 MiB
WARNING: Caches not enabled
NAND:  HW ECC Hamming Code selected
256 MiB
MMC:   OMAP SD/MMC: 0
Net:   cpsw
Hit any key to stop autoboot:  0 
Setting bus to 1
reading uImage

3115840 bytes read
## Booting kernel from Legacy Image at 80007fc0 ...
   Image Name:   Linux-3.1.0+
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3115776 Bytes = 3 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   XIP Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Linux version 3.1.0+ (iskander@mitydsp) (gcc version 4.5.3 20110311 (prerelease) (GCC) ) #33 Wed Mar 14 08:57:27 EDT 2
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: mityarm335x
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] AM335X ES1.0 (neon )
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
[    0.000000] Kernel command line: console=ttyO0,115200n8 video=da8xx:bpp=16 root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait ip=none
[    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Memory: 256MB = 256MB total
[    0.000000] Memory: 252724k/252724k available, 9420k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     DMA     : 0xffa00000 - 0xffe00000   (   4 MB)
[    0.000000]     vmalloc : 0xd0800000 - 0xf8000000   ( 632 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc060f000   (6172 kB)
[    0.000000]       .init : 0xc060f000 - 0xc064a000   ( 236 kB)
[    0.000000]       .data : 0xc064a000 - 0xc06bd078   ( 461 kB)
[    0.000000]        .bss : 0xc06bd09c - 0xc06f7a60   ( 235 kB)
[    0.000000] NR_IRQS:396
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[    0.000000] Total of 128 interrupts on 1 active controller
[    0.000000] OMAP clockevent source: GPTIMER1 at 24000000 Hz
[    0.000000] OMAP clocksource: GPTIMER2 at 24000000 Hz
[    0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
[    0.000000] Console: colour dummy device 80x30
[    0.000195] Calibrating delay loop... 718.02 BogoMIPS (lpj=3590144)
[    0.059020] pid_max: default: 32768 minimum: 301
[    0.059147] Security Framework initialized
[    0.059252] Mount-cache hash table entries: 512
[    0.059615] CPU: Testing write buffer coherency: ok
[    0.064176] print_constraints: dummy: 
[    0.064557] NET: Registered protocol family 16
[    0.064900] GPMC revision 6.0
[    0.066885] OMAP GPIO hardware version 0.1
[    0.068998] omap_l3_smx omap_l3_smx.0: couldn't find resource
[    0.069741] omap_mux_init: Add partition: #1: core, flags: 0
[    0.072548]  omap_i2c.3: alias fck already exists
[    0.072823]  omap_i2c.2: alias fck already exists
[    0.074383] Registering mcspi 1 [2]
[    0.074426]  omap2_mcspi.1: alias fck already exists
[    0.074620] Registering mcspi 2 [2]
[    0.074652]  omap2_mcspi.2: alias fck already exists
[    0.078113] baseboard_init [MityARM-335x DevKit]...
[    0.078304] MityARM 335X devkit setup enet registering phy ID 70420
[    0.078433]  omap_hsmmc.0: alias fck already exists
[    0.080476] Configuring audio...
[    0.080548] _omap_mux_get_by_name: Could not find signal mii1_refclk.mcasp1_ahclkx
[    0.080592] Registering mcasp1
[    0.080838]  omap_i2c.1: alias fck already exists
[    0.100342] bio: create slab <bio-0> at 0
[    0.102312] SCSI subsystem initialized
[    0.104422] usbcore: registered new interface driver usbfs
[    0.104752] usbcore: registered new interface driver hub
[    0.104962] usbcore: registered new device driver usb
[    0.106585] omap_i2c omap_i2c.3: bus 3 rev4.0 at 100 kHz
[    0.107636] tps65910 3-002d: JTAGREVNUM 0x0
[    0.109710] print_constraints: VRTC: 
[    0.110491] print_constraints: VIO: at 1800 mV 
[    0.112783] print_constraints: VDD1: 600 <--> 1500 mV at 1262 mV normal 
[    0.114308] print_constraints: VDD2: at 1137 mV 
[    0.114545] print_constraints: VDD3: 5000 mV 
[    0.115183] print_constraints: VDIG1: at 1800 mV 
[    0.115837] print_constraints: VDIG2: at 1800 mV 
[    0.116496] print_constraints: VPLL: at 1800 mV 
[    0.117157] print_constraints: VDAC: at 1800 mV 
[    0.117808] print_constraints: VAUX1: at 1800 mV 
[    0.118473] print_constraints: VAUX2: at 3300 mV 
[    0.119206] print_constraints: VAUX33: at 3300 mV 
[    0.119915] print_constraints: VMMC: at 3300 mV 
[    0.120383] tps65910 3-002d: No interrupt support, no core IRQ
[    0.120575] omap_i2c omap_i2c.2: bus 2 rev4.0 at 100 kHz
[    0.139087] omap_i2c omap_i2c.1: bus 1 rev4.0 at 100 kHz
[    0.140153] Advanced Linux Sound Architecture Driver Version 1.0.24.
[    0.141210] Switching to clocksource gp timer
[    0.149106] Switched to NOHz mode on CPU #0
[    0.156483] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
[    0.156682] musb-hdrc musb-hdrc.0: dma type: pio
[    0.157536] musb-hdrc musb-hdrc.0: USB OTG mode controller at d080a000 using PIO, IRQ 18
[    0.157724] musb-hdrc musb-hdrc.1: dma type: pio
[    0.158456] musb-hdrc musb-hdrc.1: USB OTG mode controller at d080c800 using PIO, IRQ 19
[    0.158855] NET: Registered protocol family 2
[    0.159047] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.159333] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[    0.159491] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
[    0.159588] TCP: Hash tables configured (established 8192 bind 8192)
[    0.159601] TCP reno registered
[    0.159614] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.159638] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.159828] NET: Registered protocol family 1
[    0.160104] RPC: Registered named UNIX socket transport module.
[    0.160118] RPC: Registered udp transport module.
[    0.160128] RPC: Registered tcp transport module.
[    0.160138] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.160345] NetWinder Floating Point Emulator V0.97 (double precision)
[    0.172988] VFS: Disk quotas dquot_6.5.2
[    0.173054] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.173602] msgmni has been set to 493
[    0.174340] io scheduler noop registered
[    0.174354] io scheduler deadline registered
[    0.174414] io scheduler cfq registered (default)
[    0.175472] DA8XX FB - options = bpp=16
[    0.175586] da8xx_lcdc da8xx_lcdc.0: GLCD: Found 800x600 panel
[    0.175614] DA8XX FB: 800 x 600 16 bpp
[    0.184421] Console: switching to colour frame buffer device 100x37
[    0.189335] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.191093] omap_uart.0: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0
[    0.810468] console [ttyO0] enabled
[    0.814670] omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
[    0.822449] omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
[    0.830115] omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
[    0.837833] omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
[    0.845522] omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5
[    0.862051] brd: module loaded
[    0.869631] loop: module loaded
[    0.873339] i2c-core: driver [tsl2550] using legacy suspend method
[    0.879792] i2c-core: driver [tsl2550] using legacy resume method
[    0.886236] at24 2-0050: 256 byte 24c02 EEPROM, read-only, 0 bytes/write
[    0.899091] MityARM-335x: Found MAC = 00:00:00:00:00:00
[    0.904559] MityARM-335x: Part Number = 3359-EX-227-RC-X
[    0.912865] m25p80 spi2.0: m25p64-nonjedec (8192 Kbytes)
[    0.918415] Creating 1 MTD partitions on "spi_flash":
[    0.923737] 0x000000000000-0x000000800000 : "NOR User Defined"
[    0.931525] omap2-nand driver initializing
[    0.936147] ONFI flash detected
[    0.939542] ONFI param page 0 valid
[    0.943212] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xda (Micron MT29F2G08ABAEAWP)
[    0.951586] Creating 8 MTD partitions on "omap2-nand.0":
[    0.957125] 0x000000000000-0x000000020000 : "SPL"
[    0.963415] 0x000000020000-0x000000040000 : "SPL.backup1"
[    0.970320] 0x000000040000-0x000000060000 : "SPL.backup2"
[    0.977278] 0x000000060000-0x000000080000 : "SPL.backup3"
[    0.984150] 0x000000080000-0x000000260000 : "U-Boot"
[    0.991216] 0x000000260000-0x000000280000 : "U-Boot Env"
[    0.998080] 0x000000280000-0x000000780000 : "Kernel"
[    1.006624] 0x000000780000-0x000010000000 : "File System"
[    1.115928] OneNAND driver initializing
[    1.171265] davinci_mdio davinci_mdio.0: davinci mdio revision 1.6
[    1.177716] davinci_mdio davinci_mdio.0: detected phy mask fffffffd
[    1.184671] am335x_vsc8601_phy_fixup 70421 here addr = 1
[    1.190912] davinci_mdio.0: probed
[    1.194484] davinci_mdio davinci_mdio.0: phy[1]: device 0:01, driver unknown
[    1.202051] CAN device driver interface
[    1.206054] CAN bus driver for Bosch D_CAN controller 1.0
[    1.212471] d_can d_can.0: d_can device registered (irq=52, irq_obj=53)
[    1.219976] d_can d_can.1: d_can device registered (irq=55, irq_obj=56)
[    1.227692] usbcore: registered new interface driver cdc_ether
[    1.233989] usbcore: registered new interface driver cdc_subset
[    1.240208] Initializing USB Mass Storage driver...
[    1.245516] usbcore: registered new interface driver usb-storage
[    1.251795] USB Mass Storage support registered.
[    1.256671]  gadget: using random self ethernet address
[    1.262140]  gadget: using random host ethernet address
[    1.268102] usb0: MAC c2:7b:52:bf:9e:f3
[    1.272126] usb0: HOST MAC 7e:40:5d:30:09:68
[    1.276651]  gadget: Ethernet Gadget, version: Memorial Day 2008
[    1.282941]  gadget: g_ether ready
[    1.286511] musb-hdrc musb-hdrc.0: MUSB HDRC host driver
[    1.292156] musb-hdrc musb-hdrc.0: new USB bus registered, assigned bus number 1
[    1.299972] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    1.307070] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.314610] usb usb1: Product: MUSB HDRC host driver
[    1.319781] usb usb1: Manufacturer: Linux 3.1.0+ musb-hcd
[    1.325417] usb usb1: SerialNumber: musb-hdrc.0
[    1.330997] hub 1-0:1.0: USB hub found
[    1.334973] hub 1-0:1.0: 1 port detected
[    1.339731] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
[    1.345322] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 2
[    1.353119] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[    1.360200] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.367741] usb usb2: Product: MUSB HDRC host driver
[    1.372923] usb usb2: Manufacturer: Linux 3.1.0+ musb-hcd
[    1.378550] usb usb2: SerialNumber: musb-hdrc.1
[    1.383980] hub 2-0:1.0: USB hub found
[    1.387901] hub 2-0:1.0: 1 port detected
[    1.393011] mousedev: PS/2 mouse device common for all mice
[    1.399997] omap_rtc omap_rtc: rtc core: registered omap_rtc as rtc0
[    1.407003] i2c /dev entries driver
[    1.455311] OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[    1.462402] cpuidle: using governor ladder
[    1.467156] cpuidle: using governor menu
[    1.474802] usbcore: registered new interface driver usbhid
[    1.480630] usbhid: USB HID core driver
[    1.485479] usbcore: registered new interface driver snd-usb-audio
[    1.508334] tlv320aic26-codec spi1.1: Probing AIC26 SoC CODEC driver
[    1.533989] asoc: tlv320aic26-hifi <-> davinci-mcasp.1 mapping ok
[    1.541646] ALSA device list:
[    1.544742]   #0: MityARM-335X DevKit
[    1.548559] oprofile: hardware counters not available
[    1.553843] oprofile: using timer interrupt.
[    1.558315] nf_conntrack version 0.5.0 (3948 buckets, 15792 max)
[    1.565091] ip_tables: (C) 2000-2006 Netfilter Core Team
[    1.570752] TCP cubic registered
[    1.574149] NET: Registered protocol family 17
[    1.578789] can: controller area network core (rev 20090105 abi 8)
[    1.585340] NET: Registered protocol family 29
[    1.590015] can: raw protocol (rev 20090105)
[    1.594477] can: broadcast manager protocol (rev 20090105 t)
[    1.600414] Registering the dns_resolver key type
[    1.605413] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[    1.613423] ThumbEE CPU extension supported.
[    1.622199] regulator_init_complete: VMMC: incomplete constraints, leaving on
[    1.630144] regulator_init_complete: VAUX33: incomplete constraints, leaving on
[    1.638269] regulator_init_complete: VAUX2: incomplete constraints, leaving on
[    1.646296] regulator_init_complete: VAUX1: incomplete constraints, leaving on
[    1.654317] regulator_init_complete: VDAC: incomplete constraints, leaving on
[    1.662244] regulator_init_complete: VPLL: incomplete constraints, leaving on
[    1.669788] mmc0: new high speed SDHC card at address 0007
[    1.676092] regulator_init_complete: VDIG2: incomplete constraints, leaving on
[    1.683798] mmcblk0: mmc0:0007 SD32G 29.3 GiB 
[    1.689449] regulator_init_complete: VDIG1: incomplete constraints, leaving on
[    1.697248]  mmcblk0: p1 p2 p3
[    1.702079] regulator_init_complete: VDD2: incomplete constraints, leaving on
[    1.709994] regulator_init_complete: VIO: incomplete constraints, leaving on
[    1.717822] regulator_init_complete: VRTC: incomplete constraints, leaving on
[    1.725563] Detected MACID=d4:94:a1:83:61:50
[    1.731550] omap_rtc omap_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
[    1.745287] kjournald starting.  Commit interval 5 seconds
[    1.751047] EXT3-fs (mmcblk0p2): warning: maximal mount count reached, running e2fsck is recommended
[    1.770818] EXT3-fs (mmcblk0p2): using internal journal
[    1.776293] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode
[    1.783516] VFS: Mounted root (ext3 filesystem) on device 179:2.
[    1.790120] Freeing init memory: 236K
INIT: version 2.86 booting
Please wait: booting...
Starting udev
[    2.258218] udevd (737): /proc/737/oom_adj is deprecated, please use /proc/737/oom_score_adj instead.
[    8.548245] kjournald starting.  Commit interval 5 seconds
[    8.554068] EXT3-fs (mmcblk0p3): warning: maximal mount count reached, running e2fsck is recommended
[    8.567816] EXT3-fs (mmcblk0p3): using internal journal
[    8.573296] EXT3-fs (mmcblk0p3): mounted filesystem with ordered data mode
[    8.631955] alignment: ignoring faults is unsafe on this CPU.  Defaulting to fixup mode.
Remounting root file system...
Caching udev devnodes
Configuring network interfaces... [   13.698369] PHY 0:00 not found
[   13.701681] am335x_vsc8601_phy_fixup 70421 here addr = 1
[   13.707960] 
[   13.707964] CPSW phy found : id is : 0x70421
eth0      no wireless extensions.

udhcpc (v1.13.2) started
Sending discover...
Sending discover...
Sending discover...
No lease, forking to background
done.
Setting up IP spoofing protection: rp_filter.
Sat Dec 24 10:11:00 UTC 2011
INIT: Entering runlevel: 5
Starting system message bus: dbus.
Starting Hardware abstraction layer hald
Starting Dropbear SSH server: dropbear.
Starting syslogd/klogd: done

FATAL: Error inserting g_mass_storage (/lib/modules/3.1.0+/kernel/drivers/usb/gadget/g_mass_storage.ko): No such device
***************************************************************
***************************************************************
NOTICE: This file system contains the followin GPLv3 packages:
        binutils-dev
        binutils-symlinks
        binutils
        gdbserver

.t you do not wish to distribute GPLv3 components please remove
                                                                                                    
,--.   ,--.,--.  ,--.            ,---.  ,------. ,--.   ,--. 
|   `.'   |`--',-'  '-.,--. ,--./  O  \ |  .--. '|   `.'   |
|  |'.'|  |,--.'-.  .-' \  '  /|  .-.  ||  '--'.'|  |'.'|  |
|  |   |  ||  |  |  |    \   ' |  | |  ||  |\  \ |  |   | 
`--'   `--'`--'  `--'  .-'  /  `--' `--'`--' '--'`--'   `--' 
                       `---'                                
          ,----. ,----. ,-----.,--.   ,--. 
          '.-.  |'.-.  ||  .--' \  `.'  /  
            .' <   .' < '--. `\  .'    \   
          /'-'  |/'-'  |.--'  / /  .'.  \  
          `----' `----' `----' '--'   '--' 

Critical Link LLC http://support.criticallink.com mityarm-335x ttyO0
        Linux kernel verison Linux armv7l #33 Wed Mar 14 08:57:27 EDT 2012

mityarm-335x login: 

boot messages - yocto linux

U-Boot SPL 2013.10-g6c6a700 (Nov 20 2013 - 17:01:23)
MityARM335x profile 1 - Model No: 3354-GX-X38-RC Serial No: 134007
Configuring for 512 MB DDR3 @ 303MHz
Critical Link AM335X Dev Kit -- NAND Page size = 4096k booting from dev 5
Using 4k bch16 layout
ECC Mode = 2 lo = 208/0
nand_spl_load_image: loading 4096 bytes from 100000 to 80800000
nand_spl_load_image: loading 457164 bytes from 100000 to 807fffc0


U-Boot 2013.10-g6c6a700 (Nov 20 2013 - 17:01:23)

AM335X-GP rev 0
I2C:   ready
DRAM:  512 MiB
WARNING: Caches not enabled
NAND:  Using 4k bch16 layout
ECC Mode = 2 lo = 208/0
512 MiB
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
Net:   cpsw:1 is connected to cpsw.  Reconnecting to cpsw
cpsw
Hit any key to stop autoboot:  0 
Booting from network ...
cpsw Waiting for PHY auto negotiation to complete......... TIMEOUT !
cpsw Waiting for PHY auto negotiation to complete.. done
link up on port 1, speed 1000, full duplex
BOOTP broadcast 1
link up on port 0, speed 1000, full duplex
BOOTP broadcast 2
DHCP client bound to address 142.90.111.121
link up on port 0, speed 1000, full duplex
link up on port 1, speed 1000, full duplex
Using cpsw device
TFTP from server 142.90.111.60; our IP address is 142.90.111.121
Filename 'mityarm/uImage-KO3'.
Load address: 0x80007fc0
Loading: #################################################################
         #################################################################
         #################################################################
         ######
         510.7 KiB/s
done
Bytes transferred = 2942488 (2ce618 hex)
## Booting kernel from Legacy Image at 80007fc0 ...
   Image Name:   Linux-3.2.0-00219-g9543149-dirty
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2942424 Bytes = 2.8 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   XIP Kernel Image ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Linux version 3.2.0-00219-g9543149-dirty (olchansk@ladd00.triumf.ca) (gcc version 4.5.3 20110311 (prerelease) (GCC) ) #19 Mon Dec 16 14:23:17 PST 2013
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: mityarm335x
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] AM335X ES1.0 (sgx neon )
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
[    0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/nfs nfsroot=142.90.111.60:,nolock rw ip=dhcp
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 512MB = 512MB total
[    0.000000] Memory: 513564k/513564k available, 10724k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xe0800000 - 0xff000000   ( 488 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0541000   (5348 kB)
[    0.000000]       .init : 0xc0541000 - 0xc0579000   ( 224 kB)
[    0.000000]       .data : 0xc057a000 - 0xc05d0728   ( 346 kB)
[    0.000000]        .bss : 0xc05d074c - 0xc0609fcc   ( 231 kB)
[    0.000000] NR_IRQS:396
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[    0.000000] Total of 128 interrupts on 1 active controller
[    0.000000] OMAP clockevent source: GPTIMER2 at 24000000 Hz
[    0.000000] OMAP clocksource: GPTIMER1 at 32768 Hz
[    0.000000] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 131071999ms
[    0.000000] Console: colour dummy device 80x30
[    0.000152] Calibrating delay loop... 718.02 BogoMIPS (lpj=3590144)
[    0.056518] pid_max: default: 32768 minimum: 301
[    0.056640] Security Framework initialized
[    0.056732] Mount-cache hash table entries: 512
[    0.057128] CPU: Testing write buffer coherency: ok
[    0.057861] devtmpfs: initialized
[    0.076629] omap_hwmod: gfx: failed to hardreset
[    0.092224] omap_hwmod: pruss: failed to hardreset
[    0.093322] print_constraints: dummy: 
[    0.093658] NET: Registered protocol family 16
[    0.095825] OMAP GPIO hardware version 0.1
[    0.098083] omap_mux_init: Add partition: #1: core, flags: 0
[    0.100524]  omap_i2c.3: alias fck already exists
[    0.100799]  omap_i2c.2: alias fck already exists
[    0.101440] Registering mcspi 1 [2]
[    0.101470]  omap2_mcspi.1: alias fck already exists
[    0.101654] Registering mcspi 2 [2]
[    0.101715]  omap2_mcspi.2: alias fck already exists
[    0.101959]  edma.0: alias fck already exists
[    0.101989]  edma.0: alias fck already exists
[    0.102020]  edma.0: alias fck already exists
[    0.119232] bio: create slab <bio-0> at 0
[    0.121154] SCSI subsystem initialized
[    0.122741] usbcore: registered new interface driver usbfs
[    0.123046] usbcore: registered new interface driver hub
[    0.123260] usbcore: registered new device driver usb
[    0.142883] omap_i2c omap_i2c.3: bus 3 rev2.4.0 at 100 kHz
[    0.143829] tps65910 3-002d: JTAGREVNUM 0x1
[    0.146118] print_constraints: VRTC: 
[    0.147521] print_constraints: VIO: at 1500 mV 
[    0.149719] print_constraints: VDD1: 600 <--> 1500 mV at 1137 mV normal 
[    0.151916] print_constraints: VDD2: 600 <--> 1500 mV at 1137 mV normal 
[    0.152862] print_constraints: VDD3: 5000 mV 
[    0.154266] print_constraints: VDIG1: at 1800 mV 
[    0.155609] print_constraints: VDIG2: at 1800 mV 
[    0.156982] print_constraints: VPLL: at 1800 mV 
[    0.158355] print_constraints: VDAC: at 1800 mV 
[    0.159729] print_constraints: VAUX1: at 1800 mV 
[    0.161071] print_constraints: VAUX2: at 3300 mV 
[    0.162445] print_constraints: VAUX33: at 3300 mV 
[    0.163818] print_constraints: VMMC: at 3300 mV 
[    0.164306] tps65910 3-002d: No interrupt support, no core IRQ
[    0.181243] omap_i2c omap_i2c.2: bus 2 rev2.4.0 at 100 kHz
[    0.183105] Switching to clocksource gp timer
[    0.201202] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
[    0.201599] NET: Registered protocol family 2
[    0.201812] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.202117] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[    0.202392] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
[    0.202575] TCP: Hash tables configured (established 16384 bind 16384)
[    0.202575] TCP reno registered
[    0.202575] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.202606] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.202789] NET: Registered protocol family 1
[    0.203063] RPC: Registered named UNIX socket transport module.
[    0.203094] RPC: Registered udp transport module.
[    0.203094] RPC: Registered tcp transport module.
[    0.203094] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.203369] NetWinder Floating Point Emulator V0.97 (double precision)
[    0.222320] VFS: Disk quotas dquot_6.5.2
[    0.222381] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.223205] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.223815] msgmni has been set to 1003
[    0.224609] io scheduler noop registered
[    0.224609] io scheduler deadline registered
[    0.224670] io scheduler cfq registered (default)
[    0.225219] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.227111] omap_uart.0: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0
[    0.754943] console [ttyO0] enabled
[    0.759033] omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
[    0.766571] omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
[    0.774108] omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
[    0.781585] omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
[    0.789123] omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5
[    0.806518] brd: module loaded
[    0.815002] loop: module loaded
[    0.818237] at24 2-0050: 256 byte 24c02 EEPROM, read-only, 0 bytes/write
[    0.830566] MityARM-335x: Part Number = 3354-GX-X38-RC
[    0.836303] No SPI NOR Flash found.
[    0.839813] Configuring 512MB NAND device
[    0.844543] omap-gpmc omap-gpmc: GPMC revision 6.0
[    0.849334] Registering NAND on CS0
[    0.854980] m25p80 spi2.0: m25p64-nonjedec (8192 Kbytes)
[    0.860290] Creating 1 MTD partitions on "spi_flash":
[    0.865386] 0x000000000000-0x000000800000 : "NOR User Defined"
[    0.873168] omap2-nand driver initializing
[    0.877624] ONFI flash detected
[    0.880859] ONFI param page 0 valid
[    0.884368] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xdc (Micron MT29F4G08ABAEAWP)
[    0.892395] Creating 8 MTD partitions on "omap2-nand.0":
[    0.897735] 0x000000000000-0x000000040000 : "SPL"
[    0.904022] 0x000000040000-0x000000080000 : "SPL.backup1"
[    0.910797] 0x000000080000-0x0000000c0000 : "SPL.backup2"
[    0.917633] 0x0000000c0000-0x000000100000 : "SPL.backup3"
[    0.924499] 0x000000100000-0x000000300000 : "U-Boot"
[    0.931243] 0x000000300000-0x000000340000 : "U-Boot Env"
[    0.938018] 0x000000340000-0x000000840000 : "Kernel"
[    0.945343] 0x000000840000-0x000020000000 : "File System"
[    1.052642] OneNAND driver initializing
[    1.103698] davinci_mdio davinci_mdio.0: davinci mdio revision 1.6
[    1.109893] davinci_mdio davinci_mdio.0: detected phy mask fffffffd
[    1.116790] davinci_mdio.0: probed
[    1.120178] davinci_mdio davinci_mdio.0: phy[1]: device 0:01, driver unknown
[    1.127410] Initializing USB Mass Storage driver...
[    1.132476] usbcore: registered new interface driver usb-storage
[    1.138519] USB Mass Storage support registered.
[    1.143707] mousedev: PS/2 mouse device common for all mice
[    1.149719] omap_rtc omap_rtc: rtc core: registered omap_rtc as rtc0
[    1.156127] omap_rtc: already running
[    1.159942] i2c /dev entries driver
[    1.164916] OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[    1.173126] cpuidle: using governor ladder
[    1.177734] cpuidle: using governor menu
[    1.184600] usbcore: registered new interface driver usbhid
[    1.190185] usbhid: USB HID core driver
[    1.194030] oprofile: hardware counters not available
[    1.199096] oprofile: using timer interrupt.
[    1.203369] nf_conntrack version 0.5.0 (8024 buckets, 32096 max)
[    1.209930] ip_tables: (C) 2000-2006 Netfilter Core Team
[    1.215362] TCP cubic registered
[    1.218597] NET: Registered protocol family 17
[    1.223083] Registering the dns_resolver key type
[    1.227874] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[    1.235565] ThumbEE CPU extension supported.
[    1.239868] mux: Failed to setup hwmod io irq -22
[    1.245208] Power Management for AM33XX family
[    1.249816] Trying to load am335x-pm-firmware.bin (60 secs timeout)
[    1.256225] Copied the M3 firmware to UMEM
[    1.260345] omap_hwmod: wkup_m3: wkup_m3: hwmod data error: OMAP4 does not support st_shift
[    1.274749] Detected MACID=78:c5:e5:be:6b:6f
[    1.280212] omap_rtc omap_rtc: setting system clock to 2000-01-01 00:27:24 UTC (946686444)
[    1.290893] PHY 0:00 not found
[    1.294219] 
[    1.294219] CPSW phy found : id is : 0x221611
[    3.295227] PHY: 0:01 - Link is Up - 1000/Full
[    3.334320] Sending DHCP requests ., OK
[    3.354736] IP-Config: Got DHCP answer from 142.90.111.60, my address is 142.90.111.121
[    3.363372] IP-Config: Complete:
[    3.366638]      device=eth0, addr=142.90.111.121, mask=255.255.224.0, gw=142.90.100.18,
[    3.374481]      host=lxdaq30.triumf.ca, domain=triumf.ca, nis-domain=(none),
[    3.381622]      bootserver=142.90.111.60, rootserver=142.90.111.60, rootpath=/data0/root/%s,v3,tcp,hard
[    3.407958] VFS: Mounted root (nfs filesystem) on device 0:14.
[    3.414184] devtmpfs: mounted
[    3.417541] Freeing init memory: 224K
INIT: version 2.88 booting
Starting udev
[    4.163543] udevd[541]: starting version 182
Starting Bootlog daemon: bootlogd: cannot allocate pseudo tty: No such file or directory
bootlogd.
Starting rpcbind daemon...rpcbind: cannot create socket for udp6
rpcbind: cannot create socket for tcp6
done.
Starting rpcbind... Mounting remote filesystems...
INIT: Entering runlevel: 5
Starting system message bus: dbus.
Starting OpenBSD Secure Shell server: sshd
done.
Starting syslogd/klogd: done
Stopping Bootlog daemon: bootlogd.
umount: /mnt/.psplash: not mounted

Poky (Yocto Project Reference Distro) 1.5 lxdaq30.triumf.ca /dev/ttyO0

lxdaq30.triumf.ca login: 

Write PHY registers from uboot

Example for Micrel KSZ9021 PHY extended registers:

0x104: default value is 0x7777: bits are 0xqxyz
  q=RX_CLK delay, 0.2ns unit
  x=RX_CTL delay
  y=TX_CLK delay
  z=TX_CTL delay
0x105: default value is 0x7777, each 4 bits are for RXD3,2,1,0, 0.2ns unit

U-Boot# mii write 1 b 104
U-Boot# mii read 1 b     
0104
U-Boot# mii read 1 d     
7777
U-Boot# mii write 1 b 8104
U-Boot# mii write 1 c a777
U-Boot# mii write 1 b 104
U-Boot# mii read 1 d  
A777
U-Boot# mii write 1 b 105
U-Boot# mii read 1 d     
7777
U-Boot# mii write 1 b 8105
U-Boot# mii write 1 c 0000
U-Boot# mii write 1 b 105 
U-Boot# mii read 1 d      
0000

BOOTCONFIG

BOOTCONFIG settings:

  • CL eval board:
    • BOOTCONFIG[0..11] are SYSBOOT[0..11]
    • boot from SD: all open, [3] closed
    • boot from on-SoM NAND: all open, close [2], [3], [8], [9], [10], [11] (6 jumpers)
  • CAMAC board:
    • top-to-bottom: B0..4,G0..5,R0 correspond to LCD_DATA[0..11] are SYSBOOT[0..11]
    • boot from SD: all open, B3 closed
    • boot from on-SoM NAND: all open, close B2, B3, G3, G4, G5, R0 (6 jumpers)

NOTES:

  • boot from EMAC1 requires PHY connection to RGMII1, CLeval and CAMAC boards connected PHY to RGMII2.

SYSBOOT modes: http://ladd00.triumf.ca/~olchansk/MityARM/Docs/spruh73g.pdf table 26-7

SYSBOOT[4..0]
00000 - reserved
00001 - UART0
00010 - UART0
00011 - UART0
00100 - UART0
00101 - UART0
00110 - EMAC1, SYSBOOT[7..6]: 00=MII, 01=RMII, 10=reserved, 11=RGMII
00111 - EMAC1
01000 - EMAC1
01001 - EMAC1
01010 - EMAC1
01011 - USB0
01100 - USB0
01101 - USB0
01110 - reserved
01111 - fast external boot
10000 - XIP
10001 - XIP
10010 - NAND
10011 - NAND
10100 - NAND
10101 - NAND-I2C
10110 - SPI0
10111 - MMC0 <---- default (boot from SD flash) - other bits - don't care
11000 - SPI0
11001 - SPI0
11010 - XIP
11011 - XIP
11100 - MMC1
11101 - reserved
11110 - reserved
11111 - fast external boot

GPMC interface

0x8 = CS0 0x9 = CS1 0xa = CS2 0xb = CS3

./gpmc 0x0a000000 0x12ff5678

pinmux through debugfs

  • mount debugfs:
    • echo "none /sys/kernel/debug debugfs defaults 0 0" >> /etc/fstab
    • mount -a
    • ls -l /sys/kernel/debug/omap_mux/
  • show pinmux state:
    • cat /sys/kernel/debug/omap_mux/board/core | grep GPMC
  • enable GPMC pins:
echo 30 >> /sys/kernel/debug/omap_mux/gpmc_ad8     ### AD pin
echo 30 >> /sys/kernel/debug/omap_mux/gpmc_ad9     ### AD pin
echo 30 >> /sys/kernel/debug/omap_mux/gpmc_ad10     ### AD pin
echo 30 >> /sys/kernel/debug/omap_mux/gpmc_ad11     ### AD pin
echo 30 >> /sys/kernel/debug/omap_mux/gpmc_ad12     ### AD pin
echo 30 >> /sys/kernel/debug/omap_mux/gpmc_ad13     ### AD pin
echo 30 >> /sys/kernel/debug/omap_mux/gpmc_ad14     ### AD pin
echo 30 >> /sys/kernel/debug/omap_mux/gpmc_ad15     ### AD pin

echo 8 >> /sys/kernel/debug/omap_mux/gpmc_csn1     ### CS pin
echo 8 >> /sys/kernel/debug/omap_mux/gpmc_csn2     ### CS pin
echo 8 >> /sys/kernel/debug/omap_mux/gpmc_csn3     ### CS pin

echo 8 >> /sys/kernel/debug/omap_mux/gpmc_ben1     ### output pin
echo 30 >> /sys/kernel/debug/omap_mux/gpmc_clk     ### CLK has to be configured as in "input" pin

Work with the Fedora images

  • xz -d < Fedora-Minimal-armhfp-19-1-sda.raw.xz > Fedora-Minimal-armhfp-19-1-sda.raw
  • fdisk -lu Fedora-Minimal-armhfp-19-1-sda.raw ### show the partition table:
[root@ladd00 Fedora]# fdisk -lu Fedora-Minimal-armhfp-19-1-sda.raw
You must set cylinders.
You can do this from the extra functions menu.

Disk Fedora-Minimal-armhfp-19-1-sda.raw: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0007895f

                             Device Boot      Start         End      Blocks   Id  System
Fedora-Minimal-armhfp-19-1-sda.raw1            1953     1001953      500000+  83  Linux
Partition 1 does not end on cylinder boundary.
Fedora-Minimal-armhfp-19-1-sda.raw2         1001954     2001953      500000   83  Linux
Partition 2 does not end on cylinder boundary.
Fedora-Minimal-armhfp-19-1-sda.raw3         2001954    14697265     6347656   83  Linux
Partition 3 does not end on cylinder boundary.
  • mount -r -o loop,offset=1025000448 Fedora-Minimal-armhfp-19-1-sda.raw /mnt/tmp ### the offset value is the partition "Start" value multiplied by 512.

NAND boot configuration

cd /media/mmcblk0p1/
flash_erase /dev/mtd1 0 0
nandwrite -p /dev/mtd1 MLO
flash_erase /dev/mtd2 0 0
nandwrite -p /dev/mtd2 MLO
flash_erase /dev/mtd3 0 0
nandwrite -p /dev/mtd3 MLO
flash_erase /dev/mtd4 0 0
nandwrite -p /dev/mtd4 MLO
flash_erase /dev/mtd5 0 0
nandwrite -p /dev/mtd5 u-boot.img
  • setup boot jumpers to boot from NAND flash:
BOOTCONFIG [0..11]
::[:][:]::::[:][:][:][:]
  • (to boot from MMC/SD flash)
BOOTCONFIG [0..11]
:::[:]::::::::
  • power off
  • connect serial console
  • power on
  • on serial console: press <space> to get into the uboot shell
  • (notice how u-boot complains about loading default environememt)
  • on serial console, type these commands:
setenv bootcmd_orig \'${bootcmd}\'
setenv bootcmd 'run net_boot'
setenv rootpath
saveenv
  • cycle power
  • again, press space to get into the uboto shell
  • (notice how the complaints about default environement are gone)
  • run net_boot
  • (on dhcp server, observe how we get an IP address and try to load the linux kernel)
  • on the dhcp server, add this to dhcpd.conf:
group {
	option routers 142.90.100.18;
	option subnet-mask 255.255.224.0;
	option domain-name "triumf.ca";
	option domain-name-servers 142.90.100.19, 142.90.100.68;
	default-lease-time infinite;
	max-lease-time infinite;

	filename "mityarm/uImage";
        next-server ladd00;
	option root-path "142.90.111.60:/data0/root/%s,v3,tcp,hard";

	host lxdaq30-eth0 { fixed-address lxdaq30; option host-name "lxdaq30.triumf.ca"; hardware ethernet D4:94:A1:83:61:50; } # mityarm
        host lxdaq30-eth1 { fixed-address lxdaq30; option host-name "lxdaq30.triumf.ca"; hardware ethernet D4:94:A1:83:61:51; } # mityarm
}
  • on the dhcp server, put uImage from the MityArm SD flash card into /var/lib/tftpboot/mityarm
  • on the dhcp server, "server dhcpd restart", "tail -100f /var/log/messages"
  • on the MityArm serial console, reset, press <space> to get the u-boot prompt, say "run net_boot"
  • on the dhcp server, observe we get an IP address, we tftp load "uImage", try to mount the root filesystem
  • on the MityArm serial console, observe we get an IP address, tftp load the kernel, start the kernel, try to mount the root filesystem.
  • root filesystem should be at /data0/root/lxdaq30.triumf.ca created by "rsync -av" of the SDflash root filesystem.

Build U-Boot

instructions: http://support.criticallink.com/redmine/projects/armc8-platforms/wiki/Das_U-Boot_Port

git clone git://support.criticallink.com/home/git/u-boot-mityarm-335x.git
cd u-boot-mityarm-335x
make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- mityarm335x_config
make ARCH=arm CROSS_COMPILE=/ladd/data0/olchansk/MityARM/TI/ti-sdk-am335x-evm-05.05.00.00/linux-devkit/bin/arm-arago-linux-gnueabi- mityarm335x

This creates:

ladd00:u-boot-mityarm-335x$ ls -l MLO u-boot* tools/mkimage
-rw-r--r-- 1 olchansk users   38643 Dec  5 16:39 MLO
-rwxr-xr-x 1 olchansk users   70320 Dec  5 16:38 tools/mkimage
-rwxr-xr-x 1 olchansk users 1769651 Dec  5 16:39 u-boot
-rw-r--r-- 1 olchansk users  373252 Dec  5 16:39 u-boot.bin
-rw-r--r-- 1 olchansk users  373316 Dec  5 16:39 u-boot.img
-rw-r--r-- 1 olchansk users     846 Dec  5 16:39 u-boot.lds
-rw-r--r-- 1 olchansk users  107524 Dec  5 16:39 u-boot.map
-rw-r--r-- 1 olchansk users 1119828 Dec  5 16:39 u-boot.srec
ladd00:u-boot-mityarm-335x$ 

The files MLO and u-boot.img are used to boot the linux kernel.

The executable file tools/mkimage is used to build the linux kernel.

Build linux kernel

instructions: http://support.criticallink.com/redmine/projects/armc8-platforms/wiki/Linux_Kernel

git clone git://support.criticallink.com/home/git/linux-mityarm-335x.git
cd linux-mityarm-335x
git checkout mityarm-linux-v3.2
cp ../am335x-pm-firmware.bin ./firmware/
make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- mityarm-335x-devkit_defconfig
make ARCH=arm CROSS_COMPILE=arm-arago-linux-gnueabi- menuconfig
make ARCH=arm CROSS_COMPILE=/ladd/data0/olchansk/MityARM/TI/ti-sdk-am335x-evm-05.05.00.00/linux-devkit/bin/arm-arago-linux-gnueabi- uImage
make ARCH=arm CROSS_COMPILE=/ladd/data0/olchansk/MityARM/TI/ti-sdk-am335x-evm-05.05.00.00/linux-devkit/bin/arm-arago-linux-gnueabi- modules
make ARCH=arm CROSS_COMPILE=/ladd/data0/olchansk/MityARM/TI/ti-sdk-am335x-evm-05.05.00.00/linux-devkit/bin/arm-arago-linux-gnueabi- INSTALL_MOD_PATH=../rootfs modules_install

To build the kernel for the CAMAC board: (there are no kernel modules to build or install)

git checkout triumf/camac
make ARCH=arm CROSS_COMPILE=/ladd/data0/olchansk/MityARM/TI/ti-sdk-am335x-evm-06.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin/arm-linux-gnueabihf- uImage -j6
cp arch/arm/boot/uImage /var/lib/tftpboot/mityarm/uImage

If the above complains about missing "mkimage", do this:

cp -pv ../u-boot-mityarm-335x/tools/mkimage /ladd/data0/olchansk/MityARM/TI/ti-sdk-am335x-evm-05.05.00.00/linux-devkit/bin/arm-arago-linux-gnueabi-mkimage
cp -pv ../u-boot-mityarm-335x/tools/mkimage /ladd/data0/olchansk/MityARM/TI/ti-sdk-am335x-evm-06.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin/arm-linux-gnueabihf-mkimage

List of on-board hardware

Create initramfs

cd .../rootfs
find . | cpio -o -H newc | gzip > ../rootfs.cpio.gz
  • in linux kernel menuconfig set initramfs to .../rootfs.cpio.gz
  • make sure there is a "/init" in the initramfs - that's what is executed first

Access U-Boot environement from Linux

  • create /etc/fw_env.conf
# MTD device name       Device offset   Env. size       Flash sector size
/dev/mtd6 0 0x20000 0x40000
  • run: /ladd/data0/olchansk/MityARM/Fedora/Fedora-Minimal-armhfp-19-1-part3/usr/bin/fw_printenv

End

AAA