NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
ITBOK
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.
Contents
- 1 Integrating and Building ITBOK with U-Boot
- 2 Downloading and Building ITBOK integrated with U-Boot
- 3 How to run ITBOK tests
- 4 Menu Based testing
- 5 Command Based Testing
- 6 ITBOK Tests
- 6.1 Memory Test
- 6.2 LCD Display Test
- 6.3 NAND Test
- 6.4 Audio Test
- 6.5 Keypad Test
- 6.6 Touch-screen Test
- 6.7 TV-OUT Test
- 6.8 S-Video Test
- 6.9 Battery Test
- 6.10 LCD Backlight Test
- 6.11 Audio Headset Detection Test
- 6.12 MMC Test
- 6.13 Camera Test
- 6.14 RTC Test
- 6.15 OTG Host Test
- 6.16 OTG Gadget Test
- 6.17 Ethernet Test
- 6.18 UART Test
- 7 Conclusion
Integrating and Building ITBOK with U-Boot[edit]
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[edit]
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[edit]
The ITBOK tests on OMAP3EVM can be conducted in two ways.
- Menu Based testing
- Command based testing
Menu Based testing[edit]
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[edit]
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[edit]
Memory Test[edit]
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[edit]
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[edit]
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[edit]
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
- Issue command diag audio fmloopback 20
- 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
- Issue command diag audio tone 10 20
- Listen for the tone in the headset
- Expected Result: Fixed tone should be played for the specified duration
- Record for a given duration & playback
- Issue command diag audio rcdplay 5 20, once after connecting the output of PC to OMAP3EVM Audio IN Connector (P11)
- 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[edit]
This test validates the keypad interface of OMAP3EVM.
- Keypad test can be done by issuing command at U-Boot prompt
- Issue command diag keypad scan
- 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[edit]
This test validates the touch-screen interface of OMAP3EVM.
Procedure:
- Touch-screen reference test can be done by issuing commands at U-Boot prompt
- Issue command diag ts test
- Touch any location on LCD using a stylus
- Press Enter at U-Boot prompt
- 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
- Issue the command diag ts pendetect
- 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[edit]
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[edit]
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[edit]
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[edit]
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[edit]
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[edit]
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[edit]
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[edit]
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[edit]
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[edit]
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[edit]
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[edit]
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[edit]
Currently ITBOK has been implemented on OMAP3EVM, AM/DM37xx EVM and CraneBoard - ITBOK for CraneBoard