----------------------------------------------------------------------------- - - iMX31-10 SOM-LV Development Sample Image Quick Start Guide - - Copyright (c) 2007 Logic Product Development - ----------------------------------------------------------------------------- For a User Guide to evaluating the Sample Windows CE image, please download and read the Zoom Development Kit Windows CE Evaluation Guide, located here: http://www.logicpd.com/downloads/481/ Here is a quick summary, which assumes LogicLoader commands are understood. You can load and boot from CF or TFTP. You can do this from onboard NAND Flash, but assumes you have copied the NK.bin into Flash (YAFFS) already. In general, there are three steps: (1) Set up the interface that contains the NK.bin (2) Load the NK.bin from that interface into RAM. (3) Execute the NK.bin by running one of the boot scripts provided. ------------------------------------------ _ Boot from CF card _ ------------------------------------------ 1) Copy the provided 'NK.bin' to a CF card on your PC. 2) Plug the CF card into the Develompent Kit and power on. 3) In the LogicLoader losh> prompt, mount the CF card losh> mount fatfs /cf 4) In the LogicLoader losh> prompt, load the NK.bin from the CF card. losh> load bin /cf/NK.bin Note: If this fails, it may be that your PC named the file to NK.BIN You can check this by doing a 'losh> ls /cf' 5) In the LogicLoader, use the TeraTerm 'File' menu and hit 'Send File'. 6) Browse to the proper boot script (which is one of the .losh files provided) and hit 'Open'. For example, if you have a 6.4" Display Kit from Logic, use 'LCD-6.4-VGA-10_ram_boot_script.losh' It should look something like this: losh> exec rtc:rtc_imx31_pmic:coproc:00f00000:dbg_leds:3:dbg_serial :IMX31_UART:disp_num:5 7) You should see the debug output from the Windows CE kernel and the desktop should show on the display. ------------------------------------------ _ Boot from TFTP _ ------------------------------------------ Same steps as for CF, but you must have tftp up and running. Requires a TFTP server on your PC or network that contains the NK.bin. Below is an example of the load command that assumes the TFTP server is at 192.168.0.1. losh> ifconfig sm0 dhcp losh> load bin /tftp/192.168.0.1:NK.bin ------------------------------------------ _ Boot from YAFFS (onboard NAND Flash) _ ------------------------------------------ Same steps as for CF, but you must set up a YAFFS partition that matches what this NK.bin uses. You also have to copy the NK.bin into this YAFFS partition, either by copying from CF, Ethernet (TFTP), or boot into the OS and copy the NK.bin over using ActiveSync. This assumes the NK.bin is in the YaffsPart1 partition already. losh> add-yaffs YaffsPart1 nand B1 B4095; mount yaffs /YaffsPart1; losh> load bin /YaffsPart1/NK.bin ----------------------------------------------------------------------------- - FAQ - ----------------------------------------------------------------------------- Q: Why is the worksapce not provided with this sample NK.bin? A: This image is meant for evaluting the OS on our kit. It includes some nice features and drivers that our in evaluation mode yet and not released to the website. In essence, it isn't easy to provide all of the necessary files that are required to rebuild this workspace. Logic provides a development image that is much simpler and includes a workspace. That image and workspace are meant for a starting point for those building their own NK.bin with Platform Builder. Q: Does this image use the onboard NAND Flash? A: Yes, Logic's YAFFS File System driver is included and uses Blocks 1 through 4096 for one large partition called '/YaffsPart1'. Partition Name: YaffsPart1 Partition Size: 16 KB * 4095 Blocks = ~63 MB Note: Recomendation to note change the partition name and block size via the registry. This image has components that expect /YaffsPart1 to exist as stated above. Note: To access the same YAFFS partition in LogicLoader, you can use the following commands at the 'losh>' prompt. Please read up on LogicLoader YAFFS use in the LogicLoader manual. losh> add-yaffs YaffsPart1 nand B1 B4095; mount yaffs /YaffsPart1; Q: How do I use a custom display? A: Use LogicLoader to set up the display and use 'skiplcdcinit:1:' in the boot string, along with a display mode, e.g. if it was a 320x240 display, choose mode 3 (disp_num:3:skiplcdcinit:1). Note: The display driver will automatically detect the width and height of the settings in the LCD (IPU) controller. Custom displays that do not match a default display mode are ok to use because of this feature. Q: What are the supported display modes for this revision of the sample image? A: 1 - LCD-5.7-VGA-10 (Logic 5.7" Display Kit 320x240) 2 - LCD-12.1-VGA-10 (Logic 12.1" Display Kit 800x600) 3 - LCD-3.6-QVGA-10 (Logic 3.6" Display Kit 320x240) 5 - LCD-6.4-VGA-10 (Logic 6.4" Display Kit 640x480) 7 - LCD-10.4-VGA-10 (Logic 10.4" Display Kit 640x480) 8 - LCD-3.5-VGA-20 (Logic 3.5" Display Kit 240x320) Q: How do I connect to KITL? A: Use the included LogicLoader script "generic_kitl_ram_boot_script.losh" and enter your display number at the end of it. The lpd_smsc_lan911x driver will not load if KITL is used. Q: Is the registry persisted? A: Yes, this sample image contains a driver that allows specific registry entries to be persisted. Note that it does not use 'Hive' registry. Logic has chosen to not use Hive registry in this sample image to allow for a wider use range and prevent evaluation issues. Logic has created a simple driver that reads a file at boot time to update the ram registry before other code acccesses it. This file will need to be created on the device in Flash memory. It must be located the /YaffsPart1 folder and be called regsync.txt. An example is provided in this .zip file. 1) Boot WinCE image 2) Using ActiveSync, USB Memory stick, or SD Memory card, transfer the regsync.txt into /YaffsPart1. 3) Reboot the system, on any future boots, the driver will update the registry according to this file. Note: The regsync.txt file must be in the following format: (see the example regsync.txt provided with this download) 'Root1'/t'Path1'/t'Name1'/t'Type1'/t'Value1' 'Root2'/t'Path2'/t'Name2'/t'Type2'/t'Value2' Key: Root = Registry Root (e.g. HKEY_LOCAL_MACHINE) Path = Path of Registry Entry (e.g. \SOFTWARE\bootapp) Name = Name of Registry Entry (e.g. path) Type = Data Type (supported values are: multi_sz, dword) Value = Value of Registry entry (e.g. 1) /t = Tab (no spaces in between these values, spaces are ok in path and name, just not between) Example of entry: HKEY_LOCAL_MACHINE \SOFTWARE\bootapp path multi_sz \\Storage Card\\boot_app.exe HKEY_LOCAL_MACHINE \Drivers\BuiltIn\Touch SwapXY dword 0 Q: Ok, so what if I updated the registry, can I flush those changes? A: Yes, there is a simple app on the desktop called 'Reg_Flush'. When this file is opened and the 'ok' button is pushed, it will sync the current state of the registry to the 'regsync.txt' file, if located in '/YaffsPart1'. Once it is sync'd, hit the 'x' button to close. Note: It will only sync registry entries that are specified in the file. Q: Why is Logic just not using Hive registry? A: Using the Hive presents some complications. If the Hive is corrupted or the location for it is not available, the OS will simply not boot. For evaluation purposes of our kits, not using Hive allows for wider use of the NK.bin. If you would like to have an image using Hive registry, you are welcome to build your own image using Platform BUilder and our BSP, assuming you have access to this. Logic's support team can also help build custom images. Please visit our support page for information. Q: I'd like to run the Touch Calibration at boot time, but I can not get to the utility in the control panel. A: There are two options. First is use a USB Mouse to find and open the utility. Once you have calibrated, make sure to sync the registry, as explained above. The second option is to include 'touchcal:1:' in the boot script. This will automatically launch the calibration at boot. You can then follow the direcitons to sync the registry and on following boots, the new calibraiton data should be used. Q: I'm using a pre-release beta kit (please see the following PCN for information) and the touch is swapped creating an unusable touch interface, what can I do to correct this? A: If you run the touch calibration, it may work as is. If you find issues, the Touch driver does include a registry entry to swap the X & Y signals. You can update the regsync.txt file in /YaffsPart (please see Q/A note above about registry persistence) to have the driver swap on the next (and future) boots. Change: HKEY_LOCAL_MACHINE \Drivers\BuiltIn\Touch SwapXY dword 0 To: HKEY_LOCAL_MACHINE \Drivers\BuiltIn\Touch SwapXY dword 1 Q: Does this image allow use of the iMX31's floating point unit (VFP)? A: Yes. Be sure to include 'coproc:00f00000:' in the boot string, which enables this floating point unit. Q: I'd like to automatically launch my application when Windows CE boots, is this possible? A: Yes, we have added a small custom applicaiton that is launched at boot time by the OS. It looks for an application called 'bootapp.exe' in a registry specified locaiton. By default, this is in 'Storage Card', which is what a SD or CF card would show up as in inserted. This can be changed, for example to boot the app from the onboard Flash ('YaffsPart1') by updating the registry, via the way described above. Here is the registry entry of note. [HKEY_LOCAL_MACHINE\SOFTWARE\bootapp] "path" = "\\Storage Card\\boot_app.exe" Q: Is there Real Time Clock support? A: Yes, the kernel supports both the RTC internal to the iMX31 processor and in the Atlas Power Management IC (PMIC). The provided boot strings contain the entry (rtc:rtc_imx31_pmic:)to enable the Kernel to use the PMIC's RTC, which can be preserved through reset of the system. Since no battery is provided on the kit, it will not however hold the RTC contents through a power cycle. Q: What is the FTP default configuration? A: The root FTP folder is 'Temp' on the system and Authentication is disabled. The idle timeout is set to 300 seconds. The system is set up by default for DHCP, so you will need to look at it's IP address. Q: What is the Telent default configuration? A: Authentication is disabled. The system is set up by default for DHCP, so you will need to look at it's IP address. Q: Is File Sharing supported? A: Yes, the device name is 'WinCEDevice'. All authentication is disabled. To use file sharing, on your PC, go to the Start menu and click 'Run'. In the 'Open' box, type "\\WinCEDevice" and choose 'OK'. You should see the following directories, this may take a bit of time (5 to 20 seconds). \\WinCEDevice \HD1 -> Hard Disk (if connected) \HD2 -> Hard Disk2 (if connected) \Root -> Windows directory \Storage1 -> Storage Card (if connected) \Storage2 -> Storage Card2 (if connected) \Temp -> Temp folder \YAFFS1 -> YaffsPart1 partition The file server can be configured using the remote configuration tool. On your device go to "http://localhost/remoteadmin" or on your PC, go to "http://WinCEDevice/remoteadmin" to use the remote management tool. Q: Is there a way to read or write a hardware registers? A: Yes, for use at your own risk, Logic has provided two applications 'x.exe' and 'w.exe'. These are similar to the commands 'x' and 'w' in LogicLoader. They must be called with the command prompt. This application does not check to see if the hardware address is valid, the user must make sure the address is a valid phsyical address. Reading and Writing to physical hardware addresses can present problems if the wrong values or addresses are used. !!This is a warning, incorrect usage of these commands can be harmful to your system, including the possiblity of destroying the hardware!! x [/[bhw]] [len] examples: x 0x58b00000 x /h 0x400000000 64 w [/[bhw]] [value] examples: w 0x58b00000 0xdeadbeef w /h 0x400000000 0xbeef -----------------------------------------------------------------------------