MityARM

From DaqWiki
Jump to navigation Jump to search

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

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: 

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
  • 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 30 >> /sys/kernel/debug/omap_mux/gpmc_csn1     ### CS pin
echo 30 >> /sys/kernel/debug/omap_mux/gpmc_csn2     ### CS pin
echo 30 >> /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 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 ### bombs because no "mkimage"
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

End

AAA