Merge branch 'upstream-fixes'
[mw/micromonitor-lm32.git] / umon_ports / bf537 / README
1
2 uMon Port Blackfin-537 based boards:
3
4 The phyCORE-BF537 board port was contributed by Jan Rorgard Hansen
5 Search through this code for PLATFORM_PCORE537 for those modifications.
6
7 This directory, plus the code under umon_main/target/cpu/bfin, is a port
8 of uMon for the BlackFin-537 CPU.
9
10 There are a few Blackfin-specific commands in this monitor.  Specifically
11 "bfin" and "watch" (if enabled).  The "bfin" command has a few subcommands
12 that access blackfin specific operations.  Refer to the file 
13 umon_main/target/cpu/bfin/bfincmds.c for more info on this.
14
15 #######
16
17 NOTE regarding TFS's loader and the Blackfin's internal SRAM...
18 The blackfin has on-board SRAM some of which is accessible as data
19 and some as instruction space.  There are cases where the application
20 may want to use this space to load text or data into.  The problem is
21 that the instruction space can only be accessed by fetching or DMA;
22 hence, if an elf file has a text section mapped to this L1 instruction
23 space, TFS must be able to use DMA to transfer to that area.  This is
24 supported; however, in the case of decompression, the section is first
25 decompressed to some "normal" ram space, then DMA-transferred into the
26 L1 instruction space.  This means that the TFS loader needs a pointer
27 to some area in ram to use for this temporary decompression area.
28 Set the shell variable TFSLD_UNZIPTO to some location that is safe
29 for use.  A "safe" location depends on the map of your application;
30 however, it is probably a good chance you can just use 0x200000
31 (or something around there) for this.
32
33 #######
34
35 In addition to the basic port of uMon to the BF537, this port also
36 has code that can be used to pump the eval board when configured
37 (via the on-board rotary switch) to boot in mode 7 (UART mode).
38 This mode allows the board to be booted even if the bootflash is 
39 corrupted.  It only requires a terminal emulator to connect to the
40 serial port of the STAMP, and then it must transfer the mode7.bin
41 file to the board.  
42
43
44 #############################################################
45 #
46 # To boot RAM-based uMon from u-boot on the STAMP:
47 #
48 1. Run 'make rebuild' to build uMon from scratch.
49 2. Put build_BF537/ramtst.elf under your /tftpboot directory.
50 3. Turn on the STAMP, and stop the autoboot.
51 4. Set up your IP environment for u-boot:
52    (obviously you will use your own IP addresses)
53       bf537>setenv ipaddr 135.222.140.70
54       bf537>setenv serverip 135.222.140.159
55       bf537>setenv gatewayip 135.222.140.1
56       bf537>setenv netmask 255.255.254.0 
57    (note that the serverip IP address should be that of the TFTP server
58     under which you placed the ramtst.elf file).
59 5. Tell u-boot to pull down the elf file: 
60       bf537>tftpboot 0x1100000 ramtst.elf
61 6. Tell u-boot to execute the elf file:
62       bf537>bootelf 0x1100000 
63
64 7. At this point, uMon should come up on STAMP.  It has TFS
65    configured to use the majority of the flash space, so depending on what
66    is in flash at the TFS mapped space, it may spit out a TFS corruption
67    error.  This is because the area that TFS thinks it owns has unknown
68    data in it (expected).  If you don't plan to permanently install uMon
69    on the board, you'll just have to ignore this error.  If you do plan
70    to install uMon, then you can run "tfs init" to clean up the flash to
71    be used by TFS.
72
73 8. If you want to permanently install uMon, then run the following 
74    commands at the uMON> prompt (once again, use your own IP values):
75       uMON>set IPADD 135.222.140.70
76       uMON>set GIPADD 135.222.140.1
77       uMON>set NETMASK 255.255.254.0
78       uMON>ether on
79
80    Then, on your host, run (see note below prior to doing this):
81    
82       make TARGET_IP=135.222.140.70 newmon
83
84    This will transfer the image to the target using uMon's TFTP
85    server and remote command server.  After about 30 seconds, if 
86    the board doesn't reset automatically, you can reset it and
87    uMon should start up.
88
89    NOTE: You may want to first pull up the content of the flash to
90    your host so that you can later re-install the original image.
91    To do that, run the following command (using uMon's host-resident
92    ttftp command):
93
94    ttftp IP_ADDRESS_OF_TARGET get 0x20000000,0x400000 stamp_flash_image.bin
95
96    This will pull up the 4M of data stored in flash and place it in 
97    the file stamp_flash_image.bin on your host.
98
99 #############################################################
100 #
101 # To boot using mode-7:
102 # This assumes you have uCon as the terminal emulator; however with
103 # minor adjustment, any terminal emulator can be used.
104 # The uCon tool is available at the same site as uMon...
105 #   http://www.microcross.com/html/micromonitor.html
106 #
107 1. Power down the STAMP.
108 2. Change the rotary switch to position '7'.
109 3. Connect uCon to the serial port (57600 8N1, no null modem needed).
110 4. Run 'make mode7' to create the mode7.elf and mode7.bin files.
111    Then note the size of the mode7.bin file, modify mode7.S to be that
112    size, then run 'make mode7' again.  
113 5. Edit config.h and set INCLUDE_TFS to 0, then run 'make rebuild' to
114    build uMon from scratch.
115 6. In uCon: go to menu item Config->Miscellaneous and check the 'All'
116    box within the group labelled "ASCII-coded hex conversion of incoming
117    characters".
118 6. Power up the STAMP.
119 7. Type the character '@', and you should see the response: bf360000
120    This is 4 bytes of ASCII-coded data indicating that the BF537 has
121    received the '@', and successfully ran autobaud.
122 8. In uCon: go to menu item Transfer->File and download the mode7.bin
123    file.  Once this completes (should only take a few seconds), a few
124    LEDs on the STAMP should be blinking.  
125 9. Now type the character 'x' to tell this VERY basic loader to start
126    up an xmodem receiver.  You should see 15151515 (the xmodem NAK character
127    in ASCII-coded hex) repetitively.  
128 10.In uCon: go to menu item Transfer->Xmodem and download the file ramtst.bin.
129    This will take a bit longer because its a much larger file.
130    Note that during this transfer the LEDs will not be blinking; however,
131    upon completion of the transfer they should start blinking again.
132 11.With this transfer completed (and the LEDs blinking again), turn off
133    uCon's binary-to-ASCII-coded-hex converter then type 'g' to transition
134    to the downloaded version of uMon.  When this version of uMon starts up
135    it may complain about TFS header/data errors.  This is to be expected if
136    the flash contains something that TFS is not familiar with.  If you want
137    to fully install uMon into your flash, then you can run "tfs init" to
138    clean up the flash space.
139
140 Or, after step 6 above, you can use this script with uCon to do it all
141 automatically (the pathnames for the files would have to change).  Prior
142 to running this script, you may need to set the DBC (delay-between-characters)
143 value in uCon just to slow down the data transfer.  This setting is found under
144 the Config->Miscellaneous menu item in uCon.
145
146         SEND -cn @
147         SLEEP 1000
148         ECHO "Fsend..."
149         FSEND -d build_BF537/mode7.bin
150         ECHO "Fsend done"
151         SLEEP 1000
152         SEND -cn x
153         SLEEP 1000
154         ECHO "XMODEM..."
155         XMODEM send build_BF537/ramtst.bin
156         ECHO "XMODEM done"
157         SLEEP 1000
158         SEND -cn g
159
160 Now uMon is running in RAM on the board with TFS disabled.
161 If you wanna permanently burn uMon into your flash, then edit config.h
162 and set INCLUDE_TFS to 1, then refer to step #8 of the previous section
163 (To boot RAM-based uMon from u-boot on the STAMP:).  If you have any
164 questions on this, join the MicroMonitor email list and post a question.
165 Instructions for joining the list are available at...
166
167    http://www.microcross.com/html/micromonitor.html
168
169 #############################################################
170 #
171 # Original MAC addresses that were on my boards:
172 # (for use by esutter only)
173 MAC of EZ-Lite: 00:e0:22:fe:4c:c9
174 MAC of STAMP:   00:e0:22:fe:4a:68