Contents

Warning

This is an experimental new SIMpad SL4 bootloader. Use at one's own risk!!!

-> NEVER touch RedBoot without JTAG cable!!!

Functionality

  • Bootloader (manual)
  • Serial (xy modem) download
  • PCMCIA compact flash download (ext2 file system)
  • PCMCIA NE2000 network download (tftp, http)
  • Basic I/O access (GPIO, CS3, memory)

Installation

  • Download SIMpad SL4 RedBoot 01
  • Burn RedBoot
    • Load redbootROM.bin with JTAG (at address 0) on your SIMpad SL4
    • or with bootldr
boot> set override=1
  setting param <override> to value <1>
boot> pflash 0 0x60000 0
  addr=00000000
  len=00060000
  protect=00000000
Protect=00000000
boot> load flash 0
loading flash region flash
using ymodem
ready for YMODEM transfer...
D4F998A85EAF5EAD925C0A7737F582A5  redboot.bin
0002C9FC bytes loaded to C0000400

programming flash...erasing ...
Erasing sector 00000000
Erasing sector 00020000
writing flash..
addr: 00000000 data: E59FF018
addr: 00010000 data: 020350FF
addr: 00020000 data: 75757575
verifying ...
done.
boot>
  • After flashing and verifying, open serial teriminal (115200 8N1 no flow control), reset your SIMpad -> RedBoot monitor appears
**Warning** FLASH configuration checksum error or invalid key
Use 'fconfig -i' to [re]initialize database
No network interfaces found

RedBoot(tm) bootstrap and debug environment [ROM]
Non-certified release, version UNKNOWN - built 19:25:09, Jul 27 2007

Platform: SIMpad (StrongARM 1110)
Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
Copyright (C) 2003, 2004, 2005, 2006 eCosCentric Limited

RAM: 0x00000000-0x04000000, [0x00016140-0x03fd1000] available
FLASH: 0x50000000 - 0x52000000, 256 blocks of 0x00020000 bytes each.
RedBoot>
  • Initialise redboot flash partition
RedBoot> fis init
About to initialize [format] FLASH image system - continue (y/n)? y
*** Initialize FLASH Image System
... Unlock from 0x50040000-0x50060000: .
... Erase from 0x50040000-0x50060000: .
... Program from 0x03fe0000-0x04000000 at 0x50040000: .
... Lock from 0x50040000-0x50060000: .
RedBoot> fis list
Name              FLASH addr  Mem addr    Length      Entry point
RedBoot           0x50000000  0x50000000  0x00040000  0x00000000
FIS directory     0x50040000  0x50040000  0x0001F000  0x00000000
RedBoot config    0x5005F000  0x5005F000  0x00001000  0x00000000
RedBoot>
  • Initialise redboot environment variables
RedBoot> fconfig -i
Initialize non-volatile configuration - continue (y/n)? y
Run script at boot: false
Use BOOTP for network configuration: false
Gateway IP address: 192.168.1.1
Local IP address: 192.168.1.55
Local IP address mask: 255.255.255.0
Default server IP address: 192.168.1.40
Console baud rate: 115200
DNS server IP address: 192.168.1.1
GDB connection port: 9000
Force console for special debug messages: false
Network debug at boot time: false
Default network device: dp83902a_eth0
PCMCIA enabled: true
Update RedBoot non-volatile configuration - continue (y/n)? y
... Unlock from 0x50040000-0x50060000: .
... Erase from 0x50040000-0x50060000: .
... Program from 0x03fe0000-0x04000000 at 0x50040000: .
... Lock from 0x50040000-0x50060000: .
RedBoot>
  • Enjoy it :-)

Hint

  • Study redboot manual
  • Enter "help" (or "help <cmd>") in RedBoot shell
  • "poweroff" turns of your SIMpad, "reset" restarts it
  • Don't play with GPIO's , CS3 latch :-)

PCMCIA

  • Insert PCMCIA card (compact flash or NE2000 network) BEFOR you start your SIMpad (redboot initialise all cards at startup)
    • network: RedBoot prints a message (MAC address, IP address) durring start up. If you enabled bootp (DHCP) this can take a few seconds to get an ip
    • cf: after bootup you can enter "disks" -> prints a list of partitions
  • NEVER exchange your PCMCIA card when RedBoot runs (different card voltages can destroy the card and/or SIMpad!!!) -> "poweroff", exchange card, turn on your SImpad
  • If you don't need PCMCIA in redboot, turn it off and reboot (faster boot up)
RedBoot> fconfig
...
PCMCIA enabled: false
Update RedBoot non-volatile configuration - continue (y/n)? y
... Unlock from 0x50040000-0x50060000: .
... Erase from 0x50040000-0x50060000: .
... Program from 0x03fe0000-0x04000000 at 0x50040000: .
... Lock from 0x50040000-0x50060000: .
RedBoot> reset

Download

Loads a file/image in the RAM

  • Serial Y-modem download
RedBoot> load -m y -r -b %{FREEMEMLO}
C  -> now you can start your y-modem download
Raw file loaded 0x00016400-0x00042dfb, assumed entry at 0x00016400
xyzModem - CRC mode, 1430(SOH)/0(STX)/0(CAN) packets, 3 retries
RedBoot>
  • CF download , disks show available partitions (Linux->ext2)
RedBoot> disks
hda1     Linux
RedBoot> load -m disk -r -b %{FREEMEMLO} hda1:zImage
Raw file loaded 0x00016400-0x0014f153, assumed entry at 0x00016400
RedBoot>
  • Tftp download
RedBoot> ping -v -n 3 -h 192.168.1.40
Network PING - from 192.168.1.55 to 192.168.1.40
 seq: 1, time: 0 (ticks)
 seq: 2, time: 0 (ticks)
 seq: 3, time: 0 (ticks)
PING - received 3 of 3 expected -> connection ok
RedBoot> load -m tftp -r -b %{FREEMEMLO} -h 192.168.1.40 zImage
Raw file loaded 0x00016400-0x0014f153, assumed entry at 0x00016400
RedBoot>
  • Check download (e.g. Linux kernel, bootloader)
RedBoot> cksum
Computing cksum for area 16400-14f154
POSIX cksum = 2354131565 1281364 (0x8c51326d 0x00138d54)
RedBoot>
and
da@64onair:/stuff/nfssrv/tftp$ cksum zImage
2354131565 1281364 zImage

Boot Linux

After you load a Linux kernel (e.g. over tftp) you can boot it

RedBoot> exec -c "noinitrd console=ttySA0 mem=64M"
Using base address 0x00016400 and length 0x00138d54
Uncompressing Linux............................................
........................... done, booting the kernel.
Linux version 2.6.20oe1 (heiko@JODA2) (gcc version 4.1.2) #3 
PREEMPT Sat Apr 7 15:57:34 CEST 2007
CPU: StrongARM-1110 [6901b118] revision 8 (ARMv4), cr=c000717f
Machine: Simpad
...

Network

  • Ping
RedBoot> ping -v -n 3 -h www.google.ch
Network PING - from 192.168.1.55 to 64.233.183.104
 seq: 1, time: 26 (ticks)
 seq: 2, time: 25 (ticks)
 seq: 3, time: 25 (ticks)
PING - received 3 of 3 expected
RedBoot>
  • Show IP address
RedBoot> ip_address
IP: 192.168.1.55/255.255.255.0, Gateway: 192.168.1.1
Default server: 192.168.1.40, DNS server IP: 192.168.1.1
RedBoot>
or
RedBoot> ip_address
Sorry, networking is not available.
RedBoot>

Flash operation

  • Show flash partitions
RedBoot> fis list
Name              FLASH addr  Mem addr    Length      Entry point
RedBoot           0x50000000  0x50000000  0x00040000  0x00000000
FIS directory     0x50040000  0x50040000  0x0001F000  0x00000000
RedBoot config    0x5005F000  0x5005F000  0x00001000  0x00000000
kernel            0x50060000  0x00000000  0x00300000  0xFFFFFFFF
jffs2             0x50360000  0x00000000  0x01CA0000  0xFFFFFFFF
RedBoot>
  • Show free flash space
RedBoot> fis free
  0x50060000 .. 0x51FFFFFF
RedBoot>
  • Create new partition (-n -> only fis entry)
RedBoot> fis create -l 0x300000 -f 0x50060000 -n kernel
... Unlock from 0x50040000-0x50060000: .
... Erase from 0x50040000-0x50060000: .
... Program from 0x03fe0000-0x04000000 at 0x50040000: .
... Lock from 0x50040000-0x50060000: .
RedBoot>

Reinstalling old bootloader

Only binary e.g. simpadXX.rom, not Siemens bootloader update e.g. blupdater.img!!!

JTAG

Flash the Siemens bootloader or bootldr (binary) on our SIMpad over the JTAG interface

Over RedBoot

  • Load an RedBoot RAM image (redbootRAM.img in archive)
RedBoot> load -m y
C  -> download redbootRAM.img
or
RedBoot> load -m disk hda1:redbootRAM.img
or
RedBoot> load -m tftp -h 192.168.1.40 redbootRAM.img
CEntry point: 0x00020040, address range: 0x00020000-0x0004c0c8
xyzModem - CRC mode, 1667(SOH)/0(STX)/0(CAN) packets, 8 retries
RedBoot>
  • Start RedBoot RAM image -> environment [RAM]
RedBoot> go
Ethernet eth0: MAC address 00:e0:98:34:08:7f
IP: 192.168.1.55/255.255.255.0, Gateway: 192.168.1.1
Default server: 192.168.1.40, DNS server IP: 192.168.1.1

RedBoot(tm) bootstrap and debug environment [RAM]
Non-certified release, version UNKNOWN - built 19:16:20, Jul 27 2007

Platform: SIMpad (StrongARM 1110)
Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
Copyright (C) 2003, 2004, 2005, 2006 eCosCentric Limited

RAM: 0x00000000-0x04000000, [0x00058c20-0x03fd1000] available
FLASH: 0x50000000 - 0x52000000, 256 blocks of 0x00020000 bytes each.
RedBoot>
  • Load old bootloader
RedBoot> load -m y -r -b %{FREEMEMLO}
C  -> download YourBootloader.bin
or
RedBoot> load -m disk -r -b %{FREEMEMLO} hda1:YourBootloader.bin
or
RedBoot> load -m tftp -r -b %{FREEMEMLO} -h 192.168.1.40 YourBootloader.bin
  • Check bootloader
RedBoot> cksum
and
da@64onair:/stuff/nfssrv/tftp$ cksum YourBootloader.bin
  • Unlock flash (32 MB)
RedBoot> fis unlock -f 0x50000000 -l 0x2000000
  • Erase flash (32 MB)
RedBoot> fis erase -f 0x50000000 -l 0x2000000
  • Flash old bootloader, -l size of old bootloader in byte
RedBoot> fis write -b %{FREEMEMLO} -l 0xXXXXX -f 0x50000000
  • After flashing reset your SIMpad -> old bootloader should start :-)
This page was last modified 08:19, 3 August 2007. | This page has been accessed 4,699 times. | About OpenSIMpad.org
Designed by Anna Boheim | Powerd by mediawiki