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
- 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
- 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 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 ### 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 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
End
AAA