Teraterm Scripts

From Texas Instruments Wiki
Jump to: navigation, search


Introduction

Tera Term is an opensource terminal emulator on MS-Windows commonly used by us developers. Tera Term supports a "rich" macro language that can help in automating user actions. These scripts usually remain personal - rarely shared.

In this page, I intend to share the basic scripts that can be used to automate common tasks in the Linux PSP release. The scripts were created with intentional hierarchy to maximize reuse (via inclusion) and minimize redundancy across scripts. Currently, these scripts apply to OMAP35x Linux PSP. But, can be extended easily to other platforms.

Needless to say, these scripts are open to enhancements.

How to execute a TeraTerm script?

Tterm-macro.png

Scripts

File Naming Conventions

  • A file containing common macros - that can be included in other scripts - is prefixed with double underscore e.g. __common.ttl
  • The purpose / functionality of the file can be indicated after a "-" (minus) in the file name e.g. __uboot-config.ttl
  • Name of the container script that you execute is prefixed with name of the board e.g. omap3evm-boot-ramdisk.ttl.

__common.ttl

;;  Tera Term Macro
;;  ============================================================================
;;  file    __common.ttl
;;
;;  desc    Common definitions used across the macros.
;;  ============================================================================
;;  HISTORY
;;
;;      2007-11-30                      Sanjeev Premi
;;          Original Version
;;  ============================================================================
 
 
;;  ============================================================================
;;  DEFINITIONS
;;  ============================================================================
 
;;
;;  Current Date
;;
getdate CurDate
 
 
;;
;;  Current Time
;;
gettime CurTime
 
 
;;
;;  Title of the Tera Term Window
;;
StrWindowTitle     = 'OMAP35x EVM'
 
 
;;
;;  Boot methods
;;
Boot_RAMDISK    = 'RAMDISK'
Boot_NFS        = 'NFS'
 
 
;;
;;  Is Lauterbach used for debug?
;;
UseLauterbach   = 0
 
 
;;
;;  Caption prefix
;;
StrCaption    = ':::::::::::::::::::::::::::::::::::::::: '
 
 
;;
;;  Dividers
;;
StrEmpty        = ''#13#10
StrDivider_1    = '====================================================='#13#10
StrDivider_2    = '-----------------------------------------------------'#13#10
StrDivider_3    = '.....................................................'#13#10
 
 
;;
;;  Set position of status dialog box
;;
setdlgpos 10 10
 
 
;;
;;  Set window title
;;
settitle StrWindowTitle

__uboot-config-common.ttl

;;  Tera Term Macro
;;  ============================================================================
;;  file    __uboot-config-common.ttl
;;
;;  desc    Common u-boot related definitions
;;  ============================================================================
;;  HISTORY
;;
;;      2007-11-30                      Sanjeev Premi
;;          Original Version
;;  ============================================================================
 
 
;;  ============================================================================
;;  DEFINITIONS
;;  ============================================================================
 
;;
;;  The u-boot message to stop autoboot.
;;
 
MsgAutoboot     = 'Hit any key to stop autoboot:'
 
;;
;;  The u-boot prompt
;;
PromptUboot     = 'OMAP3EVM #'
 
 
;;  ============================================================================
;;  EXECUTION
;;  ============================================================================
 
;;
;;  Disable autoload
;;
wait PromptUboot
sendln 'setenv autoload no'

__uboot-config-network.ttl

This file uses dummy values for various macros. They need to be defined with correct values for your platform.

;;  Tera Term Macro
;;  ============================================================================
;;  file    __uboot-config-network.ttl
;;
;;  desc    Configure the u-boot network settings.
;;  ============================================================================
;;  HISTORY
;;
;;      2007-11-30                      Sanjeev Premi
;;          Original Version
;;  ============================================================================
 
 
;;  ============================================================================
;;  DEFINITIONS
;;  ============================================================================
 
;;
;;  Ethernet on EVM
;;
VarMacAddr      = 'A1:B1:C1:E1:D1:E1'
VarGatewayIP    = '192.168.1.1'
VarNetMask      = '255.255.255.0'
 
;;
;;  Server running the TFT Server
;;
VarServerIP     = '192.168.1.2'
 
;;
;;  Get IP address from DHCP server
;;
CmdDHCP             = 'dhcp'
 
 
;;  ============================================================================
;;  EXECUTION
;;  ============================================================================
 
;;
;;  Setup Network
;;
wait PromptUboot
sendln 'setenv ethaddr ' VarMacAddr
 
wait PromptUboot
sendln 'setenv gatewayip ' VarGatewayIP
 
wait PromptUboot
sendln 'setenv netmask ' VarNetMask
 
;;
;;  Set the IP address of the TFTP Server
;;
wait PromptUboot
sendln 'setenv serverip ' VarServerIP
 
;;
;;  Get an IP Address
;;
wait PromptUboot
sendln CmdDHCP
 
;;
;;  Set the IP address of the TFTP Server again.
;;  (Required on some networks)
;;
wait PromptUboot
sendln 'setenv serverip ' VarServerIP

__uboot-load-kernel.ttl

;;  Tera Term Macro
;;  ============================================================================
;;  file    __uboot-load-kernel.ttl
;;
;;  desc    Steps to boot the Linux kernel.
;;  ============================================================================
;;  HISTORY
;;
;;      2007-11-30                      Sanjeev Premi
;;          Original Version
;;  ============================================================================
 
 
;;  ============================================================================
;;  DEFINITIONS
;;  ============================================================================
 
;;
;;  Name of the boot file
;;
BootFile            = 'uImage'
 
;;
;;  Boot arguments
;;
BootArgs_RAMDISK    = 'console=ttyS0,115200n8 mem=128M root=/dev/ram0 rw initrd=0x81600000,16M ip=dhcp'
BootArgs_NFS        = 'console=ttyS0,115200n8 mem=128M root=/dev/nfs noinitrd nfsroot=192.168.1.10:/home/user/remote/098,nolock,rsize=1024,wsize=1024 ip=dhcp'
 
;;
;;  Boot commands
;;
CmdLoadRamDisk      = 'tftpboot 0x81600000 kernel/ramdisk.gz'
CmdLoadUimage       = 'tftpboot 0x80000000 kernel/uImage'
CmdBootm            = 'bootm 0x80000000'
 
;;  ============================================================================
;;  EXECUTION
;;  ============================================================================
 
;;
;;  General configuration
;;
wait PromptUboot
sendln 'setenv bootfile ' BootFile
 
;;
;;  Set boot arguments
;;
wait PromptUboot
 
strcompare VarBootMethod Boot_RAMDISK
if result=0 then
    sendln 'setenv bootargs ' BootArgs_RAMDISK
endif
 
strcompare VarBootMethod Boot_NFS
if result=0 then
    sendln 'setenv bootargs ' BootArgs_NFS
endif
 
;;
;;  Print current environment (Just for the record)
;;
wait PromptUboot
sendln 'printenv'
 
;;
;;  Load RamDisk Image
;;
strcompare VarBootMethod Boot_RAMDISK
if result=0 then
    wait PromptUboot
    sendln CmdLoadRamDisk
endif
 
;;
;;  Load uImage
;;
wait PromptUboot
sendln CmdLoadUimage
 
;;
;;  Boot Linux
;;
wait PromptUboot
if UseLauterbach=0 then
    sendln CmdBootm
elseif UseLauterbach=1 then
    send CmdBootm
endif

__kernel-common.ttl

;;  Tera Term Macro
;;  ============================================================================
;;  file    __kernel-common.ttl
;;
;;  desc    Common kernel related definitions & commands.
;;  ============================================================================
;;  HISTORY
;;
;;      2007-11-30                      Sanjeev Premi
;;          Original Version
;;  ============================================================================
 
 
;;  ============================================================================
;;  DEFINITIONS
;;  ============================================================================
 
;;
;;  The Linux kernel prompt
;;
PromptLinux     = '[root@OMAP3EVM /]# '
 
;;
;;  Clear screen
;;
CmdClear        = 'clear'

__kernel-power.ttl

;;  Tera Term Macro
;;  ============================================================================
;;  file    __kernel-power.ttl
;;
;;  desc    Common power related definitions and commands.
;;  ============================================================================
;;  HISTORY
;;
;;      2008-04-25                      Sanjeev Premi
;;          Original Version
;;  ============================================================================
 
 
;;  ============================================================================
;;  DEFINITIONS
;;  ============================================================================
 
;;
;;  Set LCD timeout to 2 secs
;;
CmdFbTimeout	= 'echo 2 > /sys/power/fb_timeout_value'
 
;;
;;  Different pause durations used in testing
;;
PauseLog            = 2
PauseNormal         = 30
PauseSuspendBefore  = 5
PauseSuspendAfter   = 10
 
;;
;;  Strings indicating sleep duration
;;
StrSleepNormal          = 'Wait for 30 secs'#13#10
StrSleepBeforeSuspend   = 'Wait for 5 secs'#13#10
StrSleepAfterSuspend    = 'Wait for 60 secs'#13#10
 
;;
;;  Strings indicating actions performed
;;
StrSuspend              = 'Attempt Suspend'#13#10
StrResume               = 'Attempt Resume (send key click)'#13#10
 
StrViewPowerStates      = 'View previous power states'#13#10
StrViewDeepestIdleState = 'View the deepest IDLE state'#13#10
 
StrViewGovernor         = 'View current governor'#13#10
 
StrViewVDD1             = 'View VDD1 OPP'#13#10
StrViewVDD2             = 'View VDD2 OPP'#13#10
 
StrViewClock_MPU_IVA    = 'View MPU & IVA clocks'#13#10
StrViewClock_VirtVDD    = 'View virtual VDD clocks'#13#10
 
;;  ----------------------------------------------------------------------------
;;  CPUIDLE
;;  ----------------------------------------------------------------------------
 
;;
;;  Set deepest IDLE state
;;
CmdShowPowerStates	= 'cat /proc/pm_prepwst'
 
;;
;;  Show current deepest IDLE state
;;
CmdShowDeepestIdleState	= 'cat /sys/power/cpuidle_deepest_state'
 
;;
;;  Show status of OMAP clocks
;;
CmdShowClocks	= 'cat /proc/omap_clocks'
 
;;
;;  Set deepest IDLE state
;;
CmdSetDeepestIdleState_0  = 'echo "0" > /sys/power/cpuidle_deepest_state'
CmdSetDeepestIdleState_1  = 'echo "1" > /sys/power/cpuidle_deepest_state'
CmdSetDeepestIdleState_2  = 'echo "2" > /sys/power/cpuidle_deepest_state'
CmdSetDeepestIdleState_3  = 'echo "3" > /sys/power/cpuidle_deepest_state'
CmdSetDeepestIdleState_4  = 'echo "4" > /sys/power/cpuidle_deepest_state'
CmdSetDeepestIdleState_5  = 'echo "5" > /sys/power/cpuidle_deepest_state'
CmdSetDeepestIdleState_6  = 'echo "6" > /sys/power/cpuidle_deepest_state'
 
;;
;;  Put system to 'suspend' state
;;
CmdSuspend	= 'echo -n "mem" > /sys/power/state'
 
 
;;  ----------------------------------------------------------------------------
;;  CPUFREQ
;;  ----------------------------------------------------------------------------
 
;;
;;  OMAP Clocks
;;
CmdShowAllClocks  = 'cat /proc/omap_clocks'
CmdShowClock_MPU  = 'cat /proc/omap_clocks | grep mpu'
CmdShowClock_IVA  = 'cat /proc/omap_clocks | grep iva'
CmdShowClock_VDDs = 'cat /proc/omap_clocks | grep virt'
 
 
;;
;;  Governor related
;;
CmdShowGovernor            = 'cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor'
 
CmdSetGovernor_Ondemand	   = 'echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor'
CmdSetGovernor_Performance = 'echo "performance" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor'
 
;;
;;  Set OPPs for VDD1
;;
CmdSetVDD1_1  = 'echo "1" > /sys/power/vdd1_opp_value'
CmdSetVDD1_2  = 'echo "2" > /sys/power/vdd1_opp_value'
CmdSetVDD1_3  = 'echo "3" > /sys/power/vdd1_opp_value'
CmdSetVDD1_4  = 'echo "4" > /sys/power/vdd1_opp_value'
CmdSetVDD1_5  = 'echo "5" > /sys/power/vdd1_opp_value'
 
CmdShowVdd1     = 'cat /sys/power/vdd1_opp_value'
 
;;
;;  Set OPPs for VDD2
;;
CmdSetVDD2_1  = 'echo "1" > /sys/power/vdd2_opp_value'
CmdSetVDD2_2  = 'echo "2" > /sys/power/vdd2_opp_value'
 
CmdShowVdd2     = 'cat /sys/power/vdd2_opp_value'

__test-cpuidle.ttl

;;  Tera Term Macro
;;  ============================================================================
;;  file    __test-cpuidle.ttl
;;
;;  desc    Unit tests for "cpuidle" framework.
;;  ============================================================================
;;  HISTORY
;;
;;      2008-04-25                      Sanjeev Premi
;;          Original Version
;;  ============================================================================
 
 
include '__common.ttl'
 
;;  ============================================================================
;;  DEFINITIONS
;;  ============================================================================
 
;;
;;  Testcase title
;;
StrDescription     = 'UNIT TEST CASES FOR CPUIDLE'#13#10
 
 
;;
;;  Strings indicating deepest idle state
;;
StrDeepestIdleState_0   = 'Deepest Idle State = 0'#13#10
StrDeepestIdleState_1   = 'Deepest Idle State = 1'#13#10
StrDeepestIdleState_2   = 'Deepest Idle State = 2'#13#10
StrDeepestIdleState_3   = 'Deepest Idle State = 3'#13#10
StrDeepestIdleState_4   = 'Deepest Idle State = 4'#13#10
StrDeepestIdleState_5   = 'Deepest Idle State = 5'#13#10
StrDeepestIdleState_6   = 'Deepest Idle State = 6'#13#10
StrDeepestIdleState_9   = 'Deepest Idle State = 9 (Incorrect)'#13#10
 
;;
;;  Commands for negative testing
;;
CmdSetDeepestIdleState_9  = 'echo "9" > /sys/power/cpuidle_deepest_state'
 
 
;;  ============================================================================
;;  EXECUTION
;;  ============================================================================
 
wait PromptLinux
 
sendln CmdFbTimeout
wait PromptLinux
 
sendln
wait PromptLinux
 
;;
;;  Open log file
;;
logopen 'test-cpuidle.log' 0 0
logstart
 
logwrite StrEmpty
 
logwrite StrCaption
logwrite CurDate
logwrite StrEmpty
 
logwrite StrCaption
logwrite CurTime
logwrite StrEmpty
 
pause PauseLog
sendln
wait PromptLinux
 
;   C0
 
StrStateCaption     = StrDeepestIdleState_0
CmdDeepestIdleState = CmdSetDeepestIdleState_0
 
call ExecIdleTest
 
;   C1
 
StrStateCaption     = StrDeepestIdleState_1
CmdDeepestIdleState = CmdSetDeepestIdleState_1
 
call ExecIdleTest
 
;   C2
 
StrStateCaption     = StrDeepestIdleState_2
CmdDeepestIdleState = CmdSetDeepestIdleState_2
 
call ExecIdleTest
 
;   C3
 
StrStateCaption     = StrDeepestIdleState_3
CmdDeepestIdleState = CmdSetDeepestIdleState_3
 
call ExecIdleTest
 
;   C4
 
StrStateCaption     = StrDeepestIdleState_4
CmdDeepestIdleState = CmdSetDeepestIdleState_4
 
call ExecIdleTest
 
;   C5
 
StrStateCaption     = StrDeepestIdleState_5
CmdDeepestIdleState = CmdSetDeepestIdleState_5
 
call ExecIdleTest
 
;   C6
 
StrStateCaption     = StrDeepestIdleState_6
CmdDeepestIdleState = CmdSetDeepestIdleState_6
 
call ExecIdleTest
 
;   C9
 
StrStateCaption     = StrDeepestIdleState_9
CmdDeepestIdleState = CmdSetDeepestIdleState_9
 
call ExecIdleTest_N
 
;   Return to C2
 
sendln
sendln
wait PromptLinux
 
sendln
sendln CmdSetDeepestIdleState_2
wait PromptLinux
 
;   ----------------------------------------------------------------------------
;   Close log file
;   ----------------------------------------------------------------------------
sendln
wait PromptLinux
 
pause PauseNormal
logclose
 
exit
 
 
;   ============================================================================
;   SUBROUTINES
;   ============================================================================
 
:ExecIdleTest
;   ============================================================================
;   Execute the CPUIDLE Tests
;   ============================================================================
msgStatus   = ''
 
;   State caption
 
strconcat msgstatus StrStateCaption
statusbox msgstatus TitleWindow
 
logwrite StrEmpty
logwrite StrDivider_2
logwrite StrStateCaption
logwrite StrDivider_2
 
pause PauseLog
 
;   Set deepest idle state
;   (Additional 'newlines' sent just in case first is missed in deeper C states)
sendln
sendln
wait PromptLinux
sendln
sendln CmdDeepestIdleState
wait PromptLinux
 
pause PauseLog
 
;   View previous power states
 
logwrite StrEmpty
logwrite StrCaption
logwrite StrViewPowerStates
logwrite StrEmpty
 
pause PauseLog
 
strconcat msgstatus StrViewPowerStates
statusbox msgstatus TitleWindow
 
sendln
sendln
wait PromptLinux
sendln
sendln CmdShowPowerStates
wait PromptLinux
 
pause PauseLog
 
;   Wait for 'PauseNormal'
;   (Additional 'newline' sent just in case first is missed in deeper C states)
 
strconcat msgstatus StrSleepNormal
statusbox msgstatus TitleWindow
 
logwrite StrEmpty
logwrite StrCaption
logwrite StrSleepNormal
logwrite StrEmpty
 
pause PauseNormal
 
sendln
sendln
wait PromptLinux
 
pause PauseLog
 
;   View previous power states (again)
;   (Additional 'newline' sent just in case first is missed in deeper C states)
 
strconcat msgstatus StrViewPowerStates
statusbox msgstatus TitleWindow
 
logwrite StrEmpty
logwrite StrCaption
logwrite StrViewPowerStates
logwrite StrEmpty
 
pause PauseLog
 
sendln
sendln
wait PromptLinux
sendln
sendln CmdShowPowerStates
wait PromptLinux
 
pause PauseLog
 
;   Wait for 'PauseSuspendBefore'
;   (Additional 'newline' sent just in case first is missed in deeper C states)
 
strconcat msgstatus StrSleepBeforeSuspend
statusbox msgstatus TitleWindow
 
logwrite StrEmpty
logwrite StrCaption
logwrite StrSleepBeforeSuspend
logwrite StrEmpty
 
pause PauseSuspendBefore
 
sendln
sendln
wait PromptLinux
 
pause PauseLog
 
;   Suspend
 
strconcat msgstatus StrSuspend
statusbox msgstatus TitleWindow
 
logwrite StrEmpty
logwrite StrCaption
logwrite StrSuspend
logwrite StrEmpty
 
pause PauseLog
 
sendln
sendln
wait PromptLinux
sendln
sendln CmdSuspend
 
;   Wait for 'PauseSuspendAfter'
 
strconcat msgstatus StrSleepAfterSuspend
statusbox msgstatus TitleWindow
 
logwrite StrEmpty
logwrite StrCaption
logwrite StrSleepAfterSuspend
logwrite StrEmpty
 
pause PauseSuspendAfter
 
;   Resume
 
strconcat msgstatus StrResume
statusbox msgstatus TitleWindow
 
logwrite StrEmpty
logwrite StrCaption
logwrite StrResume
logwrite StrEmpty
 
sendln
wait PromptLinux
 
flushrecv
 
pause PauseLog
 
closesbox
 
return
 
 
;   ============================================================================
;   SUBROUTINE
;
;   Execute the CPUIDLE Tests (Negative)
;   ============================================================================
:ExecIdleTest_N
 
msgStatus   = ''
 
;   State caption
 
strconcat msgstatus StrStateCaption
statusbox msgstatus TitleWindow
 
logwrite StrEmpty
logwrite StrDivider_2
logwrite StrStateCaption
logwrite StrDivider_2
 
pause PauseLog
 
;   Set deepest idle state
;   (Additional 'newline' sent just in case first is missed in deeper C states)
 
sendln
sendln
wait PromptLinux
sendln
sendln CmdDeepestIdleState
wait PromptLinux
 
flushrecv
 
pause PauseLog
 
closesbox
 
return

__test-cpufreq.ttl

;;  Tera Term Macro
;;  ============================================================================
;;  file    __test-cpufreq.ttl
;;
;;  desc    Unit tests for "cpufreq" framework.
;;  ============================================================================
;;  HISTORY
;;
;;      2008-04-25                      Sanjeev Premi
;;          Original Version
;;  ============================================================================
 
include '__common.ttl'
 
;;  ============================================================================
;;  DEFINITIONS
;;  ============================================================================
 
;;
;;  Testcase title
;;
StrDescription     = 'UNIT TEST CASES FOR CPUFREQ'#13#10
 
;;
;;  Strings related to governors
;;
StrGovernorOndemand     = 'Set ONDEMAND Governor'#13#10
StrGovernorPerformance  = 'Set PERFORMANCE Governor'#13#10
 
;;
;;  Strings indicating OPPs
;;
StrOppVdd1_1   = 'VDD1 OPP = 1'#13#10
StrOppVdd1_2   = 'VDD1 OPP = 2'#13#10
StrOppVdd1_3   = 'VDD1 OPP = 3'#13#10
StrOppVdd1_4   = 'VDD1 OPP = 4'#13#10
StrOppVdd1_5   = 'VDD1 OPP = 5'#13#10
 
StrOppVdd1_6   = 'VDD1 OPP = 6 (Incorrect)'#13#10
 
StrOppVdd2_1   = 'VDD2 OPP = 1'#13#10
StrOppVdd2_2   = 'VDD2 OPP = 2'#13#10
StrOppVdd2_3   = 'VDD2 OPP = 3'#13#10
 
StrOppVdd2_4   = 'VDD2 OPP = 4 (Incorrect)'#13#10
 
;;
;;  Commands for negative testing
;;
CmdSetVDD1_6  = 'echo "6" > /sys/power/vdd1_opp_value'
CmdSetVDD2_4  = 'echo "4" > /sys/power/vdd2_opp_value'
 
 
;;  ============================================================================
;;  EXECUTION
;;  ============================================================================
wait PromptLinux
 
sendln CmdFbTimeout
wait PromptLinux
 
sendln CmdClear
wait PromptLinux
 
sendln
wait PromptLinux
 
;;
;;  Open log file
;;
logopen 'test-cpufreq.log' 0 0
logstart
 
logwrite StrEmpty
 
logwrite StrCaption
logwrite CurDate
logwrite StrEmpty
 
logwrite StrCaption
logwrite CurTime
logwrite StrEmpty
 
pause PauseLog
sendln
 
;   Show current governor & switch to 'ondemand' governor
 
StrStateCaption     = StrOppVdd1_1
CmdSetVDD1          = CmdSetVDD1_1
 
call ExecGovernors
 
;   VDD1 - OPP1
 
StrStateCaption     = StrOppVdd1_1
CmdSetVDD1          = CmdSetVDD1_1
 
call ExecFreqTest
 
;   VDD1 - OPP2
 
StrStateCaption     = StrOppVdd1_2
CmdSetVDD1          = CmdSetVDD1_2
 
call ExecFreqTest
 
;   VDD1 - OPP3
 
StrStateCaption     = StrOppVdd1_3
CmdSetVDD1          = CmdSetVDD1_3
 
call ExecFreqTest
 
;   VDD1 - OPP5
;   (Do this early so we don't keep MPU in overdrive for long during negative
;    tests).
 
StrStateCaption     = StrOppVdd1_5
CmdSetVDD1          = CmdSetVDD1_5
 
call ExecFreqTest
 
;   VDD1 - OPP4
 
StrStateCaption     = StrOppVdd1_4
CmdSetVDD1          = CmdSetVDD1_4
 
call ExecFreqTest
 
;   VDD1 - OPP6 (Negative)
 
StrStateCaption     = StrOppVdd1_6
CmdSetVDD1          = CmdSetVDD1_6
 
call ExecFreqTest_N
 
;   VDD2 - OPP1
 
StrStateCaption     = StrOppVdd2_1
CmdSetVDD2          = CmdSetVDD2_1
 
call ExecFreqTest2
 
;   VDD1 - OPP2
 
StrStateCaption     = StrOppVdd2_2
CmdSetVDD2          = CmdSetVDD2_2
 
call ExecFreqTest2
 
;   VDD1 - OPP3
 
StrStateCaption     = StrOppVdd2_3
CmdSetVDD2          = CmdSetVDD2_3
 
call ExecFreqTest2
 
 
;   ----------------------------------------------------------------------------
;   Close log file
;   ----------------------------------------------------------------------------
sendln
wait PromptLinux
 
pause PauseNormal
logclose
 
exit
 
 
;   ============================================================================
;   SUBROUTINES
;   ============================================================================
 
:ExecGovernors
;   ============================================================================
;   Execute the CPUFREQ Tests
;   ============================================================================
msgStatus   = ''
 
;   State caption
 
strconcat msgstatus StrStateCaption
statusbox msgstatus TitleWindow
 
logwrite StrEmpty
logwrite StrDivider_2
logwrite StrStateCaption
logwrite StrDivider_2
 
pause PauseLog
sendln
wait PromptLinux
 
;   Show current governor
strconcat msgstatus StrViewGovernor
statusbox msgstatus TitleWindow
 
logwrite StrEmpty
logwrite StrCaption
logwrite StrViewGovernor
logwrite StrEmpty
 
sendln CmdShowGovernor
wait PromptLinux
 
pause PauseLog
 
;   Set 'ondemand' governor
 
strconcat msgstatus StrGovernorOndemand
statusbox msgstatus TitleWindow
 
logwrite StrEmpty
logwrite StrCaption
logwrite StrGovernorOndemand
logwrite StrEmpty
 
pause PauseLog
 
sendln CmdSetGovernor_Ondemand
wait PromptLinux
 
;   View virtual VDD clocks
 
logwrite StrEmpty
logwrite StrCaption
logwrite StrViewClock_VirtVDD
logwrite StrEmpty
 
pause PauseLog
 
sendln
wait PromptLinux
 
wait PromptLinux
sendln CmdShowClock_VDDs
 
pause PauseLog
 
;   View current MPU & IVA clocks
 
logwrite StrEmpty
logwrite StrCaption
logwrite StrViewClock_MPU_IVA
logwrite StrEmpty
 
pause PauseLog
 
sendln
wait PromptLinux
 
wait PromptLinux
sendln CmdShowClock_MPU
 
pause PauseLog
 
sendln
wait PromptLinux
 
sendln CmdShowClock_IVA
wait PromptLinux
 
pause PauseLog
 
closesbox
 
return
 
 
:ExecFreqTest
;   ============================================================================
;   Execute the CPUFREQ Tests
;   ============================================================================
msgStatus   = ''
 
;   State caption
 
strconcat msgstatus StrStateCaption
statusbox msgstatus TitleWindow
 
logwrite StrEmpty
logwrite StrDivider_2
logwrite StrStateCaption
logwrite StrDivider_2
 
pause PauseLog
 
;   Set VDD1 OPP
 
sendln
wait PromptLinux
 
sendln CmdSetVDD1
wait PromptLinux
 
pause PauseLog
 
;   View current VDD1 OPP
 
logwrite StrEmpty
logwrite StrCaption
logwrite StrViewVDD1
logwrite StrEmpty
 
pause PauseLog
 
sendln
wait PromptLinux
 
wait PromptLinux
sendln CmdShowVdd1
 
pause PauseLog
 
;   View current VDD2 OPP
 
logwrite StrEmpty
logwrite StrCaption
logwrite StrViewVDD2
logwrite StrEmpty
 
pause PauseLog
 
sendln
wait PromptLinux
 
wait PromptLinux
sendln CmdShowVdd2
 
pause PauseLog
 
;   View virtual VDD clocks
 
logwrite StrEmpty
logwrite StrCaption
logwrite StrViewClock_VirtVDD
logwrite StrEmpty
 
pause PauseLog
 
sendln
wait PromptLinux
 
wait PromptLinux
sendln CmdShowClock_VDDs
 
pause PauseLog
 
;   View current MPU & IVA clocks
 
logwrite StrEmpty
logwrite StrCaption
logwrite StrViewClock_MPU_IVA
logwrite StrEmpty
 
pause PauseLog
 
sendln
wait PromptLinux
 
wait PromptLinux
sendln CmdShowClock_MPU
 
pause PauseLog
 
sendln
wait PromptLinux
 
sendln CmdShowClock_IVA
wait PromptLinux
 
pause PauseLog
 
;   Wait for 'PauseSuspendBefore'
 
strconcat msgstatus StrSleepBeforeSuspend
statusbox msgstatus TitleWindow
 
logwrite StrEmpty
logwrite StrCaption
logwrite StrSleepBeforeSuspend
logwrite StrEmpty
 
pause PauseSuspendBefore
 
sendln
wait PromptLinux
 
pause PauseLog
 
;   Suspend
 
strconcat msgstatus StrSuspend
statusbox msgstatus TitleWindow
 
logwrite StrEmpty
logwrite StrCaption
logwrite StrSuspend
logwrite StrEmpty
 
pause PauseLog
 
sendln
sendln CmdSuspend
 
;   Wait for 'PauseSuspendAfter'
 
strconcat msgstatus StrSleepAfterSuspend
statusbox msgstatus TitleWindow
 
logwrite StrEmpty
logwrite StrCaption
logwrite StrSleepAfterSuspend
logwrite StrEmpty
 
pause PauseSuspendAfter
 
;   Resume
 
strconcat msgstatus StrResume
statusbox msgstatus TitleWindow
 
logwrite StrEmpty
logwrite StrCaption
logwrite StrResume
logwrite StrEmpty
 
sendln
wait PromptLinux
 
flushrecv
 
pause PauseLog
 
closesbox
 
return
 
 
:ExecFreqTest2
;   ============================================================================
;   Execute the CPUFREQ Tests (VDD2)
;   ============================================================================
msgStatus   = ''
 
;   State caption
 
strconcat msgstatus StrStateCaption
statusbox msgstatus TitleWindow
 
logwrite StrEmpty
logwrite StrDivider_2
logwrite StrStateCaption
logwrite StrDivider_2
 
pause PauseLog
 
;   Set VDD2 OPP
 
sendln
wait PromptLinux
 
sendln CmdSetVDD2
wait PromptLinux
 
pause PauseLog
 
;   View current VDD1 OPP
 
logwrite StrEmpty
logwrite StrCaption
logwrite StrViewVDD1
logwrite StrEmpty
 
pause PauseLog
 
sendln
wait PromptLinux
 
wait PromptLinux
sendln CmdShowVdd1
 
pause PauseLog
 
;   View current VDD2 OPP
 
logwrite StrEmpty
logwrite StrCaption
logwrite StrViewVDD2
logwrite StrEmpty
 
pause PauseLog
 
sendln
wait PromptLinux
 
wait PromptLinux
sendln CmdShowVdd2
 
pause PauseLog
 
sendln
wait PromptLinux
 
flushrecv
 
pause PauseLog
 
closesbox
 
return
 
 
;   ============================================================================
;   SUBROUTINE
;
;   Execute the CPUFREQ Tests (Negative)
;   ============================================================================
:ExecFreqTest_N
 
msgStatus   = ''
 
;   State caption
 
strconcat msgstatus StrStateCaption
statusbox msgstatus TitleWindow
 
logwrite StrEmpty
logwrite StrDivider_2
logwrite StrStateCaption
logwrite StrDivider_2
 
pause PauseLog
 
;   Set VDD1 OPP
 
sendln
wait PromptLinux
 
sendln CmdSetVDD1
wait PromptLinux
 
flushrecv
 
pause PauseLog
 
closesbox
 
return

omap3evm-flash-uboot.ttl

 

omap3evm-boot-ramdisk.ttl

;;  Tera Term Macro
;;  ============================================================================
;;  file    omap3evm-boot-ramdisk.ttl
;;
;;  desc    Steps to boot the Linux kernel using ramdisk on the OMAP3EVM.
;;  ============================================================================
;;  HISTORY
;;
;;      2007-11-30                      Sanjeev Premi
;;          Original Version
;;  ============================================================================
 
 
include '__common.ttl'
 
VarBootMethod = Boot_RAMDISK
 
include '__uboot-config-common.ttl'
include '__uboot-config-network.ttl'
include '__uboot-load-kernel.ttl'
 
include '__kernel-common.ttl'
include '__kernel-boot.ttl'

omap3evm-boot-nfs.ttl

;;  Tera Term Macro
;;  ============================================================================
;;  file    omap3evm-boot-nfs.ttl
;;
;;  desc    Steps to boot the Linux kernel using NFS on the OMAP3EVM.
;;  ============================================================================
;;  HISTORY
;;
;;      2007-11-30                      Sanjeev Premi
;;          Original Version
;;  ============================================================================
 
 
include '__common.ttl'
 
VarBootMethod = Boot_NFS
 
include '__uboot-config-common.ttl'
include '__uboot-config-network.ttl'
include '__uboot-load-kernel.ttl'
 
include '__kernel-common.ttl'
include '__kernel-boot.ttl'

omap3evm-test-power.ttl

;;  Tera Term Macro
;;  ============================================================================
;;  file    omap3evm-test-power.ttl
;;
;;  desc    Steps to execute Power Management test cases on the OMAP3EVM.
;;  ============================================================================
;;  HISTORY
;;
;;      2008-04-25                      Sanjeev Premi
;;          Original Version
;;  ============================================================================
 
 
include '__common.ttl'
 
include '__kernel-common.ttl'
 
include '__kernel-power.ttl'
 
include '__test-cpuidle.ttl'
include '__test-cpufreq.ttl'
 
beep
pause 1
beep
pause 1
beep

What about DaVinci TeraTerm Scripts?

Below are a few simple scripts used to boot a DaVinci EVM - obviously you'll need to modify your IP address, kernel name and rootpath appropriately. These examples should serve as a good starting point if you want to create your own scripts.

To run the scripts, simply hit any key during the U-boot countdown to get to the U-boot prompt. Then run "Macro->Control" and browse to the *.ttl.

DM6446: Crossover Script

When you don't have a switch/router and need to boot your EVM using TFTP/NFS, you can directly connect your EVM to your laptop with a crossover cable. Here, the Linux host's IP address is set to 192.168.1.100 (modify as needed). To manually set the Linux host's IP address:

  1. host$ su - Login as root
  2. host# setup - Setup your network
  3. Browse to Network Configuration, then choose "Yes" (to Setup Network)
  4. Uncheck "Use dynamic IP configuration" using the spacebar (if needed)
  5. Tab to "IP address:" and type 192.168.1.100 and tab (using default values for Netmask, Gateway and Nameserver) to "OK" and hit Enter. Save your settings when prompted.
  6. host# /etc/init.d/network restart - Restart your network
  7. host# ipconfig - Verify that your IP address has been set to 192.168.1.100

Also, note the $(videoargs) setting below (setup for DVSDK 1.30)--if you are using an older DVSDK, simply remove $(videoargs) from the bootargs.

;; Tera Term Macro
;; ============================================================================
;; file dm6446_crossover.ttl
;; comments rename serverip, rootpath and bootfile
;; ============================================================================
 
showtt 0
setsync 1
 
sendln 'setenv serverip 192.168.1.100'
waitrecv '#' 1 0
 
sendln 'setenv ipaddr 192.168.1.101'
waitrecv '#' 1 0
 
sendln 'setenv nfshost $(serverip)'
waitrecv '#' 1 0
 
sendln 'setenv rootpath /home/user/target'
waitrecv '#' 1 0
 
sendln 'setenv videoargs video=davincifb:vid0=720x576x16,2500K:vid1=720x576x16,2500K:osd0=720x576x16,2025K davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=ntsc'
waitrecv '#' 1 0
 
sendln 'setenv bootargs $(videoargs) console=ttyS0,115200n8 noinitrd rw root=/dev/nfs nfsroot=$(nfshost):$(rootpath),nolock ip=$(ipaddr) mem=120M'
waitrecv '#' 1 0
 
sendln 'tftpboot 0x80700000 uImage; bootm'
waitrecv '#' 1 0
Note: The use of parenthesis for variable substitution is being deprecated for new U-boot releases - use curly braces {} instead. Check http://www.denx.de/wiki/view/DULG/CommandLineParsing

Are there any DM355 examples?

Below are 4 macros for each of the boot options on DM355 - TFTP/NAND for kernel and NAND/NFS for file system):

;; Tera Term Macro
;; ============================================================================
;; file dm355_tftp_nfs.ttl
;; comments rename the serverip, rootpath and bootfile
;; ============================================================================
 
showtt 0
setsync 1
 
sendln 'setenv serverip xxx.xxx.xxx.xxx'
waitrecv '#' 1 0
 
sendln 'setenv nfshost $(serverip)'
waitrecv '#' 1 0
 
sendln 'setenv rootpath /home/user/target'
waitrecv '#' 1 0
 
sendln 'setenv videoargs video=dm355fb:vid0=720x480x16,2025K@0,0:vid1=720x480x16,2025K@0,0:osd0=720x480,1350K@0,0:osd1=720x480,1350K@0,0
waitrecv '#' 1 0
 
sendln 'setenv bootargs $(videoargs) console=ttyS0,115200n8 root=/dev/nfs rw nfsroot=$(nfshost):$(rootpath) ip=dhcp mem=116M'
waitrecv '#' 1 0
 
sendln 'setenv bootfile uImage'
waitrecv '#' 1 0
 
sendln 'dhcp;bootm'
waitrecv '#' 1 0
Note: The use of parenthesis for variable substitution is being deprecated for new U-boot releases - use curly braces {} instead. Check http://www.denx.de/wiki/view/DULG/CommandLineParsing
;; Tera Term Macro
;; ============================================================================
;; file dm355_tftp_nand.ttl
;; comments rename the serverip and bootfile
;; ============================================================================
 
showtt 0
setsync 1
 
sendln 'setenv serverip xxx.xxx.xxx.xxx'
waitrecv '#' 1 0
 
sendln 'setenv videoargs video=dm355fb:vid0=720x480x16,2025K@0,0:vid1=720x480x16,2025K@0,0:osd0=720x480,1350K@0,0:osd1=720x480,1350K@0,0
waitrecv '#' 1 0
 
sendln 'setenv bootargs $(videoargs) console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2 rw ip=dhcp mem=116M'
waitrecv '#' 1 0
 
sendln 'setenv bootfile uImage'
waitrecv '#' 1 0
 
sendln 'dhcp;bootm'
waitrecv '#' 1 0
Note: The use of parenthesis for variable substitution is being deprecated for new U-boot releases - use curly braces {} instead. Check http://www.denx.de/wiki/view/DULG/CommandLineParsing
;; Tera Term Macro
;; ============================================================================
;; file dm355_nand_nfs.ttl
;; comments rename the serverip and rootpath
;; ============================================================================
showtt 0
setsync 1
 
sendln 'setenv serverip xxx.xxx.xxx.xxx'
waitrecv '#' 1 0
 
sendln 'setenv nfshost $(serverip)'
waitrecv '#' 1 0
 
sendln 'setenv rootpath /home/user/target'
waitrecv '#' 1 0
 
sendln 'setenv videoargs video=dm355fb:vid0=720x480x16,2025K@0,0:vid1=720x480x16,2025K@0,0:osd0=720x480,1350K@0,0:osd1=720x480,1350K@0,0
waitrecv '#' 1 0
 
sendln 'setenv bootargs $(videoargs) console=ttyS0,115200n8 root=/dev/nfs rw nfsroot=$(nfshost):$(rootpath) ip=dhcp mem=116M'
waitrecv '#' 1 0
 
sendln 'nboot 0x80700000 0 0x400000;bootm'
waitrecv '#' 1 0
Note: The use of parenthesis for variable substitution is being deprecated for new U-boot releases - use curly braces {} instead. Check http://www.denx.de/wiki/view/DULG/CommandLineParsing
;; Tera Term Macro
;; ============================================================================
;; file dm355_nand_nand.ttl
;; ============================================================================
showtt 0
setsync 1
 
sendln 'setenv videoargs video=dm355fb:vid0=720x480x16,2025K@0,0:vid1=720x480x16,2025K@0,0:osd0=720x480,1350K@0,0:osd1=720x480,1350K@0,0
waitrecv '#' 1 0
 
sendln 'setenv bootargs $(videoargs) console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2 rw ip=dhcp mem=116M'
waitrecv '#' 1 0
 
sendln 'nboot 0x80700000 0 0x400000;bootm'
waitrecv '#' 1 0
Note: The use of parenthesis for variable substitution is being deprecated for new U-boot releases - use curly braces {} instead. Check http://www.denx.de/wiki/view/DULG/CommandLineParsing

Are there any DM6467 examples?

Below is an example ttl script for users with a switch/router. To reiterate one of the advantages of using a ttl script is that you can share boards between team members without wrenching their boot settings.

This ttl script has been tested in the DVSDK 1.40 environment.

Naturally replace the serverip with whatever /sbin/ifconfig shows as your IP address.

showtt 0
setsync 1
 
sendln 'setenv serverip 158.123.45.678'
waitrecv '#' 1 0
 
sendln 'setenv nfshost $(serverip)'
waitrecv '#' 1 0
 
sendln 'setenv ipaddr dhcp'
waitrecv '#' 1 0
 
sendln 'setenv rootpath /home/user/workdir/filesys_dm6467'
waitrecv '#' 1 0
 
sendln 'setenv bootargs console=ttyS0,115200n8 noinitrd rw root=/dev/nfs nfsroot=$(nfshost):$(rootpath),nolock ip=$(ipaddr) mem=120M davincihd_capture.channel0_numbuffers=4'
waitrecv '#' 1 0
 
sendln 'setenv bootfile uImage.DM6467'
waitrecv '#' 1 0
 
sendln 'dhcp;tftpboot;bootm'
waitrecv '#' 1 0


Here is a DM6467T EVM Teraterm macro file for DVSDK 3.10. The macro provides the following options:

  • Booting via static IP or DHCP address for EVM
  • Loading kernel via TFTP or Flash
  • Loading filesystem via NFS or HDD
; Macro for Tera Term
; DM6467T EVM - DVSDK v3.10
; Texas Instruments
; Authors: Prateek Bansal, Scott Specker
 
; Uncomment below line if using from command line. Note '/C=1' indicates COM1!! For COM2 use '/C=2'
; connect '/C=1'
;
; showtt Show TeraTerm window when inputting commands
showtt 1
; Synchronous mode - wait for > before next command is sent
setsync 1
 
; Disable autoload TFTP when invoking dhcp command to get IP address
sendln 'setenv autoload no'
waitrecv '>' 1 0
 
; Set boot file if booting kernel via TFTP
sendln 'setenv bootfile uImage'
waitrecv '>' 1 0
 
; Video settings for DVSDK 3.10 for DM6467T EVM
sendln 'setenv videocfg vpif_display.ch2_numbuffers=0 vpif_display.ch3_numbuffers=0'
waitrecv '>' 1 0
 
; static ip  (You can chose to hardcode the static IP address)
sendln 'setenv ipaddr 192.168.1.111'
waitrecv '>' 1 0
sendln 'setenv gateway 192.168.1.1'
waitrecv '>' 1 0
sendln 'setenv netmask 255.255.255.0'
waitrecv '>' 1 0
sendln 'setenv static_ip $ipaddr:$gateway:$netmask::::off'
waitrecv '>' 1 0
 
; Bootcmd parameters for booting kernel from Flash or via TFTP
sendln 'setenv bootcmd_flash nboot 80700000 0 640000\;bootm'
waitrecv '>' 1 0
sendln 'setenv bootcmd_tftp tftp\;bootm'
waitrecv '>' 1 0
 
; Shared NFS directory path
defaultNFSpath='/home/user/workdir/filesys'
msg = 'Use Default NFS Path Address: '
strconcat msg defaultNFSpath
yesnobox msg 'DaVinci Setup'
if result then
	sendln 'setenv nfspath /home/user/workdir/filesys'
	waitrecv '>' 1 0
else
	inputbox 'Enter NFS Path:' 'DaVinci Setup'
 
	sendln 'setenv nfspath ' inputstr
	waitrecv '>' 1 0rebooroo
endif
 
; Boot with Static IP address or DHCP configuration for DM6467 EVM
yesnobox 'Boot Static or Dynamic? [Yes=Static, No=Dynamic(dhcp)]'  'DaVinci Setup'
if result then
	sendln 'setenv myip $static_ip'
	waitrecv '>' 1 0
else
	sendln 'dhcp'
	waitrecv '>' 1 0
	sendln 'setenv myip dhcp'
	waitrecv '>' 1 0
endif
 
; TFTP Server and NFS host IP Address - for loading uImage and NFS directory
defaultServerip='192.168.1.102'
msg = 'Use Default TFTP Server IP Address: '
strconcat msg defaultServerip
yesnobox msg 'DaVinci Setup'
if result then
	sendln 'setenv serverip ' defaultServerip
	waitrecv '>' 1 0
else
	inputbox 'Enter Server IP Address:' 'DaVinci Setup'
	sendln 'setenv serverip ' inputstr
	waitrecv '>' 1 0
endif
 
; Set NFS host address same as serverip
sendln 'setenv nfshost $serverip'
waitrecv '>' 1 0
 
 
; Boot HDD or NFS filesystem
yesnobox 'Boot using Root from HDD or NFS? (Yes=HDD, No=NFS)'  'DaVinci Setup'
if result then
	sendln 'setenv bootargs_hdd mem=76M console=ttyS0,115200n8 noinitrd ip=$myip root=/dev/hda1'
	waitrecv '>' 1 0
	sendln 'setenv bootargs $bootargs_hdd $videocfg'
	waitrecv '>' 1 0
else
	sendln 'setenv bootargs_nfs mem=76M console=ttyS0,115200n8 noinitrd rw ip=$myip root=/dev/nfs nfsroot=$nfshost:$nfspath,nolock'
	waitrecv '>' 1 0
	sendln "set bootargs $bootargs_nfs $videocfg"
	waitrecv '>' 1 0
endif
 
; Boot kernel from Flash or via TFTP
yesnobox 'Boot Kernel from Flash or via TFTP? (Yes=Flash, No=TFTP)'  'DaVinci Setup'
if result then
	sendln 'set bootcmd $bootcmd_flash'
	waitrecv '>' 1 0
else
	sendln 'set bootcmd $bootcmd_tftp'
	waitrecv '>' 1 0
endif
 
; Save environment variables
yesnobox 'Save uboot environment variables?' 'DaVinci Setup'
if result then
	sendln 'saveenv'
	waitrecv '>' 1 0
endif
 
; Boot linux or go to uboot prompt
yesnobox 'Boot Linux now?' 'DaVinci Setup'
if result then
    sendln 'boot'
else
	setdlgpos 200 200
	msg='Use the "boot" command when you want to boot the DVEVM'
	;statusbox 'Message' 'Title'
	statusbox msg 'Boot later...'
	pause 2
	closesbox
endif
 
showtt 1

Note: The use of parenthesis for variable substitution is being deprecated for new U-boot releases - use curly braces {} instead. Check http://www.denx.de/wiki/view/DULG/CommandLineParsing

What about OMAP-L1 TeraTerm Scripts?

Are there any OMAPL137 examples?

Below is an example ttl script for users with a switch/router and NFS server. To reiterate one of the advantages of using a ttl script is that you can share boards between team members without wrenching their boot settings.

This ttl script has been tested in the SDK 1.00.00.10 environment and all directories and filenames match the default installation procedure as listed in the Installing the Software for OMAP-L137

Note: for OMAPL137 you must set the delay as mentioned in the What is a TeraTerm INI? section

  • Replace the serverip with whatever /sbin/ifconfig shows as your IP address.
  • Replace the useracct with the name you use to login to your Linux PC.
; Keep the VT window open while executing macro
showtt 1
 
; Set the synchronous mode
setsync 1
 
; Set the title to make easier identification between boards
settitle 'OMAPL137'
 
; set tftp server ip address
sendln 'setenv serverip 192.168.1.89' ;CHANGE 192.168.1.89 TO MATCH YOUR CONFIGURATION!!!
 
; set nfs server ip address
sendln 'setenv nfshost ${serverip}'
 
; set nfs rootpath
sendln 'setenv rootpath /home/<useracct>/workdir/filesys' ;CHANGE <useracct> TO MATCH YOUR CONFIGURATION!!!
 
; set kernel command line argument
sendln 'setenv bootargs console=ttyS2,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=${nfshost}:${rootpath},nolock mem=32M'
 
; choose kernel image file name
sendln 'setenv bootfile uImage'
 
; obtain the IP via dhcp server and boot the board!
sendln 'dhcp;bootm'
 
; end of macro file

The script below works with an USB pendrive that should meet the requirements below. Check the <LSP_02.20_OMAP-L137_User_Guide.pdf> and this topic for additional details.

  • U-boot must be rebuilt with USB support enabled.
  • The 2GB USB pendrive must be connected to USB0 only and contain two partitions:
    • the first partition must be of type FAT16 or FAT32 and contains the uImage (Linux Kernel) file in the root directory
    • the second partition must be of type ext2 or ext3 and contains the target filesystem (the same contents of /home/<useracct>/workdir/filesys)
; Keep the VT window open while executing macro
showtt 1
 
; Set the synchronous mode
setsync 1
 
; needed because of the slower operations usb start and fatload
PromptUboot = 'U-Boot > '
 
; Set the title to make easier identification between boards
settitle 'OMAPL137'
 
; check if USB is alive and which devices are on
sendln 'usb start'
wait PromptUboot
 
; load the kernel image to memory
sendln 'fatload usb 0:1 0xC0700000 uimage'
wait PromptUboot
 
; set kernel command line argument
sendln 'setenv bootargs console=ttyS2,115200n8 noinitrd rw ip=dhcp root=/dev/sda2 rootfstype=ext2 mem=32M' ;USB BOOT
 
; choose kernel image file name
sendln 'setenv bootfile uImage'
 
; boot the board!
sendln 'bootm'
 
; end of macro file

Note: The command usb start sometimes hangs on the message scanning bus for storage devices.... If this happens to you, stop the macro from executing, reset the board and reload the script file.

The script below works with a linux kernel in SPI and a MMC/SD card that contains the root filesystem

  • The SPI Flash should be pre-loaded with a linux kernel located at address 0x1e0000 (Primus U-boot is not able to initialize and load a kernel from the SD card). The production boards will have the kernel preloaded. For additional details on how to do this, please check this topic and section 5.4.2 of the <LSP_02.20_OMAP-L137_User_Guide.pdf>
  • The last parameter of the sf read command must be equal or greater than the size of the linux kernel image.
; Keep the VT window open while executing macro
showtt 1
 
; Set the synchronous mode
setsync 1
 
; Set the title to make easier identification between boards
settitle 'OMAPL137'
 
; needed because of the slower SPI Flash operations
PromptUboot = 'U-Boot > '
 
; set kernel command line argument
sendln 'setenv bootargs console=ttyS2,115200n8 noinitrd rw ip=dhcp root=/dev/mmcblk0p1 rootfstype=ext2 mem=32M' ;MMC/SD BOOT
 
; select the SPI Flash memory
sendln 'sf probe 0'
wait PromptUboot
 
; load kernel image to RAM address 0xc0700000...
sendln 'sf read 0xc0700000 0x1e0000 0x220000'
wait PromptUboot
 
; ...and boot the board!
sendln 'bootm'
 
; end of macro file

Are there any OMAPL138 examples?

Below is an example ttl script for users with a switch/router and NFS server. To reiterate one of the advantages of using a ttl script is that you can share boards between team members without wrenching their boot settings.

This ttl script has been tested in the SDK 1.00.00.08 environment and all directories and filenames match the default installation procedure as listed in the GSG: Installing the Software for OMAP-L1

; Keep the VT window open while executing macro
showtt 1
 
; Set the synchronous mode
setsync 1
 
; Set the title to make easier identification between boards
settitle 'OMAPL138'
 
; The timeout between lines is 1 second
;timeout = 1
 
; set tftp server ip address
sendln 'setenv serverip 192.168.1.89' ;CHANGE 192.168.1.89 TO MATCH YOUR CONFIGURATION!!!
 
; set nfs server ip address
sendln 'setenv nfshost ${serverip}'
 
; set nfs rootpath
sendln 'setenv rootpath /home/<useracct>/workdir/filesys' ;CHANGE <useracct> TO MATCH YOUR CONFIGURATION!!!
 
; set kernel command line argument
sendln 'setenv bootargs console=ttyS2,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=${nfshost}:${rootpath},nolock mem=32M'
 
; choose kernel image file name
sendln 'setenv bootfile uImage'
 
; obtain the IP via dhcp server and boot the board!
sendln 'dhcp;bootm'
 
; end of macro file

What about using a DLP Pico Projector?

Beagle example

; Tera Term script for using DLP Pico Projector as display on Beagle
; File system on partition 2 of SD card - you may need to modify the DSS based on your kernel
; The first bootargs are for 2.6.28, and second set for 2.6.29
setsync 1
 
sendln 'mmcinit'
waitrecv '#' 1 0
 
sendln 'setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait omap-dss.def_disp=dvi omapfb.video_mode=640x480MR-16@60 omapfb.vram=4M,4M,4M mem=80M'
;sendln 'setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait omapdss.def_disp=dvi omapfb.mode=dvi:640x480MR-16@60 omapfb.vram=0:4M,1:4M,2:4M mem=80M'
waitrecv '#' 1 0
 
sendln 'setenv bootcmd mmcinit;fatload mmc 0 80300000 uImage;bootm 80300000'
waitrecv '#' 1 0

What is a TeraTerm INI?

When TeraTerm starts, it runs TERATERM.INI to setup the console. Once you have set your serial terminal to the correct baude rate (via "Setup->Serial") on COM1 (via "Setup->General->Default Port"), you can save the setup via "Setup->Save Setup." Save this setup in the TeraTerm Installation directory by overwriting TERATERM.INI. Now your TeraTerm will be setup correctly every time you start it.

To run the above scripts, you may need to add a line delay of 100ms (otherwise the lines can become concatenated) by setting the Transmit delay to 100 ms/line (via "Setup->Serial"). You'll probably want to save this modification in TERATERM.INI to avoid having to modify it every time you start TeraTerm.