MityARM
Jump to navigation
Jump to search
CriticalLink MityARM
Links
- http://www.ti.com/lsds/ti/dsp/support/dev_tool/ccs_overview.page
- http://support.criticallink.com/redmine/projects/armc8-platforms/wiki
- http://support.criticallink.com/redmine/projects/armc8-platforms/wiki/Root_Filesystem
- http://arago-project.org/wiki/index.php/Main_Page
- http://support.criticallink.com/redmine/projects/armc8-platforms/wiki/Installing_Open_Embedded
- http://processors.wiki.ti.com/index.php/AM335x_release_download_page
- http://processors.wiki.ti.com/index.php/Sitara_SDK_5.05.00_Release_Notes
- http://downloads.ti.com/dsps/dsps_public_sw/am_bu/sdk/AM335xSDK/latest/exports/sitara-linuxsdk-sdg-05.05.00.00.pdf
- http://www.ti.com/tool/pinmuxtool
Useful links
- http://www.mitydsp.com/products-services/cpu-engines/mityarm-3359/
- http://www.mitydsp.com/products-services/base-boards/mityarm-335x-dev-kit/
- http://www.mitydsp.com/images/upload/File/MityARM-335X%20Development%20Kit.pdf
- http://software-dl.ti.com/dsps/dsps_public_sw/am_bu/sdk/AM335xSDK/latest/index_FDS.html
Ask 2012-oct-19
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
- (not this one) old boot loader from CL: tar xzvf /ladd/data0/olchansk/MityARM/kit/2GB-SDflash-3-29-12/sdd1-FAT32.tgz
- (this one) bootloader compiled by KO:
/bin/cp ~olchansk/daq/MityARM/u-boot-mityarm-335x/MLO . /bin/cp ~olchansk/daq/MityARM/u-boot-mityarm-335x/u-boot.img .
- (not this one) latest boot loader from CL:
/bin/cp /ladd/data0/olchansk/MityARM/CL/MityARM-335X_dev_512MB_Nand/boot/MLO . /bin/cp /ladd/data0/olchansk/MityARM/CL/MityARM-335X_dev_512MB_Nand/boot/u-boot.img . /bin/cp /ladd/data0/olchansk/MityARM/CL/MityARM-335X_dev_512MB_Nand/boot/uEnv.txt .
- linux kernel compiled by KO:
/bin/cp ~olchansk/daq/MityARM/linux-mityarm-335x/arch/arm/boot/uImage .
- umount /mnt/tmp
- mount /dev/sda2 /mnt/tmp
- cd /mnt/tmp
- (not this one) old userland from CL: tar xzvf /ladd/data0/olchansk/MityARM/kit/2GB-SDflash-3-29-12/sdd2-Linux.tgz
- Fedora 20 userland:
rsync -av /ladd/data0/root/lxdaq30.triumf.ca-fedora20/ .
- 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? | +-----------------------------------------------------------------------+ +--------------------[Modem and dialing parameter setup]---------------------+ | | | A - Init string ......... | | B - Reset string ........ | | C - Dialing prefix #1.... ATDT | | D - Dialing suffix #1.... ^M | | E - Dialing prefix #2.... ATDP | | F - Dialing suffix #2.... ^M | | G - Dialing prefix #3.... ATX1DT | | H - Dialing suffix #3.... ;X4D^M | | I - Connect string ...... CONNECT | | J - No connect strings .. NO CARRIER BUSY | | NO DIALTONE VOICE | | K - Hang-up string ...... ~~+++~~ATH^M | | L - Dial cancel string .. ^M | | | | M - Dial time ........... 45 Q - Auto bps detect ..... No | | N - Delay before redial . 2 R - Modem has DCD line .. Yes | | O - Number of tries ..... 10 S - Status line shows ... DTE speed | | P - DTR drop time (0=no). 1 T - Multi-line untag .... No | | | | Change which setting? (Return or Esc to exit) | +----------------------------------------------------------------------------+
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:
Boot messages - Fedora 20
AAA
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
- information from here: http://support.criticallink.com/redmine/projects/armc8-platforms/wiki/UBIFS_Nand_Boot
- boot MityARM CPU, login as root
- install MLO and u-boot:
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 git checkout release_20140214 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_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
- on SoM: http://www.mitydsp.com/products-services/cpu-engines/mityarm-3359 http://ladd00.triumf.ca/~olchansk/MityARM/Docs/MityARM-335x_Datasheet.pdf
- TI 3354/3359 CPU: http://ladd00.triumf.ca/~olchansk/MityARM/Docs/spruh73g.pdf
- 256MB or 512MB NAND flash: GPMC CS#0, 8-bit wide
- 8MB serial NOR flash: SPI1 interface
- configuration EPROM: I2C1 interface (module serial number, ethernet MAC, etc)
- 256MB DDR2 or 512MB DDR3 RAM, 16-bit interface, 300MHz
- power management chip tps65910: I2C1, I2C2 interface, http://ladd00.triumf.ca/~olchansk/MityARM/Docs/tps65910.pdf
- on CAMAC board:
- Micrel KSZ9021RL GigE ethernet PHY: Davinci_MDIO interface http://ladd00.triumf.ca/~olchansk/MityARM/Docs/ksz9021rl-rn_ds.pdf
- Altera Cyclone4 FPGA: GPMC bus
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