Difference between revisions of "Devkit8000 FAQ"

From eLinux.org
Jump to: navigation, search
Line 403: Line 403:
 
And then follow user manual 12.2.1 to update image in Nand flash. <br>
 
And then follow user manual 12.2.1 to update image in Nand flash. <br>
  
==How to configurate resued GPIO?==
+
==How to configurate for reusing GPIO?==
 
Answer: DeviceIoControl(hFile, IOCTL_GPIO_SETBIT, &id, sizeof(DWORD), 0, 0, NULL, NULL);   
 
Answer: DeviceIoControl(hFile, IOCTL_GPIO_SETBIT, &id, sizeof(DWORD), 0, 0, NULL, NULL);   
  

Revision as of 03:58, 13 June 2011

This page mainly summarizes solutions to some main problems during the development of Embest Devkit8000. Hope it would give you some help.

Contents

Hardware problem

If you had erased NAND flash, how to boot the system?

Answer: If the Nand Flash has been erased, user can boot the system through SD card. OMAP35x series chips can support booting x-loader from SD card. User can refer to Devkit8000 user manual to update image from SD card.

How to use USB OTG as Host or Device?

Answer: The USB OTG interface can be used as USB Host function with a Mini-A to Standard-A cable, or used as USB Device function with a Mini-B to Standard-A cable.

If using USB OTG interface as USB Host, please follow below steps: 1) Connect Hub power to USB Hub; 2) Connect USB OTG cable to Devkit8000 board; 3) Power on and get into system; 4) Plug in USB Hub to USB OTG through cable; 5) Insert USB mouse or keypad to USB Hub.

How to boot from SD card?

Answer:Press BOOT key and power on, the system will boot from SD card first and then boot from Nand flash.

How to debug DSP and ARM on Devkit8000?

Answer: We suggest two ways:
1. Connect with JTAG Emulator
Embest provide XDS100v2 and TDS560 emulators which can be used for TI's C2000, C5000, C6000 chips and OMAP, DaVinci, ARM7 and ARM9 microprocessors.

2. Dubug in software system
User can refer to the DEMO-DVSDK in product CD. The DVSDK has provided complete video encoding and decoding drivers, user only needs to dubug the DSP algorithms. Please refer to TI's website for details: http://focus.ti.com/docs/toolsw/folders/print/linuxdvsdk-omap3530.html

What's the RTC battery model can be used for Devkit8000?

Answer: The DevKit8000 board is not delivered with RTC battery, user needs to prepare it themselves. The battery model is CR1220.


Linux problem

If the Nand Flash has been erased, how to restore it?

Answer: Please download the linux_WriteToNandflash.rar,and decompress the linux_WriteToNandflash.rar, copy all files to the SD card in the linux_WriteToNandflash.rar, and then boot the image from the SD card.

Warnning:If your NandFlash has OS before, please erase it, enter to the u-boot command mode and input the commands of "nand erase" to erase the NandFlash.

How to open low-lever debug information when developing drivers?

Answer: Please follow below steps:
1. make omap3_devkit8000_defconfig
2. make menucofig
Select “Kernel low-level debugging functions”

Symbol: DEBUG_LL [=y] 
Prompt: Kernel low-level debugging functions
Defined at arch/arm/Kconfig.debug:54
Depends on: DEBUG_KERNEL
Location:
-> Kernel hacking

3. make uImage
User can use the uImage directly after finishing compiling.

How to display switching between LCD and DVI output?

Answer: You need to modify kernel parameter:
4.3" LCD:
OMAP3 DevKit8000 # setenv bootargs console=ttyS2,115200n8 ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs video=omapfb:mode: 4.3inch_LCD

5.6" LCD:
OMAP3 DevKit8000 # setenv bootargs console=ttyS2,115200n8 ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs video=omapfb:mode: 5.6inch_LCD

7" LCD:
OMAP3 DevKit8000 # setenv bootargs console=ttyS2,115200n8 ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs video=omapfb:mode:7inch_LCD

DVI monitor:
OMAP3 DevKit8000 # setenv bootargs console=ttyS2,115200n8 ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs video=omapfb:mode:720p60

VGA monitor:
OMAP3 DevKit8000 # setenv bootargs console=ttyS2,115200n8 ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs video=omapfb:mode:VGA

How to use tftp to update image booting from Nand flash?

Answer: Devkit8000 has 10/100M Ethernet (DM9000) on board, user can update image booting from Nand flash through tftp.
1)x-loader booting image update
OMAP3 DevKit8000 # tftp 80000000 x-load.bin.ift_for_NAND
dm9000 i/o: 0x2c000000, id: 0x90000a46
MAC: aa:bb:cc:dd:ee:ff
operating at 100M full duplex mode
TFTP from server 192.192.192.90; our IP address is 192.192.192.200
Filename 'x-load.bin.ift_for_NAND'.
Load address: 0x80000000
Loading: T #
done
Bytes transferred = 9664 (25c0 hex)
OMAP3 DevKit8000 # nand unlock
device 0 whole chip
nand_unlock: start: 00000000, length: 134217728!
NAND flash successfully unlocked
OMAP3 DevKit8000 # nand ecc hw
OMAP3 DevKit8000 # nand erase 0 80000

NAND erase: device 0 offset 0x0, size 0x80000
Erasing at 0x60000 -- 100% complete.
OK
OMAP3 DevKit8000 # nand write.i 80000000 0 80000

NAND write: device 0 offset 0x0, size 0x80000

Writing data at 0x7f800 -- 100% complete.
524288 bytes written: OK

2)u-boot booting image update
OMAP3 DevKit8000 # tftp 80000000 flash-uboot.bin
dm9000 i/o: 0x2c000000, id: 0x90000a46
MAC: aa:bb:cc:dd:ee:ff
operating at 100M full duplex mode
TFTP from server 192.192.192.90; our IP address is 192.192.192.200
Filename 'flash-uboot.bin'.
Load address: 0x80000000
Loading: T #################################################################
done
Bytes transferred = 1085536 (109060 hex)
OMAP3 DevKit8000 # nand unlock
device 0 whole chip
nand_unlock: start: 00000000, length: 134217728!
NAND flash successfully unlocked
OMAP3 DevKit8000 # nand ecc sw
OMAP3 DevKit8000 # nand erase 80000 160000

NAND erase: device 0 offset 0x80000, size 0x160000
Erasing at 0x1c0000 -- 100% complete.
OK
OMAP3 DevKit8000 # nand write.i 80000000 80000 160000

NAND write: device 0 offset 0x80000, size 0x160000

Writing data at 0x1df800 -- 100% complete.
1441792 bytes written: OK

3)Kernel image update
OMAP3 DevKit8000 # tftp 80000000 uImage
dm9000 i/o: 0x2c000000, id: 0x90000a46
MAC: aa:bb:cc:dd:ee:ff
operating at 100M full duplex mode
TFTP from server 192.192.192.90; our IP address is 192.192.192.200
Filename 'uImage'.
Load address: 0x80000000
Loading: T #################################################################
done
Bytes transferred = 1991900 (1e64dc hex)
OMAP3 DevKit8000 # nand unlock
device 0 whole chip
nand_unlock: start: 00000000, length: 268435456!
NAND flash successfully unlocked
OMAP3 DevKit8000 # nand ecc sw
OMAP3 DevKit8000 # nand erase 280000 200000

NAND erase: device 0 offset 0x280000, size 0x200000
Erasing at 0x460000 -- 100% complete.
OK
OMAP3 DevKit8000 # nand write.i 80000000 280000 200000

NAND write: device 0 offset 0x280000, size 0x200000

Writing data at 0x47f800 -- 100% complete.
2097152 bytes written: OK

4)File system image update
OMAP3 DevKit8000 # tftp 80000000 ubi.img
dm9000 i/o: 0x2c000000, id: 0x90000a46
MAC: aa:bb:cc:dd:ee:ff
operating at 100M full duplex mode
TFTP from server 192.192.192.90; our IP address is 192.192.192.200
Filename 'ubi.img'.
Load address: 0x80000000
Loading: T #################################################################
done
Bytes transferred = 12845056 (c40000 hex)
OMAP3 DevKit8000 # nand unlock
device 0 whole chip
nand_unlock: start: 00000000, length: 268435456!
NAND flash successfully unlocked
OMAP3 DevKit8000 # nand ecc sw
OMAP3 DevKit8000 # nand erase 680000 7980000

NAND erase: device 0 offset 0x680000, size 0x7980000
Erasing at 0x7fe0000 -- 100% complete.
OK
OMAP3 DevKit8000 # nand write.i 80000000 680000 $(filesize)

NAND write: device 0 offset 0x680000, size 0xc40000

Writing data at 0x12bf800 -- 100% complete.
12845056 bytes written: OK

How to install linux cross compile tool?

Please follow below steps:
1.Download cross compile tool from website
http://www.codesourcery.com/sgpp/lite/arm/portal/package1787/public/arm-none-linux-gnueabi/arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
2.Decompress software
sudo tar xvf arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C /home/

3.Tool installation
mkdir /home/embest/tools
cp /media/cdrom/linux/tools/mkimage /home/embest/tools
cp /media/cdrom/linux/tools/signGP /home/embest/tools
cp /media/cdrom/linux/tools/mkfs.ubifs /home/embest/tools
cp /media/cdrom/linux/tools/ubinize /home/embest/tools
cp /media/cdrom/linux/tools/ ubinize.cfg /home/embest/tools

4.Set environment variables
export PATH=/home/arm-2007q3/bin/:/home/embest/tools:$PATH

USB OTG used as Host

Answer: If using USB OTG interface as USB Host, please follow below steps:
1) Connect Hub power to USB Hub;
2) Connect USB OTG cable to Devkit8000 board;
3) Power on and get into system;
4) Plug in USB Hub to USB OTG through cable;
5) Insert USB mouse or keypad to USB Hub.

If user uses your own USB cable, please pay attention to USB OTG (Mini-AB) wire map:
1: VB
2: D-
3: D+
4: ID
5: GND
User needs only to short circuited 4 and 5.

Is there any solution to solve inaccurate touch screen problem?

Answer: Please modify the file arch/arm/mach-omap2/board-omap3devkit8000.c
struct ads7846_platform_data ads7846_conf = {

       .x_max                  = 0x0fff,
.y_max = 0x0fff,
//.x_plate_ohms = 180,
//.pressure_max = 255,
.debounce_max = 10,
.debounce_tol = 5,
.debounce_rep = 1,
.get_pendown_state = ads7846_get_pendown_state,
.keep_vref_on = 1,
.settle_delay_usecs = 150,

};

How to set NFS server on Devkit8000 board?

Answer: Please follow below steps:
1. Please make sure your PC OS is set the NFS server. 2. Connect the net cable between PC and Devkit8000 board. 3. Power on the Devkit8000 board, and enter to U-boot command line,input the following command:

 setenv bootargs console=ttyS2,115200n8 root=/dev/nfs nfsroot=192.192.192.117:/home/lijr/work/nfsroot/rootfs ip=192.192.192.200:192.192.192.117:192.192.192.101:255.255.255.0:devkit8000:eth0:off

Note:
192.192.192.200 is IP of board;
192.192.192.117 is IP of PC;
192.192.192.117:/home/lijr/work/nfsroot/rootfs is the mounted rootfs on PC;
192.192.192.101 is IP of gateway;
255.255.255.0 is subnet mask;
devkit8000 is name (can be modified);

How to settle VGA display for a while and then closed problem in Linux?

Answer: Please modify the file /etc/init.d/rcS in file system, adding below contents:

  1. ---------------------------------------------
  2. Disable power management
  3. (Requires sysfs support in the kernel)
  4. ---------------------------------------------

echo -n " Disabling Power mgmt  : "
echo -n "1" > /sys/power/cpuidle_deepest_state
status $? 1

  1. ---------------------------------------------
  2. Turn off LCD after 1 hour of inactivity
  3. (Requires sysfs support in the kernel)
  4. ---------------------------------------------

echo -n " Turn off LCD after 1 hour  : "
echo -n "0" > /sys/power/fb_timeout_value
status $? 1

How to use S-Video output?

Answer: Please select below in kernel configuration:
Multimedia devices --->

     [*] Video capture adapters  --->
VID1 Overlay manager (Use TV Managaer) --->
(X) Use TV Manager

And then recompile and put the created uImage in SD card and boot system.
After recompiling, you need to download testing tool video_test and video example foreman_vga_422.yuv from http://code.google.com/p/devkit8000/downloads/list

Input below after getting into kernel:
Copy video_test and foreman_vga_422.yuv files to board and run as below:
video_test /foreman_vga_422.yuv

How to set excuting command automatically after booting up system?

Answer: Modify /etc/init.d/rcS file of file system and add your commands. Then you can execute command automatically after booting up system. Add & after commands can implement backstage excecuting command automatically after booting up.

How to configurate for reusing GPIO?

Answer: Please configurate board/omap3devkit8000/omap3devkit8000.c in MUX_DEFAULT_ES2, refer to the Seventh Chapter "System Control Module" for detailed configuration way.

Wince Problems

How to update WinCE image to Nand Flash?

Answer: Please follow below steps:
(1)Run the software of HP Disk Storage Format Tool and format the SD card for FAT or FAT32 filesystem.
(2) Copy the image file(MLO, EBOOTNAND.nb0, NK.bin, ADevKit8000.exe) from CD:\wince_6\image\ lcd480X272 to SD card, then change the name from EBOOTNAND.nb0 to EBOOTSD.nb0 in the SD card.
(3) Insert the SD card to the board, press the BOOT button and then power on the board again; HyperTerminal will start printing the output information, at the same time press [SPACE] to enter the EBOOT menu.
(4) Press [5] to enter the Flash manage menu.
(5) Press [a], [b], [c] separately to write the image(XLDR, EBOOT, NK) to flash.
(6) Press [0] to return to the main menu, and press [2], [4], [7], [7] to change the boot device.
(7) Power on the system again, and then the board will boot from the NAND flash.

How to Shield touch screen print information after WinCE booted?

Answer: Please modify function DevKit8000\SRC\DRIVERS\TOUCH\touchscreen.cpp: Shield RETAILMSG(1, ( TEXT( "Point: (%d,%d)\r\n" ), *pUncalX, *pUncalY ) ); in Row 564 and then recompile. //RETAILMSG(1, ( TEXT( "Point: (%d,%d)\r\n" ), *pUncalX, *pUncalY ) );

How to close printing from debug serial port?

Answer: Please follow below steps:
1. comment out the RETAILMSG call in TouchDriverCalibrationPointGet function of touchscreen.cpp
2. comment out the RETAILMSG call in DdsiTouchPanelGetPoint function of touchscreen.cpp
3. comment out the RETAILMSG call in TLED_Backlight::SetPowerState function of tled_backlight.cpp
4. comment out the RETAILMSG call in SetDutyCycle function of tled.cpp
5. comment out the RETAILMSG call in LcdPdd_LCD_Initialize function of lcd_vga.c
6. make sure that "set BSP_NOCOM=" is not set in DevKit8000.bat
7. make sure that "set BSP_NOCOM3=" is not set in DevKit8000.bat
8. delete the "IF BSP_COM3" of _FLATRELEASEDIR/platform.reg in line 1103
9. delete the "ENDIF BSP_COM3" of _FLATRELEASEDIR/platform.reg in line 1124
10. rebuild the BSP

How to close calibration of touch screen?

Answer: Please add below sentence in DevKit8000.bat file under Chdir of BSP and then rebuild. Set IMGNOCALIBRATION=1

Why sometimes touch screen could not be used?

Answer: It is because that user had used build and sysgen when compiling. User would better not use build and sysgen for compiling in WinCE or it will cause some problems and you must reinstall pb6.0.

Why could not save in WinCE?

Answer: please do some modification in SRC\DRIVERS\BLOCK\NAND\nand_MT29F2G16.h
Modify

  1. define NUMBER_OF_BLOCKS (2048) // 2048 blocks

to

  1. define NUMBER_OF_BLOCKS (1024) // 1024 blocks

How to correct the right RTC functions?

Answer: Please follow below steps:
1. Please replace the src/oal/oalrtc/rtc.c as the new rtc.c
(http://devkit8000.googlecode.com/files/rtc.c)
2. Add the #define BSP_OAL_RTC_USES_TWL4030 TRUE
on the src/inc/bsp_cfg.h in BSP.
3. Recompile the image again.

How to modify MAC address on WinCE?

Answer: Please Modify the registry
[HKEY_LOCAL_MACHINE\Comm\DM9CE1\Parms]
"BusNumber"=dword:0
"BusType"=dword:1
"XmitBuffer"=dword:20
"RecvBuffer"=dword:20
"IrqNumber"=dword:99
"IoAddress"=dword:15000000
"Mac"=hex:00,00,00,00,00,00

How to modify the registry of WinCE?

Answer: Please modify in vs2005:
Modify platform.reg in _REL_DIR folder and then ->make runtime image

How to cancel Low-power/Sleep mode in WinCE?

Answer: Please select in controller board: -power-ACsuspend-never

Why could not boot WinCE through SD card?

If your serial information appears below contents:
HandleInsertion
MMC Reset
MMCIssueIdentify: SD card detected
SD card relative address is 26803
MMCIssueIdentify: CSD
reported block size = 512
Card size is = 972800 512 byte sectors
max clock freq = 25000000
identification complete
SDCardIdentify: Identify device ...
BL_IMAGE_TYPE_BIN
Download file information:



[0]: Address=0x84001000 Length=0x02065488 Save=0x80001000



Download file type: 1
ERROR: Checksum failure (expected=0x1768BE9 computed=0x170C19B)
****** Checksum failure on record 5, ABORT!!! ******

Please input NK.bin file from the CD to SD card again, the problem will be solved.

How to establish KITL connection?

Answer: At present the Devkit8000 board can only support download NK.bin through DM9000 Ethernet and could not support KITL transmitting. That's because the bootloader and OAL public domain code have no address map in WinCE system and access to DM9000 physical address directly.
User can use USB RNDIS for downloading NK.bin and KITL transmitting.
1. Please install RNDIS driver in PC; 2. Set IP address for virtual network and Devkit8000, make sure they are in the same segment but different from PC IP segment;
3. Set booting device USB RNDIS in Eboot and select dubuging device to USB RNDIS.


How to solve BP_ReadData call failed in WinCE?

Answer:Please follow below steps: 1. Use software HP Disk Storage Format Tool to format SD card to FAT or FAT32 file system;
2. Copy the image file(MLO, EBOOTNAND.nb0, NK.bin, XLDRNAND.nb0, ADevKit8000.exe) from CD:\wince_6\image\ dvi1280X720 or lcd480X272 to SD card, then change the name from EBOOTNAND.nb0 to EBOOTSD.nb0 in the SD card.
3. Press BOOT key, when the serial port shows below contents:
INFO: Boot configuration found
OALFlashStoreOpen: 2048 blocks, 64 sectors/block
OALFlashStoreOpen: 2048 bytes/sector, 14 reserved blocks
ERROR: OALFlashStoreRead: Failed read sector 384 (0 sector in block 6)
Hit space to enter configuration menu 1...
Please press SPACE key here;
4. Press [5] to enter Flash manage menu.
Note: if you press [8] to enter Flash menage menu, it is not correct. It means your had not renamed EBOOTNAND.nb0 to EBOOTSD.nb0.
5. Press [3] to enter Flash easer.
6. Press [7] to enter Flash format.
And then follow user manual 12.2.1 to update image in Nand flash.

How to configurate for reusing GPIO?

Answer: DeviceIoControl(hFile, IOCTL_GPIO_SETBIT, &id, sizeof(DWORD), 0, 0, NULL, NULL);

1.You have to modify the ID to GPIO number
2.You have to modify the file platform.c (C:\WINCE600\DevKit8000\BSP\DevKit8000\SRC\BOOT\XLDR). you have to enable the PIN mux mode:

 /*MMC2*/
// Implemented on expansion interface only - leave disabled //OUTREG16(&pConfig->CONTROL_PADCONF_MMC2_CLK, (INPUT_DISABLE | PULL_UP | MUX_MODE_0)); /*MMC2_CLK*/ //OUTREG16(&pConfig->CONTROL_PADCONF_MMC2_CMD, (INPUT_ENABLE | PULL_UP | MUX_MODE_0)); /*MMC2_CMD*/ //OUTREG16(&pConfig->CONTROL_PADCONF_MMC2_DAT0, (INPUT_ENABLE | PULL_UP | MUX_MODE_0)); /*MMC2_DAT0*/ //OUTREG16(&pConfig->CONTROL_PADCONF_MMC2_DAT1, (INPUT_ENABLE | PULL_UP | MUX_MODE_0)); /*MMC2_DAT1*/ //OUTREG16(&pConfig->CONTROL_PADCONF_MMC2_DAT2, (INPUT_ENABLE | PULL_UP | MUX_MODE_0)); /*MMC2_DAT2*/ //OUTREG16(&pConfig->CONTROL_PADCONF_MMC2_DAT3, (INPUT_ENABLE | PULL_UP | MUX_MODE_0)); /*MMC2_DAT3*/