ITBOK

From Texas Instruments Wiki
Jump to: navigation, search


ITBOK stands for Is The Board OK. It is a collection of level-zero codes integrated to U-Boot. It helps users to check the functionality of various devices found on OMAP3 EVM. Currently Memory (DDR, Flash), Audio, Keypad, LCD, TV-OUT, RTC, Camera, MMC, OTG Host/Gadget, UART and Ethernet tests are supported in ITBOK. The user can access to ITBOK through the diag command(Command Based) or by issuing itbok command(Menu based) at the U-Boot prompt.The procedures for testing individual interfaces are mentioned below accordingly.

Integrating and Building ITBOK with U-Boot

1. Copy the ITBOK source tar to path 'src/u-boot/' in TI package.

2. Untar the ITBOK source as

      tar -xzvf <ITBOK source tar>.tar.gz

3. This will create a directory "EVM3530_ITBOK". The tree structure of the source directory is shown below

       u-boot_src
         |
         |--- u-boot
         |
         |--- EVM3530_ITBOK

4. Change the directory to u-boot source directory and open the file 'lib_arm/board.c' and add function call.

      register_diagnostics();

after mem_malloc_init () function call in function start_armboot().

5. Edit u-boot Makefile to add the ITBOK Library, add following line in Makefile at the end of LIBS section.

      LIBS += ../EVM3530_ITBOK/libitbok.a

6. Configure u-boot

      make omap3_evm_config

7. Build the u-boot with ITBOK

      make CROSS_COMPILE=arm-none-linux-gnueabi-

Downloading and Building ITBOK integrated with U-Boot

1. The ITBOK source is available for download from the below link :

       http://mistralsolutions.com/pes-support/support-downloads/amdm37x-evm-documentation-a-software.html#

2. Unzip the file :

       unzip ITBOK_uboot_src.zip

3. Change the directory to u-boot source directory

4. Configure u-boot

       make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm omap3_evm_config

5. Build the u-boot with ITBOK

       make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm

6. The final binary image(u-boot.bin) will have the ITBOK inbuilt.

How to run ITBOK tests

The ITBOK tests on OMAP3EVM can be conducted in two ways.

  1. Menu Based testing
  2. Command based testing

Menu Based testing

The menu based ITBOK tests can be conducted by issuing itbok command at the U-Boot prompt which displays the below menu.

OMAP3EVM #itbok

It displays the following messages at the U-Boot prompt:


   ITBOK Version 1.0.0


   ITBOK MENU

 1. Run All Tests (Options 2 to 18)
 2. Run Memory Test
 3. Run NAND Test
 4. Run Audio Headset detection Test
 5. Run Audio Test
 6. Run Keypad Test
 7. Run Touchscreen Test
 8. Run LCD Backlight Test
 9. Run LCD Test
10. Run Battery Test
11. Run TV-out Test
12. Run S-Video
13. Run RTC Test
14. Run Ethernet Test
15. Run MMC Test
16. Run Camera Test
17. Run OTG Host Test
18. Run OTG Gadget Test
19. Run UART Test
20. EXIT


Please enter test option:

The tests can be conducted by entering the appropriate number on the console.

Entering '1' (Run All Tests) will run all the tests in sequence and displays the results. Whenever there is user intervention required, message is displayed on the console and the software waits for the user input/actions.

Note: Memory Test will not erase the x-loader, u-boot and kernel memory space from NAND flash. To erase complete Nand Flash at u-boot prompt [OMAP3EVM #] execute following commands

OMAP3EVM # nand unlock 
OMAP3EVM # nand erase

Command Based Testing

Command based testing can be conducted using the diag command. Note that diag or diagnose - both the commands are recognized by the system and have the same effect.

OMAP3_EVM # diag
Diagnostic Command help
Syntax :
diagnose <interface> <test> <Paramaters>
1 ] uart      : Test UART interface
2 ] memory    : Test Memory interfaces
3 ] lcd       : Test LCD display
4 ] audio     : Test Audio Interface
5 ] keypad    : Test Keypad interface
6 ] ts        : Test Touch Screen Interface
7 ] tvout     : Test TVout interface
8 ] svideo    : Test S-Video interface
9 ] battery   : Test battery interfaces

The following test can also be carried out using Menu Based Testing as explained.

ITBOK Tests

Memory Test

This section covers the testing of PoP memories on OMAP3EVM.

The memories can be tested by issuing the commands at U-Boot prompt

  • To test DDR memory issue command diag memory RAMtest
Expected Result: Should run DDR data bus test, address bus test and memory Read/Write tests.
  • To test NAND/OneNAND memory issue command diag memory nand
NOTE: This command runs NAND or OneNAND test automatically based on the flash type.
Expected Result: Should run NAND/OneNAND erase, read and write tests and display results

Note: Memory Test will not erase the x-loader, u-boot and kernel memory space from NAND flash. To erase complete Nand Flash at u-boot prompt [OMAP3EVM #] execute following commands

OMAP3EVM # nand unlock 
OMAP3EVM # nand erase

Test Log:

OMAP3EVM # diag memory RAMtest
Testing SDRAM
SDRAM Start address 0x81800000, End address 0x87ffffff
Running data bus test...PASSED
Running address bus test...PASSED
Running memory Read/Write test... Please wait... PASSED
SDRAM Test Completed... PASS

OMAP3EVM # diag memory nand

Testing NAND
Running Erase Test...Please wait...Start Block : 60, End Block : 2047

nand_erase: skipping bad block # 1905 at offset 0x0ee20000
PASSED
Running Write test...Please wait...Start Block : 60, End Block : 2047
PASSED
Running Read test...Please wait...Start Block : 60, End Block : 2047
PASSED
Nand Test Completed... PASS
	
NOTE: This log is with OneNAND based board
OMAP3EVM # diag memory nand
Testing ONENAND
Running Erase Test...Please wait...Start Block : 60, End Block : 1023
onenand_erase: not erasing bad block @0x2860000
onenand_read_ecc: detected bad block  @0x2860000, skipping
onenand_erase: not erasing bad block @0x5c40000
onenand_read_ecc: detected bad block  @0x5c40000, skipping
onenand_erase: not erasing bad block @0x6ea0000
onenand_read_ecc: detected bad block  @0x6ea0000, skipping
PASSED
Running Write test...Please wait...Start Block : 60, End Block : 1023
onenand_write_ecc: detected bad block  @0x2860000, skipping
onenand_write_ecc: detected bad block  @0x5c40000, skipping
onenand_write_ecc: detected bad block  @0x6ea0000, skipping
PASSED
Running Read test...Please wait...Start Block : 60, End Block : 1023
onenand_read_ecc: detected bad block  @0x2860000, skipping
onenand_read_ecc: detected bad block  @0x5c40000, skipping
onenand_read_ecc: detected bad block  @0x6ea0000, skipping
PASSED
Onenand Test Completed... PASS

LCD Display Test

This section covers the testing of LCD display of OMAP3EVM.

The LCD can be tested by issuing commands at U-Boot prompt

  • To Display VGA Bitmap issue command diag lcd displayBMP vga
  • To display QVGA Bitmap issue command diag lcd displayBMP qvga
Expected Result: Should display Bitmap image on LCD display after issuing any of the above command.
  • To execute the fill colour test, issue command diag lcd fillclr green
Expected Result: Should display Green colour on the LCD display

Test Log:

OMAP3EVM # diag lcd displayBMP VGA
OMAP3EVM # diag lcd displayBMP QVGA
OMAP3EVM # diag lcd fillclr red
LCD display filled with red colour.
OMAP3EVM # diag lcd fillclr green
LCD display filled with green colour.

NAND Test

This section covers the testing of NAND:

Test log:

Starting NAND Test...
Bad NAND Block Count 0
Running Erase Test...Please wait...Start Block : 283, End Block : 345 PASSED
Running Write test...Please wait...Start Block : 283, End Block : 345 PASSED
Running Read test...Please wait...Start Block : 283, End Block : 345 PASSED
Running Erase Test...Please wait...Start Block : 1103, End Block : 1165 PASSED
Running Write test...Please wait...Start Block : 1103, End Block : 1165 PASSED
Running Read test...Please wait...Start Block : 1103, End Block : 1165 PASSED
Running Erase Test...Please wait...Start Block : 1922, End Block : 1984 PASSED
Running Write test...Please wait...Start Block : 1922, End Block : 1984 PASSED
Running Read test...Please wait...Start Block : 1922, End Block : 1984 PASSED
Erase nand after completing the Nand write read test...
Running Erase Test...Please wait...Start Block : 283, End Block : 345
Running Erase Test...Please wait...Start Block : 1103, End Block : 1165
Running Erase Test...Please wait...Start Block : 1922, End Block : 1984
Nand Test Completed... PASS

Audio Test

This section covers the testing of Audio interface of OMAP3EVM.

Play Audio file/song on the Host PC using Music player.

  • Audio Playback test can be done by issuing commands at U-Boot prompt
  1. Issue command diag audio fmloopback 20
  2. Listen for the same Audio file/song in the Headset.
Expected Result: The Audio file/song running in the Host PC should be played in the Headset.
  • Play a fixed tone from the processor by issuing the following command at U-Boot prompt
  1. Issue command diag audio tone 10 20
  2. Listen for the tone in the headset
Expected Result: Fixed tone should be played for the specified duration
  • Record for a given duration & playback
  1. Issue command diag audio rcdplay 5 20, once after connecting the output of PC to OMAP3EVM Audio IN Connector (P11)
  2. Listen for the recorded Audio file/song in the headset once after the completion of recording time (5 sec)
Expected Result: The recorded Audio file/song from the Host PC should be played in the Headset.

Test Log:

OMAP3EVM # diag audio tone 5 5
Audio play fixed tone test done.

OMAP3EVM # diag audio rcdplay 10 5
Recording from audio-in...diagnose audio rcdplay 5 10
Recording from audio-in...done.
Playing back on audio-out...done.
Audio record and playback test done.

OMAP3EVM # diag audio fmloopback 10
Audio loopback test done.

Keypad Test

This test validates the keypad interface of OMAP3EVM.

  • Keypad test can be done by issuing command at U-Boot prompt
  1. Issue command diag keypad scan
  2. Press all the keys on the OMAP3EVM main board keypad.
Expected Result: Keypad Test Passed message should be displayed at prompt

Test Log:

OMAP3EVM # diag keypad scan

Press one key at a time.
Press all keys atleast once.
	Key S06: [0 1] Pressed
	Key S16: [2 2] Pressed
	Key S17: [1 1] Pressed
	Key S18: [0 0] Pressed
	Key S18: [0 0] Pressed
	Key S13: [3 2] Pressed
	Key S14: [2 1] Pressed
	Key S15: [1 0] Pressed
	Key S10: [1 3] Pressed
	Key S11: [3 1] Pressed
	Key ?: [2 0] Pressed
	Key ?: [2 0] Pressed
	Key S07: [2 3] Pressed
	Key S08: [0 2] Pressed
	Key S09: [3 0] Pressed
	Key S09: [3 0] Pressed
	Key S04: [3 3] Pressed
	Key S05: [1 2] Pressed
All keys pressed at least once.
Keypad scan test success.

Touch-screen Test

This test validates the touch-screen interface of OMAP3EVM.

Procedure:

  • Touch-screen reference test can be done by issuing commands at U-Boot prompt
  1. Issue command diag ts test
  2. Touch any location on LCD using a stylus
  3. Press Enter at U-Boot prompt
  4. Press q to exit the test.
Expected Result: The co-ordinates as per the position of Stylus on touchscreen should be displayed on the console.
  • Touch-screen pen (stylus) detection test can be done by issuing commands at U-Boot prompt
  1. Issue the command diag ts pendetect
  2. Touch four different locations on LCD using a stylus.
Expected Result: Pen status shall be displayed. It shall display "Down" when stylus is positioned on touchscreen, and shall display "Up" when stylus is lifted.

Test Log:

OMAP3EVM # diag ts test
Place the stylus on lcd panel and press ENTER
Type 'q' to abort the test
[x y] = [ 0xb4 0xfffffffb]
[x y] = [ 0xd8 0x25]
[x y] = [ 0x71 0x2c]
[x y] = [ 0x16 0x2c]
[x y] = [ 0xce 0x106]
[x y] = [ 0x75 0x10d]
[x y] = [ 0x14 0x10d]
[x y] = [ 0x77 0x9d]
Touchscreen Test Aboterd by user...

OMAP3EVM # diag ts pendetect
Up	DownUp	DownUp	DownUp	DownUp	DownUp	DownUp	DownUp	DownUp	DownUp	
DownUp	DownUp	DownUp	DownUp	DownUp	DownUp	DownUp	DownUp	DownUp	DownUp	

TV-OUT Test

This test validates the TV_OUT interface of OMAP3EVM.

Note: Make sure that the 6th switch in SW1 of the processor module is in OFF position

  • TV-OUT test can be done by issuing commands at U-Boot prompt diag tvout colorbar NTSC-M
Expected Result: Vertical color Bar consisting of 8 colors shall be displayed on TV.
  • To conduct the test for PAL, issue command diag tvout colorbar PAL-60
Expected Result: Vertical color Bar consisting of 8 colors shall be displayed on TV.
  • To execute the fill colour test, issue command diag tvout fillclr <red/green/blue/yellow> <PAL-60/NTSC-M>
Expected Result: The specified color shall be displayed on TV.

Test Log:

OMAP3EVM # diag tvout fillclr red NTSC-M
OMAP3EVM # diag tvout fillclr green PAL-60
OMAP3EVM # diag tvout colorbar PAL-60
OMAP3EVM # diag tvout colorbar NTSC-M

S-Video Test

This test validates the S-Video interface of OMAP3EVM.

Note: Make sure that the 6th switch in SW1 of the processor module is in ON position

  • S-Video test can be done by issuing commands at U-Boot prompt diag svideo colorbar NTSC-M
Expected Result: Vertical color Bar consisting of 8 colors shall be displayed on TV.
  • To conduct the test for PAL, issue command diag svideo colorbar PAL-60
Expected Result: Vertical color Bar consisting of 8 colors shall be displayed on TV.
  • To execute the fill colour test, issue command diag svideo fillclr <red/green/blue/yellow> <PAL-60/NTSC-M>
Expected Result: The specified color shall be displayed on TV.

Test Log:

OMAP3EVM # diag svideo fillclr red NTSC-M
OMAP3EVM # diag svideo fillclr magenta PAL-60
OMAP3EVM # diag svideo colorbar PAL-60
OMAP3EVM # diag svideo colorbar NTSC-M


Following test cases are Menu based and can be executed using ITBOK and are explained below:

Battery Test

This is a Battery Test.It will read the internal battery specification and displays them

Expected Result: The battery specification are being read and displayed.
  • To execute 'the Battery Test', run the itbok and select Battery test.

Test Log:

Starting Battery Test...
Charge Type : AC Charge
ac charger voltage = 0.009775
Battery voltage = 0.017595
Battery charger current = -0.845608
Battery Test Completed... PASS

LCD Backlight Test

This will test LCD back light by turning LCD back light OFF and then turning ON with user verification.

Expected Result: The LCD back light should go OFF and ON.
  • To execute 'LCD_BACKLIGHT Test', run the itbok and from itbok menu select LCD Backlight test

Test Log:

Starting LCD backlight Test...
Press y to turn OFF the LCD backlight...
 y
Turned OFF the LCD back light...
Press y to turn ON the LCD backlight...
 y
Turned ON the LCD back light...
Is the LCD backlight working properly (y/n): y
LCD Back Light Test... PASS
LCD back light Test Completed... PASS

Audio Headset Detection Test

This section indicates whether the audio headset is connected to the audio out port on the EVM Board.

Test Log :

Starting Audio Headset Detection Test...
Connect headset to audio-out
Press ENTER to continue
The head set INSERTED
Is Headset detection working properly (y/n): y
Headset Detection Test... PASS 
Remove headset from audio-out
Press ENTER to continue
The head set REMOVED 
Is Headset detection working properly (y/n): y
Headset Detection Test... PASS

MMC Test

This test validates the MMC Read/Write interface accordingly. It has 2 choices :

1.Choice 1 validates MMC read and write tests at 24Mhz

2.Choice 2 validates MMC read and write tests at 48Mhz

Camera Test

This test validates camera interface. Performing this tests requires a Micron Camera Module wherein the image is captured and displayed on the LCD Screen.

Test log :

Starting Camera Test...
Please insert the Micron camera module
Press ENTER to continue
Configuring ISP Sensor.....
Disable CCDC
Configuring MT9T111 Camera Sensor.....
Reading Micron Camera ID...
Data Read at I2C address 0x3c is 26
Data Read at I2C address 0x3c is 80
.....Found Micron Camera
Reading Micron Camera ID...
Data Read at I2C address 0x3c is 26
Data Read at I2C address 0x3c is 80
.....Found Micron Camera
Enable CCDC.
IRQ status 0 .........
Waiting for HS VS interrupt .........
Received HSVS interrupt
Waiting for VD0 interrupt .........
Received VD0 buffer interrupt
IRQ status 100 .........
Disable CCDC.
Displaying image......
CAMERA TEST......PASS

RTC Test

This test validates the RTC(Real Time Clock).

Test Log:

Starting RTC Test...
before control register value 64
ID3 VALUE 4b
After control register value 0
Current RTC date/time is 1-1-2000, 00:00:00.
Set date and time options:
Enter 0 -> to accept date and time from user
Enter 1 -> to use default date and time
Choice:1
Using default date and time 1-1-2009, 00:00:00
Setting New date and time to 1-1-2009, 00:00:00
.....successful
before control register value 65
ID3 VALUE 4b
After control register value 1
The New RTC date/time is 1-1-2009, 00:00:00.

OTG Host Test

1. Format the USB drive using HP USB Disk Storage Format utility and select the filesystem as FAT16.HP USB Disk Storage Format Tool can be downloaded from http://www.sysanalyser.com/sp27213.exe

2. Connect the USB drive to the OTG port of the adaptor of the EVM using the OTG adaptor(http://www.electronicproductonline.com/catalog/product_info.php?products_id=2043).

3. Select the appropriate menu option from the ITBOK menu. The USB drive gets detected and lists out the contents of the USB drive.This validates the USB Host test.

OTG Gadget Test

1. Connect one end of the USB OTG cable to the OTG port of the EVM and the other end of the OTG cable to the Linux PC.

2. Power on the EVM and boot the EVM with the (USB Gadget) u-boot/ITBOK.

3. On the Linux host machine execute the following commands (you may need to be as superuser).

  a) # minicom -s
  b) change the serial port settings as ttyACM0 and 
  c) save close the settings.

4. Open the minicom by executing the command "minicom" on the Linux machine

5. On the Serial console of the EVM at the u-boot prompt, execute the following commands:

  a) OMAP3EVM# setenv usbtty cdc_acm
  b) OMAP3EVM# save
  c) OMAP3EVM# setenv stdin usbtty;setenv stdout usbtty;setenv seterr usbtty

The console will now appear on Linux machine where the USB OTG cable is connected.

Ethernet Test

This is an Ethernet test which tests the Ethernet functionality by executing Ping Utility. To test Ethernet, the server ip and ip address of EVM should be set in environment variable before running Ethernet Test using 'setenv'. Pass condition is EVM should ping to server successfully.

  • To execute 'ETHERNET_TEST', run the itbok, and itbok menu select Ethernet Test.

Test Log:

  Starting Ethernet Test...
  Server IP address is 192.168.15.53
  smc911x: initializing
  smc911x: detected LAN9220 controller
  smc911x: phy initialized
  smc911x: MAC 00:11:22:33:44:55
  host is alive
  Ethernet Test Completed... PASS

UART Test

UART Test validates the UART 1 and UART 3 transmit and receive functionalities.

  • Connect both the UART Ports to PC and open serial port terminals accordingly.
  • UART Read Write Test : 5 letters written on UART3 will be displayed on UART1 and viceversa.
   Starting UART Test...
 Testing UART3 Read
 Enter 5 charecters on UART3
 String read = hello
 UART read test done.
 Are the characters displayed properly on UART(which is executing tests)? (y/n): y
 Read Test on UART3... PASSED 
 Testing UART3 Write
 Enter 5 charecters on UART(which one executing tests) and press ENTER
 world
 String wrote = world
 UART write test done


Conclusion

Currently ITBOK has been implemented on OMAP3EVM, AM/DM37xx EVM and CraneBoard - ITBOK for CraneBoard