[U-Boot-Users] U boot Scripting features

harsh poshtiwala hiharsh at gmail.com
Thu Nov 1 15:20:05 CET 2007


Hi All,

I am using ARM926EJS based cutom board.
Linux 2.6.14
Uboot -1.1.4
Flash -Spansion 64MB NOR Flash (CFI complient)


I want ot run a SCRIPT or execute a C FUNCTION soon as u boot
starts and checks kernel images header and checksum.

if kernel image is bad  uboot will call my function or execute a
script that will jump to a specific ( predefined Flash Memory (
which was already erased )location and write a byte with my set
values.


I tried both the ways but i do have following difficulties on
each approch.

1,SCRIPT
If i want to do some mathamatical operation in the script how do
i achieve ?

For example i want to increment a varible everytime my script is run.

I couldn't do the  "+' operation in the script.

I want to achieve something like following.
=================================================================
echo "this is my script"

if (primary_image)
{
mw.b 0x100000 0xFE bootcount
cp.b 0x10000 0x33f00000 bootcount

}

else
{
mw.b 0x100000 0xFD bootcount
cp.b 0x10000 0x33f00000 bootcount
}

bootcount ++;


=========================
Here Primary_image will be set by my cmd_bootm.c and i want to
pass it to the script.


Is the above thing doable with uboot scripting ?

Is there any way to do Mathamatical / arithmatic and logical
operations in U boot script?





2,My function Which supports uboot monitor command "mw" ( Memeory
write)

after compiling i coudn't execute my function on the target it
says bad image type.


ofcourse i loaded / burned this image at specific loacation i.e
0x30f00000 and i did

autoscr 0x30f00000

Bad image type

Here is the command i used to create image.I tried all the valid
-T ( type option ) of the mkimage utility.

Could you please throw some pointers on any of this ?




./mkimage -A ARM -O linux -T firmware -C none  -a 0x1000000 -e
0x100000 -n 'MyScript' -d MyScript.o MyScript.img
Image Name:   MyScript
Created:      Wed Oct 31 19:32:48 2007
Image Type:   ARM Linux Firmware (uncompressed)
Data Size:    7051 Bytes = 6.89 kB = 0.01 MB
Load Address: 0x01000000
Entry Point:  0x00100000
[root at volleyball u-boot-CFI]# cp MyScript.img /tftpboot/cmd.img


3,Is there any way to access the bootload count on ARM
architecture ,i defined #define CONFIG_BOOTCOUNT_LIMIT in my
board config file but the compilation failed at undefined
reference to bootload() / or similar function call.




-- 
Thanks & Regards
Harsh




More information about the U-Boot mailing list