From 668d3116796d5c121f058ed91b384b1bdb226aca Mon Sep 17 00:00:00 2001 From: John Crispin Date: Sat, 2 Jun 2007 23:17:43 +0000 Subject: the etrax bootloader tools source was added on initial merge, it is now sitting on the acme site, source should not be in this folder SVN-Revision: 7465 --- .../etrax-2.6/image/e100boot/src/doc/Makefile | 17 - .../etrax-2.6/image/e100boot/src/doc/e100boot.1 | 401 --------------------- .../etrax-2.6/image/e100boot/src/doc/e100boot.html | 395 -------------------- .../etrax-2.6/image/e100boot/src/doc/e100boot.pod | 314 ---------------- .../etrax-2.6/image/e100boot/src/doc/pod2htmd.tmp | 2 - .../etrax-2.6/image/e100boot/src/doc/pod2htmi.tmp | 2 - 6 files changed, 1131 deletions(-) delete mode 100644 target/linux/etrax-2.6/image/e100boot/src/doc/Makefile delete mode 100644 target/linux/etrax-2.6/image/e100boot/src/doc/e100boot.1 delete mode 100644 target/linux/etrax-2.6/image/e100boot/src/doc/e100boot.html delete mode 100644 target/linux/etrax-2.6/image/e100boot/src/doc/e100boot.pod delete mode 100644 target/linux/etrax-2.6/image/e100boot/src/doc/pod2htmd.tmp delete mode 100644 target/linux/etrax-2.6/image/e100boot/src/doc/pod2htmi.tmp (limited to 'target/linux/etrax-2.6/image/e100boot/src/doc') diff --git a/target/linux/etrax-2.6/image/e100boot/src/doc/Makefile b/target/linux/etrax-2.6/image/e100boot/src/doc/Makefile deleted file mode 100644 index df6076b8e2..0000000000 --- a/target/linux/etrax-2.6/image/e100boot/src/doc/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -OBJS=e100boot.1 e100boot.html - -all: $(OBJS) - -%.1: %.pod - pod2man $< > $@ - -%.html: %.pod - pod2html $< > $@ - @rm -f pod2htmd.x~~ pod2htmi.x~~ - -clean: - rm -f *cache *~ - -# The 'clean' doesn't remove the generated documentation as we want -# them in the distribution. - diff --git a/target/linux/etrax-2.6/image/e100boot/src/doc/e100boot.1 b/target/linux/etrax-2.6/image/e100boot/src/doc/e100boot.1 deleted file mode 100644 index 116b9e577f..0000000000 --- a/target/linux/etrax-2.6/image/e100boot/src/doc/e100boot.1 +++ /dev/null @@ -1,401 +0,0 @@ -.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32 -.\" -.\" Standard preamble: -.\" ======================================================================== -.de Sh \" Subsection heading -.br -.if t .Sp -.ne 5 -.PP -\fB\\$1\fR -.PP -.. -.de Sp \" Vertical space (when we can't use .PP) -.if t .sp .5v -.if n .sp -.. -.de Vb \" Begin verbatim text -.ft CW -.nf -.ne \\$1 -.. -.de Ve \" End verbatim text -.ft R -.fi -.. -.\" Set up some character translations and predefined strings. \*(-- will -.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left -.\" double quote, and \*(R" will give a right double quote. \*(C+ will -.\" give a nicer C++. Capital omega is used to do unbreakable dashes and -.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, -.\" nothing in troff, for use with C<>. -.tr \(*W- -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -'br\} -.\" -.\" If the F register is turned on, we'll generate index entries on stderr for -.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index -.\" entries marked with X<> in POD. Of course, you'll have to process the -.\" output yourself in some meaningful fashion. -.if \nF \{\ -. de IX -. tm Index:\\$1\t\\n%\t"\\$2" -.. -. nr % 0 -. rr F -.\} -.\" -.\" For nroff, turn off justification. Always turn off hyphenation; it makes -.\" way too many mistakes in technical documents. -.hy 0 -.if n .na -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "E100BOOT 1" -.TH E100BOOT 1 "2003-12-16" "perl v5.8.8" "User Contributed Perl Documentation" -.SH "NAME" -e100boot \- Network and serial port bootloader for the ETRAX100 CPU. -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -\&\fBe100boot\fR [\fB\-\-device\fR \fIdevicename\fR] -[\fB\-\-file\fR \fIfilename\fR|\- \fIaddr\fR [\fIsize\fR]] -[\fB\-\-flash\fR \fIram-source\fR \fIflash-offset\fR \fIsize\fR] [\fB\-\-pause\fR \fIiter\fR] -[\fB\-\-memtest\fR \fIaddr\fR \fIaddr\fR] [\fB\-\-memclear\fR \fIaddr\fR \fIaddr\fR] -[\fB\-\-memdump\fR \fIaddr\fR \fIaddr\fR] [\fB\-\-setreg\fR \fIaddr\fR|\fIregname\fR \fIval\fR] -[\fB\-\-getreg\fR \fIaddr\fR|\fIregname\fR] [\fB\-\-verify\fR \fIaddr\fR \fIval\fR] -[\fB\-\-label\fR \fIlabel\fR] [\fB\-\-loop\fR \fIaddr\fR \fIlabel\fR] [\fB\-\-5400\fR] [\fB\-\-5600\fR] -[\fB\-\-testcard\fR] [\fB\-\-devboard\fR] [\fB\-\-testcardlx\fR] [\fB\-\-network\fR] [\fB\-\-serial\fR] -[\fB\-\-baudrate\fR \fIbaudrate\fR] [\fB\-\-bootfile\fR \fIfile\fR] [\fB\-\-jump\fR \fIaddr\fR] -[\fB\-\-tofiles\fR] [\fB\-\-cmdsonly\fR] [\fB\-\-images\fR] [\fB\-\-noleds\fR] [\fB\-\-help\fR] -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -This boot loader facilitates loading of files over the network or a -serial port to an \s-1ETRAX100\s0. It can also be used for fairly extensive -hardware debugging as you can read and write to any memory addresses, -including the \s-1ETRAX100\s0 registers. You can also perform memory checks -and dumps and copy data to flash memories. -.PP -The first packet (or the first 784 bytes in the case of serial boot) -sent to Etrax100 is loaded into the cache. The code in this packet is -executed and loads the rest of the boot loader into the cache. The -cache is the only thing we can be sure of exists on all \s-1ETRAX100\s0 -products, so the boot loader is limited to the size of the cache, -8KB. If further boot loading code is needed you have to set up -external memory and load another boot loader into it, but this is -rarely needed. -.PP -Two programs are involved in this boot loading, one is the program on -your workstation that sends the packets to \s-1ETRAX100\s0, this is called -the server boot loader or \s-1SBL\s0. The other program is the one in -\&\s-1ETRAX100\s0 that receives packets from the \s-1SBL\s0 and acts upon the data -therein, this is called the client boot loader or \s-1CBL\s0. -.PP -We don't want to edit and recompile the \s-1CBL\s0 each time we want to load -level two to different parts of memory, like we do on different -products. We also want to change things like the setup of external -memory before we load data into it. To make the boot loading as -flexible as possible and separate the \s-1CBL\s0 from level two we send a -configuration packet to it. After this packet we load other files, if -we want to. -.PP -The configuration packet can contain information to the \s-1CBL\s0 which lets -you: initialize external memory, read and write to all \s-1ETRAX100\s0 -registers, read and write to any part of memory, load as many other -files as you like to any part of memory you like, etc. The -configuration packet is generated on the fly by the \s-1SBL\s0. -.PP -Since the \s-1CBL\s0 is unaware of which product it will be loaded on, it -doesn't do product specific initialization like setting up the -memory. This must be done with the configuration packet. -.Sh "Debugging printout" -.IX Subsection "Debugging printout" -When doing network boot the debugging printout from the \s-1CBL\s0 in \s-1ETRAX\s0 -is transmitted back over the network and printed by e100boot. When -doing serial boot that interface will be used. So in either case you -will not need any other software or hardware to receive the debugging -printout. -.Sh "Creating binaries" -.IX Subsection "Creating binaries" -The files containing code to be loaded on the \s-1ETRAX100\s0 must be -stripped using the standard \s-1GCC\s0 binutils. -.Sh "How it works, things you don't want to know." -.IX Subsection "How it works, things you don't want to know." -ack, timeout bla, bla... \s-1RTFS\s0. -.Sh "Compilation and code" -.IX Subsection "Compilation and code" -Noteworthy is that two separate \s-1ETRAX100\s0 binaries are created, one for -network boot and one for serial boot. They actually contain exactly -the same code, but linked in different order. This is because the code -to load the rest of the bootloader over a specific interface must be -contained in the first data sent to the \s-1ETRAX100\s0 and it is too -difficult to cram the code for both interfaces in the beginning of the -same binary. Hence two files. -.PP -Other stuff you don't want to know is that the cache is mapped from -0x380000f0 to 0x380020f0. Code starts at the first address followed by -data up to the symbol \fIEbss\fR. At the other end is the buffer for boot -commands (addresses defined by \fI\s-1IO_BUF_START\s0\fR and \fI\s-1IO_BUF_END\s0\fR below -which the stack lies and hopefully the stack and \fIEbss\fR will never -meet... -.PP -The serial data is loaded from 0x380000f0 to 0x380003ff before -execution starts. -.SH "OPTIONS" -.IX Header "OPTIONS" -The options are done in the order specified on the command line, so -you probably want to do any memory setup before loading a file to the -memory, and you probably do not want to perform a memory test after -you have loaded a file to that memory. -.PP -All addresses and sizes must be in hex with optional '0x' prefix, or a -\&\s-1ETRAX100\s0 register name. Since the \fB\-\-setreg\fR and \fB\-\-getreg\fR options -only can be performed on dword aligned dwords only the registers that -conform to this can be named. -.PP -Note also that all addresses must be in uncached memory (bit 31 set), -as the bootloader lies in the cache. If you access any uncached -address during boot, the bootloader will be destroyed without warning. -.PP -It is also possible to specify an address as \fI+address\fR, in which -case it is considered to be relative to \fI\s-1IO_BUF_START\s0\fR. This is -especially useful in combination with the \fB\-\-loop\fR option below. -.IP "\fB\-\-baudrate\fR \fIbaudrate\fR" 4 -.IX Item "--baudrate baudrate" -Set baudrate for files loaded after the boot loader. -.IP "\fB\-\-bootfile\fR \fIfilename\fR" 4 -.IX Item "--bootfile filename" -Which boot image to send to \s-1ETRAX\s0 instead of the default ones. -.IP "\fB\-\-cmdsonly\fR" 4 -.IX Item "--cmdsonly" -Write the commands to file e100boot.cmds. -.IP "\fB\-\-devboard\fR" 4 -.IX Item "--devboard" -Sets registers for the developer board. -.IP "\fB\-\-device\fR \fIdevicename\fR" 4 -.IX Item "--device devicename" -Which device to send packets on. For network boot the default is -eth0. For serial boot it is ttyS0. -.IP "\fB\-\-file\fR \fIfilename\fR|\- \fIaddress\fR [\fIsize\fR]" 4 -.IX Item "--file filename|- address [size]" -The file to load and the address to load it to. If file is loaded on -stdin, specify filename '\-' followed by a size. Size need only be -given in this case. You can load as many files as you want, each -specified with a \fB\-\-file\fR. -.IP "\fB\-\-flash\fR \fIram-source flash-offset size\fR" 4 -.IX Item "--flash ram-source flash-offset size" -Copies the specified \s-1RAM\s0 area to the flash. -.IP "\fB\-\-getreg\fR \fIaddress\fR|\fIregname\fR" 4 -.IX Item "--getreg address|regname" -Print value of memory location. Must be uncached address. -.IP "\fB\-\-help\fR" 4 -.IX Item "--help" -Print the help information. -.IP "\fB\-\-images\fR" 4 -.IX Item "--images" -Print information about the internal boot images, then exit. -.IP "\fB\-\-jump\fR \fIaddress\fR" 4 -.IX Item "--jump address" -Jump to specified address. -.IP "\fB\-\-label\fR \fIlabel\fR" 4 -.IX Item "--label label" -Define a label to be used as target by the \fB\-\-loop\fR command. This -command is only used by the \s-1SBL\s0 to calculate the address for the -\&\fB\-\-loop\fR and does not take up any space in the configuration packet. -.IP "\fB\-\-loop\fR \fIcheck-address label\fR" 4 -.IX Item "--loop check-address label" -If the contents of check-address is nonzero it is decremented and the -command parser continues parsing at the label. -.Sp -If no external memory is initialized yet it can be convenient to use -an address in the area occupied by the configuration packet. Run -e100boot with \fB\-\-help\fR to see which addresses the commands are stored -at. The size of the commands are four bytes for each command plus four -bytes per argument to the command. -.IP "\fB\-\-memclear\fR \fIstart-address end-address\fR" 4 -.IX Item "--memclear start-address end-address" -Clears the specified memory area. -.IP "\fB\-\-memdump\fR \fIstart-address end-address\fR" 4 -.IX Item "--memdump start-address end-address" -Prints the contents of the specified memory area. -.IP "\fB\-\-memtest\fR \fIstart-address end-address\fR" 4 -.IX Item "--memtest start-address end-address" -Does a fairly extensive test of the specified memory area. Not only -catches defect memories but also catches things like wrong memory -setups where memory addresses are mirrored onto each other. -.IP "\fB\-\-network\fR" 4 -.IX Item "--network" -Perform a network boot. -.IP "\fB\-\-noleds\fR" 4 -.IX Item "--noleds" -When using the internal images use a version that does not toggle -general port \s-1PA\s0 or \s-1PB\s0 in \s-1ETRAX\s0 during the boot procedure. -.IP "\fB\-\-pause\fR \fIiterations\fR" 4 -.IX Item "--pause iterations" -How many \fIiterations\fR to do of an empty loop. -.IP "\fB\-\-serial\fR" 4 -.IX Item "--serial" -Do a serial boot. -.IP "\fB\-\-setreg\fR \fIaddress\fR|\fIregname\fR \fIvalue\fR" 4 -.IX Item "--setreg address|regname value" -Load dword to dword aligned memory location. -.IP "\fB\-\-testcard\fR" 4 -.IX Item "--testcard" -Configures the memories for the \s-1ETRAX\s0 100 testcard. -.IP "\fB\-\-testcardlx\fR" 4 -.IX Item "--testcardlx" -Configures the memories for the \s-1ETRAX100\s0 \s-1LX\s0 testcard. -.IP "\fB\-\-tofiles\fR" 4 -.IX Item "--tofiles" -Write packets to files e100boot.seq[0..]. Does not transmit the data. -.IP "\fB\-\-verify\fR \fIaddress value\fR" 4 -.IX Item "--verify address value" -Verify that memory contains dword. If not loader will stop. This is to -avoid booting the wrong unit. If you have the units ethernet address -in the flash memory you can check for that. -.IP "\fB\-\-5400\fR" 4 -.IX Item "--5400" -Sets R_WAITSTATES, R_DRAM_TIMING and R_DRAM_CONFIG for the 5400 -printserver. -.IP "\fB\-\-5600\fR" 4 -.IX Item "--5600" -Sets R_WAITSTATES, R_DRAM_TIMING and R_DRAM_CONFIG for the 5600 -printserver. -.SH "EXAMPLES" -.IX Header "EXAMPLES" -If you have a stripped binary (file.ima) linked to 0x08000000 that you want -to boot via the network, do this: -.PP -\&\fBe100boot \-\-file file.ima 88000000 \-\-jump 08000000\fR -.PP -Or something like this. Sets waitstates to zero and loads two files, -the first from stdin: -.PP -\&\fBcat file.ima | e100boot \-\-memtest 88000000 8801ffff \-\-memclear -88000000 8801ffff \-\-setreg b0000000 0 \-\-getreg b0000000 \-\-file \- -88000000 a000 \-\-file file2.ima 88010000 \-\-memdump 88000000 880000ff -\&\-\-jump 08000000\fR -.PP -Or this, enables 16 bit parallel port and flashes the led on \s-1PA0:\s0 -.PP -\&\fBe100boot \-\-testcardlx \-\-setreg R_PORT_PA_SET 0x00000000 \-\-setreg -R_GEN_CONFIG 0x80000004 \-\-setreg R_PAR0_CONFIG 0x00000200 \-\-setreg -R_PORT_G_DATA 0x00000000 \-\-pause 0x02000000 \-\-setreg R_PORT_G_DATA -0xffffffff \-\-pause 0x02000000 \-\-setreg R_PORT_G_DATA 0x00000000 \-\-loop -0x38001e0b 0x38001e60\fR -.PP -Setup the memory, test the \s-1SRAM\s0, print the contents of the first 256 -bytes of \s-1SRAM\s0, clear \s-1SRAM\s0, test the \s-1DRAM\s0, print R_DMA_CH0_CMD, load a -file to \s-1SRAM\s0, load another file to \s-1SRAM\s0, load file to \s-1DRAM\s0, jump to -code in \s-1SRAM\s0. -.PP -\&\fBe100boot \-\-setreg b0000000 1000 \-\-setreg b0000008 00006543 \-\-setreg -b000000c 12966060 \-\-memtest 88000000 80000 \-\-memdump 88000000 880000ff -\&\-\-memclear 88000000 80000 \-\-memtest c0000000 400000 \-\-getreg b00001d0 -\&\-\-file file1.ima 88000000 \-\-file file2.ima 88010000 \-\-file file3.ima -c0000000 \-\-jump 88000000\fR -.PP -Boot Linux on the testcard. -.PP -\&\fBe100boot \-\-setreg b0000000 1000 \-\-setreg b0000008 6557 \-\-setreg -b000000c 1b988080 \-\-file timage c0000500 \-\-jump 40000500\fR -.PP -Booting over serial port and using labels to flash the leds on port -\&\s-1PA\s0. -.PP -\&\fBe100boot \-\-serial \-\-device /dev/ttyS1 \-\-baudrate 9600 \-\-label first -\&\-\-setreg 0x380020e0 00000001 \-\-setreg R_PORT_PA_SET 0x0000ff00 \-\-pause -0x02000000 \-\-setreg R_PORT_PA_SET 0x0000ffff \-\-pause 0x02000000 \-\-loop -0x380020e0 first\fR -.SH "BUGS" -.IX Header "BUGS" -You're kidding, right? Check \s-1AUTHOR\s0 below. The only thing -would be the hubris of the author, but that I consider a feature. If -you find any other 'features' report them to -technology@axis.com. Don't bother the author directly, he is busy -playing PlayStation2. -.SH "COPYING" -.IX Header "COPYING" -Copyright © 1996\-2002 Axis Communications \s-1AB\s0. -.SH "AUTHOR" -.IX Header "AUTHOR" -Written by Ronny Ranerup. -.SH "SEE ALSO" -.IX Header "SEE ALSO" -The fine source, which you can get at http://developer.axis.com. diff --git a/target/linux/etrax-2.6/image/e100boot/src/doc/e100boot.html b/target/linux/etrax-2.6/image/e100boot/src/doc/e100boot.html deleted file mode 100644 index 15e23966d0..0000000000 --- a/target/linux/etrax-2.6/image/e100boot/src/doc/e100boot.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - -e100boot - Network and serial port bootloader for the ETRAX100 CPU. - - - - - - -

- - - - - -
-

-

-

NAME

-

e100boot - Network and serial port bootloader for the ETRAX100 CPU.

-

-

-
-

SYNOPSIS

-

e100boot [--device devicename] -[--file filename|- addr [size]] -[--flash ram-source flash-offset size] [--pause iter] -[--memtest addr addr] [--memclear addr addr] -[--memdump addr addr] [--setreg addr|regname val] -[--getreg addr|regname] [--verify addr val] -[--label label] [--loop addr label] [--5400] [--5600] -[--testcard] [--devboard] [--testcardlx] [--network] [--serial] -[--baudrate baudrate] [--bootfile file] [--jump addr] -[--tofiles] [--cmdsonly] [--images] [--noleds] [--help]

-

-

-
-

DESCRIPTION

-

This boot loader facilitates loading of files over the network or a -serial port to an ETRAX100. It can also be used for fairly extensive -hardware debugging as you can read and write to any memory addresses, -including the ETRAX100 registers. You can also perform memory checks -and dumps and copy data to flash memories.

-

The first packet (or the first 784 bytes in the case of serial boot) -sent to Etrax100 is loaded into the cache. The code in this packet is -executed and loads the rest of the boot loader into the cache. The -cache is the only thing we can be sure of exists on all ETRAX100 -products, so the boot loader is limited to the size of the cache, -8KB. If further boot loading code is needed you have to set up -external memory and load another boot loader into it, but this is -rarely needed.

-

Two programs are involved in this boot loading, one is the program on -your workstation that sends the packets to ETRAX100, this is called -the server boot loader or SBL. The other program is the one in -ETRAX100 that receives packets from the SBL and acts upon the data -therein, this is called the client boot loader or CBL.

-

We don't want to edit and recompile the CBL each time we want to load -level two to different parts of memory, like we do on different -products. We also want to change things like the setup of external -memory before we load data into it. To make the boot loading as -flexible as possible and separate the CBL from level two we send a -configuration packet to it. After this packet we load other files, if -we want to.

-

The configuration packet can contain information to the CBL which lets -you: initialize external memory, read and write to all ETRAX100 -registers, read and write to any part of memory, load as many other -files as you like to any part of memory you like, etc. The -configuration packet is generated on the fly by the SBL.

-

Since the CBL is unaware of which product it will be loaded on, it -doesn't do product specific initialization like setting up the -memory. This must be done with the configuration packet.

-

-

-

Debugging printout

-

When doing network boot the debugging printout from the CBL in ETRAX -is transmitted back over the network and printed by e100boot. When -doing serial boot that interface will be used. So in either case you -will not need any other software or hardware to receive the debugging -printout.

-

-

-

Creating binaries

-

The files containing code to be loaded on the ETRAX100 must be -stripped using the standard GCC binutils.

-

-

-

How it works, things you don't want to know.

-

ack, timeout bla, bla... RTFS.

-

-

-

Compilation and code

-

Noteworthy is that two separate ETRAX100 binaries are created, one for -network boot and one for serial boot. They actually contain exactly -the same code, but linked in different order. This is because the code -to load the rest of the bootloader over a specific interface must be -contained in the first data sent to the ETRAX100 and it is too -difficult to cram the code for both interfaces in the beginning of the -same binary. Hence two files.

-

Other stuff you don't want to know is that the cache is mapped from -0x380000f0 to 0x380020f0. Code starts at the first address followed by -data up to the symbol Ebss. At the other end is the buffer for boot -commands (addresses defined by IO_BUF_START and IO_BUF_END below -which the stack lies and hopefully the stack and Ebss will never -meet...

-

The serial data is loaded from 0x380000f0 to 0x380003ff before -execution starts.

-

-

-
-

OPTIONS

-

The options are done in the order specified on the command line, so -you probably want to do any memory setup before loading a file to the -memory, and you probably do not want to perform a memory test after -you have loaded a file to that memory.

-

All addresses and sizes must be in hex with optional '0x' prefix, or a -ETRAX100 register name. Since the --setreg and --getreg options -only can be performed on dword aligned dwords only the registers that -conform to this can be named.

-

Note also that all addresses must be in uncached memory (bit 31 set), -as the bootloader lies in the cache. If you access any uncached -address during boot, the bootloader will be destroyed without warning.

-

It is also possible to specify an address as +address, in which -case it is considered to be relative to IO_BUF_START. This is -especially useful in combination with the --loop option below.

-
-
--baudrate baudrate - -
-

Set baudrate for files loaded after the boot loader.

-
- -
--bootfile filename - -
-

Which boot image to send to ETRAX instead of the default ones.

-
- -
--cmdsonly - -
-

Write the commands to file e100boot.cmds.

-
- -
--devboard - -
-

Sets registers for the developer board.

-
- -
--device devicename - -
-

Which device to send packets on. For network boot the default is -eth0. For serial boot it is ttyS0.

-
- -
--file filename|- address [size] - -
-

The file to load and the address to load it to. If file is loaded on -stdin, specify filename '-' followed by a size. Size need only be -given in this case. You can load as many files as you want, each -specified with a --file.

-
- -
--flash ram-source flash-offset size - -
-

Copies the specified RAM area to the flash.

-
- -
--getreg address|regname - -
-

Print value of memory location. Must be uncached address.

-
- -
--help - -
-

Print the help information.

-
- -
--images - -
-

Print information about the internal boot images, then exit.

-
- -
--jump address - -
-

Jump to specified address.

-
- -
--label label - -
-

Define a label to be used as target by the --loop command. This -command is only used by the SBL to calculate the address for the ---loop and does not take up any space in the configuration packet.

-
- -
--loop check-address label - -
-

If the contents of check-address is nonzero it is decremented and the -command parser continues parsing at the label.

-
-
-

If no external memory is initialized yet it can be convenient to use -an address in the area occupied by the configuration packet. Run -e100boot with --help to see which addresses the commands are stored -at. The size of the commands are four bytes for each command plus four -bytes per argument to the command.

-
- -
--memclear start-address end-address - -
-

Clears the specified memory area.

-
- -
--memdump start-address end-address - -
-

Prints the contents of the specified memory area.

-
- -
--memtest start-address end-address - -
-

Does a fairly extensive test of the specified memory area. Not only -catches defect memories but also catches things like wrong memory -setups where memory addresses are mirrored onto each other.

-
- -
--network - -
-

Perform a network boot.

-
- -
--noleds - -
-

When using the internal images use a version that does not toggle -general port PA or PB in ETRAX during the boot procedure.

-
- -
--pause iterations - -
-

How many iterations to do of an empty loop.

-
- -
--serial - -
-

Do a serial boot.

-
- -
--setreg address|regname value - -
-

Load dword to dword aligned memory location.

-
- -
--testcard - -
-

Configures the memories for the ETRAX 100 testcard.

-
- -
--testcardlx - -
-

Configures the memories for the ETRAX100 LX testcard.

-
- -
--tofiles - -
-

Write packets to files e100boot.seq[0..]. Does not transmit the data.

-
- -
--verify address value - -
-

Verify that memory contains dword. If not loader will stop. This is to -avoid booting the wrong unit. If you have the units ethernet address -in the flash memory you can check for that.

-
- -
--5400 - -
-

Sets R_WAITSTATES, R_DRAM_TIMING and R_DRAM_CONFIG for the 5400 -printserver.

-
- -
--5600 - -
-

Sets R_WAITSTATES, R_DRAM_TIMING and R_DRAM_CONFIG for the 5600 -printserver.

-
- -
-

-

-
-

EXAMPLES

-

If you have a stripped binary (file.ima) linked to 0x08000000 that you want -to boot via the network, do this:

-

e100boot --file file.ima 88000000 --jump 08000000

-

Or something like this. Sets waitstates to zero and loads two files, -the first from stdin:

-

cat file.ima | e100boot --memtest 88000000 8801ffff --memclear -88000000 8801ffff --setreg b0000000 0 --getreg b0000000 --file - -88000000 a000 --file file2.ima 88010000 --memdump 88000000 880000ff ---jump 08000000

-

Or this, enables 16 bit parallel port and flashes the led on PA0:

-

e100boot --testcardlx --setreg R_PORT_PA_SET 0x00000000 --setreg -R_GEN_CONFIG 0x80000004 --setreg R_PAR0_CONFIG 0x00000200 --setreg -R_PORT_G_DATA 0x00000000 --pause 0x02000000 --setreg R_PORT_G_DATA -0xffffffff --pause 0x02000000 --setreg R_PORT_G_DATA 0x00000000 --loop -0x38001e0b 0x38001e60

-

Setup the memory, test the SRAM, print the contents of the first 256 -bytes of SRAM, clear SRAM, test the DRAM, print R_DMA_CH0_CMD, load a -file to SRAM, load another file to SRAM, load file to DRAM, jump to -code in SRAM.

-

e100boot --setreg b0000000 1000 --setreg b0000008 00006543 --setreg -b000000c 12966060 --memtest 88000000 80000 --memdump 88000000 880000ff ---memclear 88000000 80000 --memtest c0000000 400000 --getreg b00001d0 ---file file1.ima 88000000 --file file2.ima 88010000 --file file3.ima -c0000000 --jump 88000000

-

Boot Linux on the testcard.

-

e100boot --setreg b0000000 1000 --setreg b0000008 6557 --setreg -b000000c 1b988080 --file timage c0000500 --jump 40000500

-

Booting over serial port and using labels to flash the leds on port -PA.

-

e100boot --serial --device /dev/ttyS1 --baudrate 9600 --label first ---setreg 0x380020e0 00000001 --setreg R_PORT_PA_SET 0x0000ff00 --pause -0x02000000 --setreg R_PORT_PA_SET 0x0000ffff --pause 0x02000000 --loop -0x380020e0 first

-

-

-
-

BUGS

-

You're kidding, right? Check AUTHOR below. The only thing -would be the hubris of the author, but that I consider a feature. If -you find any other 'features' report them to -technology@axis.com. Don't bother the author directly, he is busy -playing PlayStation2.

-

-

-
-

COPYING

-

Copyright © 1996-2002 Axis Communications AB.

-

-

-
-

AUTHOR

-

Written by Ronny Ranerup.

-

-

-
-

SEE ALSO

-

The fine source, which you can get at http://developer.axis.com.

- - - - diff --git a/target/linux/etrax-2.6/image/e100boot/src/doc/e100boot.pod b/target/linux/etrax-2.6/image/e100boot/src/doc/e100boot.pod deleted file mode 100644 index 8ff514c6b7..0000000000 --- a/target/linux/etrax-2.6/image/e100boot/src/doc/e100boot.pod +++ /dev/null @@ -1,314 +0,0 @@ -=head1 NAME - -e100boot - Network and serial port bootloader for the ETRAX100 CPU. - -=head1 SYNOPSIS - -B [B<--device> I] -[B<--file> I|- I [I]] -[B<--flash> I I I] [B<--pause> I] -[B<--memtest> I I] [B<--memclear> I I] -[B<--memdump> I I] [B<--setreg> I|I I] -[B<--getreg> I|I] [B<--verify> I I] -[B<--label> I