TMS320C6x COFF Assembler         Version 4.10 Beta (May  4 2001)     Tue May 29 13:49:06 2001
Copyright (c) 1996-2001 Texas Instruments Incorporated
Flash bootup utility for 6211 dsk                                    PAGE    1

       2                            .option D,T
       5                         
       6                    
       7          00000080  PAGE_SIZE         .equ    0x80      ;flash page size in byte
       8          00000800  BOOT_SIZE     .equ    0x800       ;bootup code size in byte
       9          90000000  FLASH_START   .equ    0x90000000  ;flash start address
      10          00000000  BOOT_START    .equ    0x00000000  ;L2 sram start address
      11                    
      12          0000F800  CODE_SIZE     .equ    0xF800      ;application code size in byte
      13          00000800  CODE_START    .equ    0x800       ;application code start address
      14                    
      15          90005555  FLASH_REG1    .equ    0x90005555  ;address of the flash control reg 1
      16          90002AAA  FLASH_REG2    .equ    0x90002AAA  ;address of the flash control reg 2
      17          000000AA  FLASH_KEY1    .equ    0xAA
      18          00000055  FLASH_KEY2    .equ    0x55
      19          000000A0  FLASH_KEY3    .equ    0xA0
      20          90080000  IO_PORT       .equ    0x90080000  ;address of I/O port, only top byte has valid data 
      21          01800000  EMIF_GCR          .equ    0x01800000  ;EMIF global control     
      22          01800004  EMIF_CE1      .equ    0x01800004  ;address of EMIF CE1 control reg. 
      23          01800008  EMIF_CE0      .equ    0x01800008  ;EMIF CE0control          
      24          01800018  EMIF_SDCTRL   .equ    0x01800018  ;EMIF SDRAM control     
      25          0180001C  EMIF_SDRP     .equ    0x0180001c  ;EMIF SDRM refresh period 
      26          FFFFFF03  EMIF_CE1_8    .equ    0xffffff03  ;
      27          FFFFFF23  EMIF_CE1_32   .equ    0xffffff23  ;
      28          FFFFFF33  EMIF_CE0_V    .equ    0xffffff33  ;EMIF CE0control   ;0x30
      29          07117000  EMIF_SDCTRL_V .equ    0x07117000  ;EMIF SDRAM control ;0x73380000    
      30                    
      31                    
      32                    
      33 00000000            .sect ".boot_load" 
      34                     .global _boot
      35                     .global _flash_prog
      36                     .global _wait
      37                    
      38                     .ref _c_int00
      39                     
      40 00000000           _boot:
      41 00000000 02000029              mvkl  EMIF_GCR,A4    ;EMIF_GCR address ->A4
      42 00000004 0219802A        ||    mvkl  0x3300,B4      
      43                    
      44 00000008 0200C069              mvkh  EMIF_GCR,A4
      45 0000000c 0200006A        ||    mvkh  0x3300,B4  
      46                                                
      47 00000010 02100276              stw   B4,*A4                
      48                    
      49 00000014 02000429              mvkl  EMIF_CE0,A4       ;EMIF_CE0 address ->A4
      50 00000018 027F99AA        ||    mvkl  EMIF_CE0_V,B4     ;
      51                    
      52 00000020 0200C069              mvkh  EMIF_CE0,A4
      53 00000024 027FFFEA        ||    mvkh  EMIF_CE0_V,B4
      54                          
      55 00000028 02100277              stw   B4,*A4                
      56 0000002c 02000C29        ||    mvkl  EMIF_SDCTRL,A4    ;EMIF_SDCTRL address ->A4
      57 00000030 0238002A        ||    mvkl  EMIF_SDCTRL_V,B4     ;
      58                    
      59 00000034 0200C069              mvkh  EMIF_SDCTRL,A4
      60 00000038 020388EA        ||    mvkh  EMIF_SDCTRL_V,B4     
      61                          
      62 00000040 02100277              stw   B4,*A4                
      63 00000044 02000E29        ||    mvkl  EMIF_SDRP,A4      ;EMIF_SDRP address ->A4
      64 00000048 02030D2A        ||    mvkl  0x61a,B4    ;
      65                    
      66 0000004c 0200C069              mvkh  EMIF_SDRP,A4
      67 00000050 0200006A        ||    mvkh  0x61a,B4
      68                                
      69 00000054 02100276              stw   B4,*A4
      70                     
      71                    
      72                    
      73 00000058 02020029              mvkl  BOOT_START+1024,A4 ;ram start address ->A4
      74 0000005c 0202002A        ||    mvkl  FLASH_START+1024,B4 ;flash start address ->B4
      75                    
      76 00000060 02000069              mvkh  BOOT_START+1024,A4
      77 00000064 0248006A        ||    mvkh  FLASH_START+1024,B4   
      78                           
      79                    
      80 00000068 008008C0              zero  A1
      81 0000006c           _boot_loop1:
      82 0000006c 029036A6              ldb   *B4++,B5
      83 00000070 0302002A              mvkl  BOOT_SIZE-1024,B6 ;B6 = BOOT_SIZE -1024
      84                    
      85 00000074 00842941              add   1,A1,A1          ;A1+=1,inc outer counter
      86 00000078 0300006A        ||    mvkh  BOOT_SIZE-1024,B6
      87                           
      88 0000007c 0004D8FA              cmplt A1,B6,B0
      89 00000080 00000000              nop   
      90 00000084 02903636              stb   B5,*A4++
      91 00000088 2FFFFD92        [B0]  b     _boot_loop1
      92 0000008c 00008000              nop   5
      93                    
      94 00000090 02040028              mvkl  CODE_START,A4 ;apps code start address ->A4
      95 00000094 02000068              mvkh  CODE_START,A4
      96 00000098 008008C0              zero  A1
      97                     
      98 0000009c           _boot_loop2:
      99 0000009c 029036A6              ldb   *B4++,B5
     100 000000a0 037BFE2A              mvkl  CODE_SIZE-4,B6 ;B6 = BOOT_SIZE -1024
TMS320C6x COFF Assembler         Version 4.10 Beta (May  4 2001)     Tue May 29 13:49:06 2001
Copyright (c) 1996-2001 Texas Instruments Incorporated
Flash bootup utility for 6211 dsk                                    PAGE    2

     101                    
     102 000000a4 00842941              add   1,A1,A1          ;A1+=1,inc outer counter
     103 000000a8 0300006A        ||    mvkh  CODE_SIZE-4,B6
     104                           
     105 000000ac 0004D8FA              cmplt  A1,B6,B0
     106 000000b0 00000000              nop    
     107 000000b4 02903636              stb   B5,*A4++
     108 000000b8 2FFFFF92        [B0]  b     _boot_loop2
     109 000000bc 00008000              nop   5
     110                            
     111 000000c0 0000002A!             mvkl .S2 _c_int00, B0
     112 000000c4 0000006A!             mvkh .S2 _c_int00, B0
     113 000000c8 00000362              B    .S2 B0
     114 000000cc 00008000              nop   5
     115                    ; 
     116                    ; end of the bootup routine
     117                    
     118 000000d0           _flash_prog:
     119 000000d0 0000802B          mvk   0x100,B0
     120 000000d4 008000A8        ||    mvk   1,A1 
     121                          
     122 000000d8 008003A2          mvc     B0,CSR         ;CSR = 0x100
     123                    
     124 000000dc 020413A2              mvc   A1,IER         ;IER = 1
     125                           
     126 000000e0 007FFFAB              mvk   -1,B0
     127 000000e4 00800028        ||    mvk   0,A1           ;couter = 0
     128                    
     129 000000e8 018003A3              mvc   B0,ICR         ;ICR = 0xffff
     130 000000ec 00000028        ||    mvk   0,A0           ;checksum =0
     131 000000f0 02000029              mvkl  EMIF_GCR,A4    ;EMIF_GCR address ->A4
     132 000000f4 0219802A        ||    mvkl  0x3300,B4      
     133                    
     134 000000f8 0200C069              mvkh  EMIF_GCR,A4
     135 000000fc 0200006A        ||    mvkh  0x3300,B4  
     136                                                
     137 00000100 02100277              stw   B4,*A4                
     138 00000104 02000229        ||    mvkl  EMIF_CE1,A4       ;EMIF_CE1 address ->A4
     139 00000108 027F91AA        ||    mvkl  EMIF_CE1_32,B4     ;
     140                    
     141 0000010c 0200C069              mvkh  EMIF_CE1,A4
     142 00000110 027FFFEA        ||    mvkh  EMIF_CE1_32,B4   
     143                          
     144 00000114 02100277              stw   B4,*A4                
     145 00000118 02000429        ||    mvkl  EMIF_CE0,A4       ;EMIF_CE0 address ->A4
     146 0000011c 027F99AA        ||    mvkl  EMIF_CE0_V,B4     ;
     147                    
     148 00000120 0200C069              mvkh  EMIF_CE0,A4
     149 00000124 027FFFEA        ||    mvkh  EMIF_CE0_V,B4
     150                          
     151 00000128 02100277              stw   B4,*A4                
     152 0000012c 02000C29        ||    mvkl  EMIF_SDCTRL,A4    ;EMIF_SDCTRL address ->A4
     153 00000130 0238002A        ||    mvkl  EMIF_SDCTRL_V,B4     ;
     154                    
     155 00000134 0200C069              mvkh  EMIF_SDCTRL,A4
     156 00000138 020388EA        ||    mvkh  EMIF_SDCTRL_V,B4     
     157                          
     158 00000140 02100277              stw   B4,*A4                
     159 00000144 02000E29        ||    mvkl  EMIF_SDRP,A4      ;EMIF_SDRP address ->A4
     160 00000148 02030D2A        ||    mvkl  0x61a,B4    ;
     161                    
     162 0000014c 0200C069              mvkh  EMIF_SDRP,A4
     163 00000150 0200006A        ||    mvkh  0x61a,B4
     164                                
     165 00000154 02100277              stw   B4,*A4
     166 00000158 0200002B        ||    mvkl  IO_PORT,B4        ;I/O port address ->B4
     167 0000015c 02000028        ||    mvkl  0x07000000,A4
     168                                   
     169 00000160 0248046B              mvkh  IO_PORT,B4        ;I/O port address ->B4
     170 00000164 02038068        ||    mvkh  0x07000000,A4
     171                    
     172 00000168 00010000              nop   9
     173 0000016c 021002F4              stw   A4,*B4            ;turn off all three LEDs 
     174 00000170 00010000              nop   9
     175                    
     176 00000174 02000229              mvkl  EMIF_CE1,A4       ;EMIF_CE1 address ->A4
     177 00000178 027F81AA        ||    mvkl  EMIF_CE1_8,B4     ;flash start address ->B4
     178                    
     179 00000180 0200C069              mvkh  EMIF_CE1,A4
     180 00000184 027FFFEA        ||    mvkh  EMIF_CE1_8,B4
     181                    
     182 00000188 02100277              stw   B4,*A4
     183 0000018c 02000029        ||    mvkl  BOOT_START,A4      ;ram start address ->A4
     184 00000190 0004002A        ||    mvkl  BOOT_SIZE,B0
     185                    
     186 00000194 02000069              mvkh  BOOT_START,A4
     187 00000198 0000006A        ||    mvkh  BOOT_SIZE,B0    
     188                          
     189 0000019c 03007FAA              mvk   0xff,B6
     190                    
     191 000001a0           _prog_checksum_loop1:
     192 000001a0 02103626              ldb   *A4++,B4
     193 000001a4 008000AA              mvk   1,B1
     194 000001a8 000028C2              sub   B0,B1,B0
     195 000001ac 00002000              nop   2  
     196 000001b0 021887E2              and   B4,B6,B4
     197 000001b4 001011E0              add   A0,B4,A0         ;update checksum and save in A0
TMS320C6x COFF Assembler         Version 4.10 Beta (May  4 2001)     Tue May 29 13:49:06 2001
Copyright (c) 1996-2001 Texas Instruments Incorporated
Flash bootup utility for 6211 dsk                                    PAGE    3

     198 000001b8 20000012        [B0]  b     _prog_checksum_loop1
     199 000001bc 00008000              nop   5
     200                    
     201 000001c0 02040029              mvkl  CODE_START,A4      ;ram start address ->A4
     202 000001c4 007BFE2A        ||    mvkl  CODE_SIZE-4,B0
     203                    
     204 000001c8 02000069              mvkh  CODE_START,A4
     205 000001cc 0000006A        ||    mvkh  CODE_SIZE-4,B0
     206                    
     207 000001d0           _prog_checksum_loop2:
     208 000001d0 02103626              ldb   *A4++,B4
     209 000001d4 008000AA              mvk   1,B1
     210 000001d8 000028C2              sub   B0,B1,B0
     211 000001dc 00002000              nop   2 
     212 000001e0 021887E2              and   B4,B6,B4
     213 000001e4 001011E0              add   A0,B4,A0         ;update checksum and save in A0
     214 000001e8 2FFFFE12        [B0]  b     _prog_checksum_loop2
     215 000001ec 00008000              nop   5
     216                    
     217                    ;            stw   A0,*A4
     218                                
     219 000001f0 02000029              mvkl  BOOT_START,A4
     220 000001f4 0200002A        ||    mvkl  FLASH_START,B4    ;flash start address ->B4
     221                    
     222 000001f8 02000069              mvkh  BOOT_START,A4
     223 000001fc 0248006A        ||    mvkh  FLASH_START,B4
     224                    
     225 00000200 03004029              mvk   PAGE_SIZE,A6
     226 00000204 0104002A        ||    mvkl  BOOT_SIZE,B2
     227                    
     228 00000208 0100006B              mvkh  BOOT_SIZE,B2
     229 0000020c 008428C0        ||    zero  A1
     230                    
     231 00000210           _flash_prog_loop1:
     232 00000210 00001612              b     _flash_page_prog
     233 00000214 0181142A+             mvkl  _flash_prog_branch1,B3
     234 00000218 0180006A+             mvkh  _flash_prog_branch1,B3
     235 0000021c 00982840              add   A6,A1,A1
     236 00000220 000458FA              cmplt A1,B2,B0
     237 00000224 00000000              nop
     238 00000228           _flash_prog_branch1:
     239 00000228 2FFFFE12        [B0]  b     _flash_prog_loop1   
     240 0000022c 00008000              nop   5   
     241                    
     242                                
     243 00000230 02040029              mvkl  CODE_START,A4
     244 00000234 017C002A        ||    mvkl  CODE_SIZE,B2
     245                    
     246 00000238 02000069              mvkh  CODE_START,A4
     247 0000023c 0100006A        ||    mvkh  CODE_SIZE,B2
     248                          
     249 00000240 008008C0              zero  A1
     250                    
     251 00000244           _flash_prog_loop2:
     252 00000244 00000E12              b     _flash_page_prog
     253 00000248 01812E2A+             mvkl  _flash_prog_branch2,B3
     254 0000024c 0180006A+             mvkh  _flash_prog_branch2,B3
     255 00000250 00982840              add   A6,A1,A1
     256 00000254 000458FA              cmplt A1,B2,B0
     257 00000258 00000000              nop
     258 0000025c           _flash_prog_branch2:
     259 0000025c 20000092        [B0]  b     _flash_prog_loop2   
     260 00000260 00008000              nop   5   
     261                    
     262                         
     263                                 
     264                    ;Read back flash and calculate the checksum
     265 00000264 00800029              mvk   0,A1              ;A1 = 0, clear checksum
     266 00000268 0200002A        ||    mvkl  FLASH_START,B4    ;flash start address ->B4
     267                               
     268 0000026c 01000029              mvk   0,A2              ;A2 = 0, clear counter  
     269 00000270 0248006A        ||    mvkh  FLASH_START,B4  
     270                          
     271 00000274 03007FAA              mvk   0xff,B6 
     272                    
     273 00000278           _checksum_cal:
     274 00000278 029036A6              ldb   *B4++,B5
     275 0000027c 01082940              add   1,A2,A2
     276 00000280 00FFFE2A              mvkl  BOOT_SIZE+CODE_SIZE-4,B1    ;
     277 00000284 0080006A              mvkh  BOOT_SIZE+CODE_SIZE-4,B1    ;
     278 00000288 000838FA              cmplt A2,B1,B0  
     279 0000028c 0298A7E2              and   B5,B6,B5
     280 00000290 009431E0              add   A1,B5,A1
     281 00000294 2FFFFF12        [B0]  b     _checksum_cal
     282 00000298 00008000              nop   5
     283                    
     284 0000029c 00802A78              cmpeq A1,A0,A1
     285 000002a0 80001292        [A1]  b     _flash_prog_success
     286 000002a4 00008000              nop   5
     287 000002a8 00001F12              b     _flash_prog_fail
     288 000002ac 00008000              nop   5
     289                     
     290                     
     291                    ;******************************************************************************
     292                    ;* FUNCTION NAME: _flash_page_prog                                            *
     293                    ;*                                                                            *
     294                    ;*   Regs Modified     : A3,A4,A6,B1,B4,B5,B6                                 *
TMS320C6x COFF Assembler         Version 4.10 Beta (May  4 2001)     Tue May 29 13:49:06 2001
Copyright (c) 1996-2001 Texas Instruments Incorporated
Flash bootup utility for 6211 dsk                                    PAGE    4

     295                    ;******************************************************************************
     296 000002b0           _flash_page_prog:
     297                      
     298 000002b0 032AAAAA             MVKL    .S2     0x90005555,B6     ;  
     299                    
     300 000002b4 01FFD529             MVK     .S1     -86,A3            ; 
     301 000002b8 0348006A  ||         MVKH    .S2     0x90005555,B6     ;  
     302                    
     303 000002bc 019802B4             STB     .D2T1   A3,*B6  
     304 000002c0 00010000             nop             9          ;  
     305 000002c4 0295552A             MVKL    .S2     0x90002aaa,B5     ;  
     306                    
     307 000002c8 01802AA9             MVK     .S1     85,A3             ;  
     308 000002cc 02C8006A  ||         MVKH    .S2     0x90002aaa,B5     ;  
     309                    
     310 000002d0 019402B4             STB     .D2T1   A3,*B5   
     311 000002d4 00010000             nop             9         ;  
     312                            
     313 000002d8 01AAAAA8             MVKL    .S1     0x90005555,A3     ;  
     314                    
     315 000002e0 02FFD02B             MVK     .S2     -96,B5            ;  
     316 000002e4 01C80068  ||         MVKH    .S1     0x90005555,A3     ;  
     317                    
     318 000002e8 028C0236             STB     .D1T2   B5,*A3            ;    
     319 000002ec 00010000             nop             9
     320                               
     321                            
     322 000002f0 028000FA             ZERO    .L2     B5                ;  
     323                              
     324                    ;** --------------------------------------------------------------------------*
     325 000002f4           FLASH_PAGE_PROG_LOOP:               
     326 000002f4 03103626             LDB             *A4++,B6          ; 
     327 000002f8 02942942             ADD             1,B5,B5
     328 000002fc 00006000             NOP             4
     329 00000300 031036B6             STB     .D2T2   B6,*B4++          ;   
     330 00000304 00010000             nop             9
     331 00000308 0098BAFA             CMPLT   .L2x    B5,A6,B1          ; 
     332 0000030c 4FFFFE90     [ B1]   B       .S1     FLASH_PAGE_PROG_LOOP ; 
     333 00000310 00008000             NOP             5
     334                                
     335                    ;** --------------------------------------------------------------------------*
     336 00000314           FLASH_PAGE_PROG_WAIT:    
     337 00000314 01902025                 LDB     .D1T1   *-A4(1),A3          ;  
     338 00000318 029020A6  ||         LDB             *-B4(1),B5
     339 0000031c 00006000             NOP             4
     340 00000320 008CBA7A             CMPEQ   .L2X    A3,B5,B1          ; 
     341 00000324 5FFFFE90     [!B1]   B       .S1     FLASH_PAGE_PROG_WAIT                ; 
     342 00000328 00008000             NOP             5
     343 0000032c 000C0362             B       .S2     B3                ; 
     344 00000330 00008000             NOP             5
     345                              
     346                    ;******************************************************************************
     347                    ;* FUNCTION NAME: _flash_prog_success                                         *
     348                    ;******************************************************************************
     349 00000334           _flash_prog_success:
     350 00000334 02000229              mvkl  EMIF_CE1,A4       ;EMIF_CE1 address ->A4
     351 00000338 027F91AA        ||    mvkl  EMIF_CE1_32,B4     ;
     352                    
     353 00000340 0200C069              mvkh  EMIF_CE1,A4
     354 00000344 027FFFEA        ||    mvkh  EMIF_CE1_32,B4
     355                    
     356 00000348 0080002B              mvkl  IO_PORT,B1        ;I/O port address ->B1
     357 0000034c 00800069        ||    mvkh  0x00000000,A1
     358 00000350 02100276          ||    stw   B4,*A4
     359                                   
     360 00000354 00C8046B              mvkh  IO_PORT,B1        ;I/O port address ->B1
     361 00000358 01038068        ||    mvkh  0x07000000,A2
     362                                
     363 0000035c 010000AA              mvk   1,B2
     364 00000360           _flash_prog_suc_loop:
     365 00000360 0050902A              mvkl   500000,B0
     366 00000364 000003EA              mvkh   500000,B0
     367 00000368           _flash_prog_suc_loop1:
     368 00000368 200048C2         [B0] sub   B0,B2,B0
     369 0000036c 010402F4              stw   A2,*B1
     370 00000370 20000112         [B0] b     _flash_prog_suc_loop1
     371 00000374 00008000              nop   5
     372                     
     373 00000378 0050902A              mvkl   500000,B0
     374 0000037c 000003EA              mvkh   500000,B0
     375                      
     376 00000380           _flash_prog_suc_loop2:  
     377 00000380 200048C2         [B0] sub   B0,B2,B0
     378 00000384 008402F4              stw   A1,*B1
     379 00000388 20000012         [B0] b     _flash_prog_suc_loop2
     380 0000038c 00008000              nop   5
     381                    
     382 00000390 0FFFFC12              b     _flash_prog_suc_loop
     383 00000394 00008000                nop   5
     384                    
     385                    ;******************************************************************************
     386                    ;* FUNCTION NAME: _flash_prog_fail                                            *
     387                    ;******************************************************************************
     388 00000398           _flash_prog_fail:
     389 00000398 02000229              mvkl  EMIF_CE1,A4       ;EMIF_CE1 address ->A4
     390 0000039c 027F91AA        ||    mvkl  EMIF_CE1_32,B4     ;
     391                    
TMS320C6x COFF Assembler         Version 4.10 Beta (May  4 2001)     Tue May 29 13:49:06 2001
Copyright (c) 1996-2001 Texas Instruments Incorporated
Flash bootup utility for 6211 dsk                                    PAGE    5

     392 000003a0 0200C069              mvkh  EMIF_CE1,A4
     393 000003a4 027FFFEA        ||    mvkh  EMIF_CE1_32,B4
     394                    
     395 000003a8 0080002B              mvkl  IO_PORT,B1        ;I/O port address ->B1
     396 000003ac 00800069        ||    mvkh  0x00000000,A1
     397 000003b0 02100276          ||    stw   B4,*A4
     398                                   
     399 000003b4 00C8046A              mvkh  IO_PORT,B1        ;I/O port address ->B1
     400 000003b8 008402F4              stw   A1,*B1
     401 000003bc           _flash_prog_fail_loop:
     402 000003bc 00000392              b     _flash_prog_fail_loop
     403 000003c0 00008000                nop   5
     404                    
     405 000003c4           _wait:
     406 000003c4 001011A2          mv  a4,b0
     407 000003c8           _w1
     408 000003c8 200029C2          [b0]sub b0,1,b0
     409 000003cc 20000112          [b0]b   _w1
     410 000003d0 00008000          nop 5
     411 000003d4 000C0362          b   b3
     412 000003d8 00008000          nop 5
     413                    
     414                      

No Assembly Errors, No Assembly Warnings