]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - keystone-rtos/ibl.git/commitdiff
nand flash addition
authorunknown <a0216664@.dhcp.itg.ti.com>
Thu, 23 Sep 2010 17:26:13 +0000 (13:26 -0400)
committerunknown <a0216664@.dhcp.itg.ti.com>
Thu, 23 Sep 2010 17:26:13 +0000 (13:26 -0400)
clean updates

34 files changed:
src/device/c64x/make/makefile
src/driver/nand/nand.c
src/ecc/3byte/3byte_ecc.c
src/ecc/ecc.h
src/hw/c64x/make/makefile
src/hw/nands/gpio/nandgpio.c
src/hw/nands/nandhwapi.h
src/interp/blob/blob.c
src/interp/coff/cload.c
src/make/Makefile
src/make/c64x/makedefs.mk
src/make/ibl_c6472/i2crom.map
src/make/ibl_c6472/ibl.cmd
src/make/makestg2
src/mkdeppath.bat
src/test/test1/makefile
src/test/test1/test1.btbl [deleted file]
src/test/test1/test1.btbl.bin [deleted file]
src/test/test2/makefile
src/test/test2/makestage2
src/test/test2/test.blob [deleted file]
src/test/test2/test2_little.bccs [deleted file]
src/test/test2/test2_little.blob [deleted file]
src/test/test2/test2im.hex [deleted file]
src/util/bconvert/bconvert [deleted file]
src/util/bconvert/bconvert64x [deleted file]
src/util/bconvert/makefile
src/util/btoccs/Makefile
src/util/i2cConfig/makestg2
src/util/nandwriter/nandwriter.c
src/util/romparse_c6472/Makefile
src/util/romparse_c6472/rparse.flex
src/util/romparse_c6472/rparse.tab.c [deleted file]
src/util/romparse_c6472/rparse.tab.h [deleted file]

index cc437e863f18822a11e5e256ae8d404be5136439..c7d482a89781154d56e6d6ea93323abb193fea00 100644 (file)
@@ -13,12 +13,15 @@ endif
 
 ECODIR= $(IBL_ROOT)/device
 
+# For no target set CSRC to all sources for clean
 ifeq ($(TARGET),c6472)
  CSRC= c6472.c
-endif
-
-ifeq ($(TARGET),c6455)
- CSRC= c6455.c
+else 
+ ifeq ($(TARGET),c6455)
+  CSRC= c6455.c
+ else
+  CSRC= c6472.c c6455.c
+ endif
 endif
 
 .PHONY: device
index 5a119b6214b8acfafc693b835170ec95ca431856..90e80167128892c29ad61bb1287457bc3244b906 100644 (file)
@@ -76,6 +76,9 @@ Int32 nand_seek (Int32 loc, Int32 from)
     desiredBlock = desiredPage / nandmcb.devInfo.pagesPerBlock;
     desiredPage  = desiredPage % nandmcb.devInfo.pagesPerBlock;
 
+    /* Update the current position */
+    nandmcb.fpos = desiredPos;
+
     /* Nothing to do if the current block/page is already loaded */
     if ((desiredBlock == nandmcb.currentLogicalBlock) && (desiredPage == nandmcb.currentPage))
         return (0);
@@ -87,7 +90,6 @@ Int32 nand_seek (Int32 loc, Int32 from)
     /* Update the currently loaded block/page info */
     nandmcb.currentLogicalBlock = desiredBlock;
     nandmcb.currentPage         = desiredPage;
-    nandmcb.fpos                = desiredPos;
 
     return (0);
 
@@ -172,12 +174,8 @@ Int32 nand_open (void *ptr_driver, void (*asyncComplete)(void *))
         nand_free_return (NAND_MALLOC_BLOCK_INFO_FAIL);
 
 
-    /* mdebug - read page 0 */
-    nandHwDriverReadPage(0, 0, nandmcb.page);
-
-
-    /* Bad blocks are identified by reading page 0 and page 1. If the first two
-     * bytes in these pages is not 0xffff then the block is bad */
+    /* Bad blocks are identified by reading page 0 and page 1. If the first 
+     * byte in these pages is not 0xff then the block is bad */
     nandmcb.numBadBlocks = 0;
     for (i = 0; i < nandmcb.devInfo.totalBlocks; i++)  {
 
@@ -185,7 +183,7 @@ Int32 nand_open (void *ptr_driver, void (*asyncComplete)(void *))
        if (ret < 0)
           nand_free_return (ret);
 
-       ret = nandHwDriverReadBytes (i, 0, nandmcb.devInfo.pageSizeBytes, 1, &nandmcb.page[1]);
+       ret = nandHwDriverReadBytes (i, 1, nandmcb.devInfo.pageSizeBytes, 1, &nandmcb.page[1]);
        if (ret < 0)
           nand_free_return (ret);
         
@@ -239,10 +237,10 @@ Int32 nand_read (Uint8 *ptr_buf, Uint32 num_bytes)
     /* Convert the global file position to an offset in the currently cached page */
     pIdx = nandmcb.fpos % nandmcb.devInfo.pageSizeBytes;
 
-
     for (i = 0; i < num_bytes; i++)  {
 
-        ptr_buf[i] = nandmcb.page[pIdx++];
+        ptr_buf[i]    = nandmcb.page[pIdx++];
+        nandmcb.fpos += 1;
 
         if (pIdx >= nandmcb.devInfo.pageSizeBytes)  {
 
@@ -255,7 +253,7 @@ Int32 nand_read (Uint8 *ptr_buf, Uint32 num_bytes)
             }
 
             
-            /* Load the new block */
+            /* Load the new page */
             if (nandHwDriverReadPage((Uint32)(nandmcb.logicalToPhysMap[nandmcb.currentLogicalBlock]), nandmcb.currentPage, nandmcb.page) < 0)
                 return (-2);
 
@@ -303,11 +301,11 @@ Int32 nand_peek (Uint8 *ptr_buf, Uint32 num_bytes)
  *  @b  Description
  *  @n
  *      This function returns how much data is available for immediate read.
- *      On nand this always returns -1.
+ *      On nand this always returns the page size.
  */
 Int32 nand_query (void)
 {
-    return (-1);
+    return (nandmcb.devInfo.pageSizeBytes);
 }
    
 
index 011c08a1657d3dff411d5b93f9ed9ea974eab107..37bd3e2bd2430d596ca82e50fa01da1fa680d091 100644 (file)
@@ -260,3 +260,20 @@ Int32 eccCorrectData(Uint8 *puchData, Uint8 *puchEccRead, Uint8 *puchEccCalc)
                }
        }
 }
+
+
+
+/* The number of bytes required for ecc */
+Int32 eccNumBytes(void)
+{
+    return (3);
+
+}
+
+
+/* The number of bytes each ECC covers */
+Int32 eccBytesPerBlock (void)
+{
+    return (256);
+
+}
index 063d3e0e388c64f7a22f3d2d748839ba1ed8eb3b..70c67391e4734a875ae95bf6a5733f426275e061 100644 (file)
@@ -19,3 +19,5 @@
 
 Int32 eccCorrectData(Uint8 *puchData, Uint8 *puchEccRead, Uint8 *puchEccCalc);
 Int32 eccComputeECC(const Uint8 *puchData, Uint8 *puchEccCode);
+Int32 eccNumBytes(void);
+Int32 eccBytesPerBlock (void);
index 67ff7f88d0373a3ffd831f9e38a775fe60ca3d45..14b3da920b0405d575b6bff33a41b5a8ef3115d6 100644 (file)
@@ -11,10 +11,14 @@ endif
 
 ECODIR= $(IBL_ROOT)/hw
 
+# If no target specified, set CSRC to all files (used for clean)
 ifeq ($(TARGET),c6472)
- CSRC= t64.c cpmacdrv.c pll.c psc.c emif31.c mdio.c gpio.c nandgpio.c i2c.c
+ CSRC= t64.c cpmacdrv.c pll.c psc.c emif31.c mdio.c gpio.c nandgpio.c i2c.c nandwrgpio.c
+else
+ CSRC= t64.c cpmacdrv.c pll.c psc.c emif31.c mdio.c gpio.c nandgpio.c i2c.c nandwrgpio.c
 endif
 
+
 .PHONY: hw
 
 
index 6f80f53df411bf03ec8a462d0d58a3cc8eb2d1a0..a72ddc366e2ade1b757fa99f06dc122a22ddf2d2 100644 (file)
@@ -17,6 +17,7 @@
 #include "gpio.h"
 #include "ecc.h"
 #include "target.h"
+#include "nandgpioloc.h"
 
 /* Pointer to the device configuration */
 nandDevInfo_t *hwDevInfo;
@@ -290,7 +291,7 @@ Int32 nandHwDriverReadPage(Uint32 block, Uint32 page, Uint8 *data)
     if (ret < 0)
         return (ret);
 
-    /* Perform ECC on 256 byte blocks. Three bytes of ecc per 512 byte block are used. The last
+    /* Perform ECC on 256 byte blocks. Three bytes of ecc per 256 byte block are used. The last
      * 3 bytes are used for the last block, the previous three for the block before that, etc */
     nblocks = hwDevInfo->pageSizeBytes >> 8;
 
index 585b72766ea37aee820e9d1e61af936944c7c441..d9796415276b8ee187295c769479e8ca73188a73 100644 (file)
 #define NAND_ECC_FAILURE            -813
 
 
+/* Information used only for programming flash */
+typedef struct nandProgramInfo_s
+{
+    uint8   blockEraseCommandPre;  /**< The command used to erase a block (sent before the address) */
+    uint8   blockEraseCommandPost; /**< The command used to erase a block (sent after the address) */
+    uint8   blockEraseNaddrBytes;  /**< The number of address bytes sent */
+    bool    blockErasePost;        /**< If TRUE the post command is sent */
+
+    uint8   pageWriteCommandPre;   /**< The command used to program a page (sent before the address) */
+    uint8   pageWriteCommandPost;  /**< The command used to program a page (sent after the address) */
+    bool    pageWritePost;         /**< If TRUE the post command is sent */
+    
+}  nandProgramInfo_t; 
+    
+
+
+
 /* Driver functions */
 Int32 nandHwDriverInit (nandDevInfo_t *devInfo);
 Int32 nandHwDriverReadBytes (Uint32 block, Uint32 page, Uint32 byte, Uint32 nbytes, Uint8 *data);
 Int32 nandHwDriverReadPage(Uint32 block, Uint32 page, Uint8 *data);
 Int32 nandHwDriverClose (void);
 
+Int32 nandHwDriverWritePage  (Uint32 block, Uint32 page, Uint8 *data, nandProgramInfo_t *winfo);
+Int32 nandHwDriverBlockErase (Uint32 uiBlockNumber, nandProgramInfo_t *winfo);
 
 
 
index ab95e39c4ce51937e304539a899d6c38f3e8d106..e92636cc07c045157ee4ac6948a8200e535823e2 100644 (file)
@@ -52,6 +52,9 @@ void iblBootBlob (BOOT_MODULE_FXN_TABLE *bootFxn, Uint32 *entry, void *formatPar
         if (dataSize < 0)
             break;
 
+        if (dataSize > remainSize)
+            dataSize = remainSize;
+
         if (dataSize > 0)  {
 
             (*bootFxn->read)(datap, dataSize);
index 4d9d9296ec1dac28e8de31c579eacbdeb7d32cad..9243c8b643299171247a7c83f07a38d379f03bf1 100644 (file)
@@ -1220,6 +1220,8 @@ int reloc_add(int index, SYMENT *sym)
    return TRUE;
 }
 
+
+
 /******************************************************************************/
 /*                                                                            */
 /* RELOCATE() - Perform a single relocation by patching the raw data.         */
index 6c5fe5628644c52268eec27fb26c4c860b7b066a..be336eb22d8051400436f2a61ae078552090af4d 100644 (file)
@@ -27,7 +27,15 @@ $(IBLS_C6X):
 
 # will need to add a line for each additional ARCH type added
 clean:
-       make -f makestg2 clean ARCH=c64x
+       make -f makestg2 clean   ARCH=c64x
+       make -f makestg2 cleant  ARCH=c64x TARGET=c6472
+       make -C ../util/bconvert       clean
+       make -C ../util/btoccs         clean
+       make -C ../util/i2cConfig      clean
+       make -C ../util/nandWriter     clean
+       make -C ../util/romparse_c6472 clean
+       make -C ../test/test1              clean
+       make -C ../test/test2              clean
 
 
 
index 08de169e397c14035c1d4a6a675451d6a26c3171..6d1eba2da91d09169ba19768dc5d9b1225251e5f 100644 (file)
@@ -68,6 +68,7 @@ RTLIBS     = $(subst /,$(DIRSEP),$(ALLFARLIB))
 # -pds97:  shut off no source in file warning
 #CFLAGS  = -c -k -mi200 -ml3 -o2 -pm -pds1111 -pds827 -pds824 -pds837 -pds1037 -pds195 -pds97 -pden -pdr $(CPUFLAGS)
 CFLAGS  = -c -k -mi200 -ml3 -ms3 -o2 -pm -pds1111 -pds827 -pds824 -pds837 -pds1037 -pds195 -pds97 -pden -pdr $(CPUFLAGS)
+#CFLAGS  = -c -k -mi200 -ml0 -ms3 -o2 -pm -pds1111 -pds827 -pds824 -pds837 -pds1037 -pds195 -pds97 -pden -pdr $(CPUFLAGS)
 
 ifeq ($(ENDIAN),big)
  CFLAGS+= -me
@@ -78,6 +79,7 @@ endif
 # -g  : enable debugging
 # -ss : interlist C source and optimizer with .asm source
 DCFLAGS = -g -as  -ss
+#DCFLAGS = -as  -ss
 #DCFLAGS = -gp
 
 
index dd057db578762d71c94027de2f62bc5fbf8ad42d..2d5f68a87382367e43686b5f9ddc242747309897 100644 (file)
@@ -1,16 +1,16 @@
-section \r
-{\r
-  param_index   = 0\r
-  boot_mode     = 257\r
-  sw_pll               = 25\r
-  options       = 1\r
-\r
-  core_freq_mhz    = 625\r
-  i2c_clk_freq_khz = 50\r
-\r
-  multi_i2c_id = 0\r
-  my_i2c_id    = 1\r
-  address_delay = 0\r
-  exe_file = "ibl_c6472/ibl.i2c.ccs"\r
-}\r
-\r
+section 
+{
+  param_index   = 0
+  boot_mode     = 257
+  sw_pll               = 25
+  options       = 1
+
+  core_freq_mhz    = 625
+  i2c_clk_freq_khz = 50
+
+  multi_i2c_id = 0
+  my_i2c_id    = 1
+  address_delay = 0
+  exe_file = "ibl_c6472/ibl.i2c.ccs"
+}
+
index 125dbbdc69716784602fe060c9c8e00c5892fa16..c655b3de7ac8fba1e1e8246384bf05e6f8094996 100644 (file)
@@ -41,7 +41,7 @@
 
 -c
 -stack 0x800
--heap  0x4800
+-heap  0x6000
 
 
 
@@ -49,10 +49,10 @@ MEMORY
 {
        TEXT   :  origin = 0x801000, length = 0x10000
        STACK  :  origin = 0x811000, length = 0x0800
-       HEAP   :  origin = 0x811800, length = 0x4800
-       DATA   :  origin = 0x816000, length = 0x3000
-       CFG    :  origin = 0x820000, length = 0x0300
-       STAT :    origin = 0x820300, length = 0x0200
+       HEAP   :  origin = 0x811800, length = 0x6000
+       DATA   :  origin = 0x817800, length = 0x3000
+       CFG    :  origin = 0x821800, length = 0x0300
+       STAT :    origin = 0x821b00, length = 0x0200
 }
 
 SECTIONS
index 631320cdd87124e1b46e2e1386db381b3ded1f43..2c89626c503e044677f0e57efb03c60e16730ef4 100644 (file)
@@ -53,6 +53,15 @@ $(CLEAN_MODULES):
        @echo cleaning $(subst clean_, ,$@)
        make -C $(IBL_ROOT)/$(subst clean_,,$@)/$(ARCH)/make clean
        
+cleant:
+       rm -rf ibl_$(TARGET)/ibl_$(TARGET).out
+       rm -rf ibl_$(TARGET)/ibl_$(TARGET).map
+       rm -rf ibl_$(TARGET)/ibl_le.b
+       rm -rf ibl_$(TARGET)/ibl.b
+       rm -rf ibl_$(TARGET)/ibl.i2c.b
+       rm -rf ibl_$(TARGET)/ibl.i2c.ccs
+       rm -rf ibl_$(TARGET)/i2crom.ccs
+       
 
 
 
index 05cbf023dd36d7913e758b2f43be3f8a2d0c54b8..d2ed0411507fcb006832b0139bfcd3726f66494c 100644 (file)
@@ -1 +1 @@
-set MAKEDEPPATH=/ibl_0_5/ibl_0.5/src/make/makedep/makedep.exe
+set MAKEDEPPATH=/data/projects/ibl/git/ibl/src/make/makedep/makedep.exe
index ca15023fe204f01fe3935f95712590bdcc08724c..5c5ec8265a91c739afad016b177e5ff08952a9b8 100644 (file)
@@ -17,3 +17,5 @@ test1.obj: test1.c
        cl6x -g -c -mv 6400+ test1.c
 
 
+clean:
+       rm -f test1.btbl.bin test1.btbl.ccs test1.btbl test1.out test1.obj
diff --git a/src/test/test1/test1.btbl b/src/test/test1/test1.btbl
deleted file mode 100644 (file)
index 64130b5..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-\ 2
-$A0400,
-00 84 02 E0 00 00 03 C0 00 84 00 00 00 13 EA 59 86 77 35 77 C0 00 11 11 
-B5 D6 20 46 46 46 85 77 D0 28 36 64 81 FF FF A8 E3 40 01 48 81 FF FF E8 
-80 0F EA 58 06 60 A3 58 60 46 AB BA 00 00 34 10 02 28 02 64 02 28 90 5A 
-E1 00 80 40 C1 C6 65 C6 01 82 01 62 01 AD 40 78 01 8D 60 58 01 8D 8F 78 
-05 0C 80 58 00 28 20 64 E0 30 00 00 CF FF FC 91 C2 28 02 64 C0 00 2C 10 
-C2 28 90 5A 01 80 0F D8 C5 8C 0F D8 C3 0C 0F D8 01 FF FF A8 01 FF FF E8 
-00 0F EA 58 20 46 48 2A D0 0C 02 64 95 0C 1F DA 80 04 A3 58 90 00 1F DB 
-E0 80 80 30 8C 6E 04 3A 6C 6E 00 6F 01 83 01 62 00 28 32 E6 01 2B 6C 6E 
-20 00 03 62 0C 6E 6C 6E EA 60 90 00 05 3C 33 E5 01 B4 1F DA 00 0C 03 63 
-06 3C 33 E4 05 3C 52 E6 00 00 60 00 00 00 00 00 00 00 00 00 01 8A 4C 29 
-05 BC 54 F4 01 80 42 68 01 8C 02 64 02 FC A3 5A 02 7F FF AA 02 7F FF EA 
-02 94 8A 7A 01 8C 0A 58 05 3C 22 F4 06 EB B5 A9 21 8A 4E 28 30 10 03 63 
-21 80 42 68 21 8C 02 64 E0 80 80 20 2C 6E 46 46 01 82 01 62 01 8A 4E 28 
-01 80 42 68 01 8C 02 64 0C 6E 4C 6E 00 0C 13 62 E4 20 00 00 01 81 81 62 
-02 0A 4A 2A 02 00 42 6A 85 06 10 0D 04 BB 4C 6E 20 00 03 62 00 00 60 00 
-E3 00 80 00 01 81 01 62 01 8A 48 28 01 80 42 68 00 0C 02 64 04 BA 6C 6E 
-C0 00 13 62 00 00 60 00 E2 00 80 00 01 81 01 62 01 8A 50 28 01 80 42 68 
-01 8C 02 64 00 0C 13 62 01 86 81 62 10 00 44 12 E0 10 00 00 00 00 A1 20 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 18 29 F1 00 98 47 A1 04 04 A3 58 C1 90 36 A5 C4 00 01 29 
-04 90 1F D8 82 90 56 A7 84 A5 0A 25 00 18 79 A3 01 18 87 A0 A8 10 37 B5 
-14 4E A2 56 00 84 A3 5A 23 90 37 A5 20 03 E1 A3 E1 00 00 C0 01 00 68 DA 
-60 0C 03 63 28 90 37 A7 20 03 E0 5A C1 94 36 35 C0 80 40 43 D8 6F 52 C7 
-E8 00 10 00 82 94 56 37 84 88 2A B4 A8 14 37 55 00 20 0F D8 C3 94 37 75 
-C0 03 E1 A0 00 83 80 01 C8 94 37 76 03 90 37 A4 00 00 40 00 00 00 00 00 
-00 03 40 01 03 94 37 74 00 8C A3 62 00 00 00 00 00 00 00 00 07 BF 00 5A 
-02 04 A3 5A 05 10 03 A2 00 00 00 00 02 28 03 E2 2C 6E BC 45 02 89 80 2A 
-E4 00 00 00 02 80 42 6A 2C 6E 10 C5 00 22 A1 20 01 89 00 28 01 80 42 68 
-01 8C 02 64 4C 6E 86 C1 E8 40 00 00 2C 6E 00 35 00 1A A1 20 01 89 02 28 
-01 80 42 68 01 8C 02 64 02 14 3E C2 00 35 4C 6E E8 20 00 00 A2 8A 2C 6E 
-6C 6E BC 4D 00 10 2F 5A 28 27 99 BB 4F F4 A1 20 00 0A A1 20 00 00 00 00 
-E1 60 80 00 07 88 FE 2A 07 80 42 6A 07 BF 09 F2 07 0A 52 2A 07 00 42 6A 
-02 00 00 2A 02 00 42 6A 00 10 03 62 02 10 00 28 01 83 41 62 02 00 42 68 
-01 81 A0 28 01 80 42 68 00 00 00 00 00 0C 13 62 01 88 81 62 02 00 70 2A 
-02 00 42 6A 00 10 03 62 01 85 61 62 02 04 A3 58 00 05 A1 20 00 00 00 00 
-00 00 00 00 02 FF FF A8 02 FF FF E9 02 81 30 2A 02 80 42 6B 96 E9 FE 27 
-02 EF 62 C6 32 0C 02 65 E6 00 06 00 02 00 A3 58 01 80 A3 58 31 94 80 58 
-00 00 00 00 02 0C 1F DA 00 00 00 00 00 00 00 00 00 00 00 00 00 8C A3 62 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 01 A1 20 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 08 00 84 12 00 11 11 11 11 22 22 22 22 
-00 00 00 74 00 84 20 00 00 00 00 04 00 84 14 90 00 00 00 00 00 00 00 00 
-00 00 00 04 00 84 14 94 00 00 00 00 00 00 00 00 00 00 00 04 00 84 14 98 
-00 00 00 01 00 00 00 00 00 00 00 04 00 84 14 9C 00 84 03 80 00 00 00 00 
-00 00 00 04 00 84 14 A0 00 84 03 80 00 00 00 00 00 00 00 04 00 84 14 A4 
-12 34 56 78 00 00 00 00 00 00 00 04 00 84 14 A8 AB CD 12 34 00 00 00 00 
-00 00 00 00 00 00 00 00 
-\ 3
\ No newline at end of file
diff --git a/src/test/test1/test1.btbl.bin b/src/test/test1/test1.btbl.bin
deleted file mode 100644 (file)
index 3a58770..0000000
Binary files a/src/test/test1/test1.btbl.bin and /dev/null differ
index 9691952ce0b82b80620b2bc4e278b691095ae01e..49ee8bbd600dccf3558a4b799f8eea61a45cce38 100644 (file)
@@ -12,5 +12,6 @@ test2le:
        make -f makestage2 test2 ENDIAN=little
 
 
-
+clean:
+       make -f makestage2 clean
 
index 2338dff6a336e997e20b4401d85e80ad0853ad68..fd4364e66349268f526ce3dbc34dcde2bd1b86be 100644 (file)
@@ -6,7 +6,7 @@ CFLAGS= -g -c -mv 6400+ $(OPT)
 
 .PHONY: test2
 
-test2: gen_cdefdep test2_$(ENDIAN).blob
+test2: gen_cdefdep utils test2_$(ENDIAN).blob
 
 ifeq ($(ENDIAN),little)
  LIB= $(TOOLSC6X)/cgtools/lib/rts64plus.lib
@@ -19,10 +19,10 @@ endif
 
 
 test2_$(ENDIAN).blob: test2_$(ENDIAN).bccs
-       ..\util\ccs2bin $< $@
+       ..\..\util\btoccs\ccs2bin $< $@
 
 test2_$(ENDIAN).bccs: test2_$(ENDIAN).b
-       ..\util\b2ccs $< $@
+       ..\..\util\btoccs\b2ccs $< $@
 
 test2_$(ENDIAN).b: test2_$(ENDIAN).out test2.rmd
        hex6x $< test2.rmd
@@ -39,7 +39,7 @@ c0.obj: c0.c cdefdep
 test2.obj: test2.c cdefdep
        $(CC) $(CFLAGS) $<
 
-test2ini.obj: test2ini.s
+test2ini.obj: test2ini.s cdefdep
        $(CC) $(CFLAGS) $<
 
 gen_cdefdep:
@@ -48,4 +48,17 @@ gen_cdefdep:
        @sh -c 'if diff -q cdefdep.tmp cdefdep ; then echo same ; else cp cdefdep.tmp cdefdep ; fi '
 
        
-
+utils:
+       make -C ../../util/btoccs
+
+
+clean:
+       rm -rf test2_little.blob test2_big.blob
+       rm -rf test2_little.bccs test2_big.bccs
+       rm -rf test2_little.b    test2_big.b
+       rm -rf test2_little.out  test2_big.out
+       rm -rf c0.obj
+       rm -rf test2.obj
+       rm -rf test2ini.obj
+       rm -rf test2im.hex
+       rm -rf test2.map
diff --git a/src/test/test2/test.blob b/src/test/test2/test.blob
deleted file mode 100644 (file)
index bd1d1d1..0000000
Binary files a/src/test/test2/test.blob and /dev/null differ
diff --git a/src/test/test2/test2_little.bccs b/src/test/test2/test2_little.bccs
deleted file mode 100644 (file)
index 4144a3c..0000000
+++ /dev/null
@@ -1,1441 +0,0 @@
-1651 1 10000 1 5a0
-0x00c8a120
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x0013ea59
-0x86773577
-0xc0001111
-0xb5d62046
-0x46468577
-0xd0283664
-0x81ffffa8
-0xe3400148
-0x81ffffe8
-0x800fea58
-0x0660a358
-0x6046abba
-0x00003410
-0x02280264
-0x0228905a
-0xe1008040
-0xc1c665c6
-0x01820162
-0x01ad4078
-0x018d6058
-0x018d8f78
-0x050c8058
-0x00282064
-0xe0300000
-0xcffffc91
-0xc2280264
-0xc0002c10
-0xc228905a
-0x01800fd8
-0xc58c0fd8
-0xc30c0fd8
-0x01ffffa8
-0x01ffffe8
-0x000fea58
-0x2046482a
-0xd00c0264
-0x950c1fda
-0x8004a358
-0x90001fdb
-0xe0808030
-0x8c6e043a
-0x6c6e006f
-0x01830162
-0x002832e6
-0x012b6c6e
-0x20000362
-0x0c6e6c6e
-0xea609000
-0x053c33e5
-0x01b41fda
-0x000c0363
-0x063c33e4
-0x053c52e6
-0x00006000
-0x00000000
-0x00000000
-0x01820429
-0x05bc54f4
-0x018010e8
-0x018c0264
-0x02fca35a
-0x027fffaa
-0x027fffea
-0x02948a7a
-0x018c0a58
-0x053c22f4
-0x06ebb5a9
-0x21820628
-0x30100363
-0x218010e8
-0x218c0264
-0xe0808020
-0x2c6e4646
-0x01820162
-0x01820628
-0x018010e8
-0x018c0264
-0x0c6e4c6e
-0x000c1362
-0xe4200000
-0x01818162
-0x0202022a
-0x020010ea
-0x8506100d
-0x04bb4c6e
-0x20000362
-0x00006000
-0xe3008000
-0x01810162
-0x01820028
-0x018010e8
-0x000c0264
-0x04ba6c6e
-0xc0001362
-0x00006000
-0xe2008000
-0x01810162
-0x01820828
-0x018010e8
-0x018c0264
-0x000c1362
-0x01868162
-0x10004412
-0xe0100000
-0x0000a120
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x001829f1
-0x009847a1
-0x0404a358
-0xc19036a5
-0xc4000129
-0x04901fd8
-0x829056a7
-0x84a50a25
-0x001879a3
-0x011887a0
-0xa81037b5
-0x144ea256
-0x0084a35a
-0x239037a5
-0x2003e1a3
-0xe10000c0
-0x010068da
-0x600c0363
-0x289037a7
-0x2003e05a
-0xc1943635
-0xc0804043
-0xd86f52c7
-0xe8001000
-0x82945637
-0x84882ab4
-0xa8143755
-0x00200fd8
-0xc3943775
-0xc003e1a0
-0x00838001
-0xc8943776
-0x039037a4
-0x00004000
-0x00000000
-0x00034001
-0x03943774
-0x008ca362
-0x00000000
-0x00000000
-0x07bf005a
-0x0200a35a
-0x0200007e
-0xbc452c6e
-0x00002000
-0x01820c28
-0x018010e8
-0xe1000000
-0x018c0264
-0x9d896c6e
-0x3028a120
-0x0302802a
-0x0370006b
-0x0200006f
-0xb55da247
-0xe8400000
-0xa2416c6e
-0x0200007e
-0xbc4d2c6e
-0x26416c6e
-0x2c6ebc45
-0x01820c28
-0x018010e8
-0xe3a00000
-0x018c0264
-0x00006000
-0x001078f8
-0xcff3a120
-0x0004a120
-0x00000000
-0x00000000
-0x00000000
-0x0781fe2a
-0x078010ea
-0x07bf09f2
-0x07020a2a
-0x070010ea
-0x0200202a
-0x0270006a
-0x00100362
-0x020b0028
-0x01834162
-0x02700068
-0x0181c028
-0x01f00068
-0x00000000
-0x000c1362
-0x01888162
-0x0200902a
-0x0270006a
-0x00100362
-0x01856162
-0x0204a358
-0x0005a120
-0x00000000
-0x00000000
-0x02ffffa8
-0x02ffffe9
-0x0281502a
-0x02f0006b
-0x96e9fe27
-0x02ef62c6
-0x320c0265
-0xe6000600
-0x0200a358
-0x0180a358
-0x31948058
-0x00000000
-0x020c1fda
-0x00000000
-0x00000000
-0x00000000
-0x008ca362
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x0001a120
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x7efeb0e7
-0xe4ff9b3d
-0xdffb7483
-0xbefbae39
-0xbffed5df
-0x33fff4f5
-0x2f9ef0fb
-0x459feb71
-0xdfffa1d7
-0xfbdecdad
-0x7bf28473
-0xbf7797a9
-0x756ef4cf
-0x7f5d0565
-0x66ba0eeb
-0x6f5992e1
-0x5e56aec7
-0x7eff7c1d
-0xff977063
-0x7df8bd19
-0x7bdeafbf
-0x36af11d5
-0xffee88db
-0x3f7bf651
-0xffb6d7b7
-0xcbbca68d
-0x70e33853
-0x7ff61e89
-0xfedf06af
-0x5fbd1a45
-0x759f5ecb
-0x6fbe15c1
-0x61671ca7
-0x5f5d4cfd
-0x3ffadc43
-0x76e6bbf9
-0x37fef99f
-0xfeee1eb5
-0x796b90bb
-0xfbdef131
-0xdf567d97
-0xbff46f6d
-0xf7fb5c33
-0xfff19569
-0xfbef888f
-0xffdd1f25
-0xbdfe1eab
-0x7bcd88a1
-0x7ffffa87
-0xffbd0ddd
-0x6fd3b823
-0x6fbdaad9
-0x1e9fb37f
-0x6ffd1b95
-0x5cae089b
-0x5fb8dc11
-0x7ff69377
-0x3ffe284d
-0xef32f013
-0x7f71fc49
-0xff5e7a6f
-0x3bfd1405
-0x7e7e4e8b
-0xff7feb81
-0xfe3f4867
-0x6e16bebd
-0xffba0403
-0xfff589b9
-0x7ffedd5f
-0x67fc0875
-0x70bbf07b
-0x4ff9b6f1
-0xcedf1957
-0x7e5dd12d
-0xff63f3f3
-0x5abf5329
-0x7fbfdc4f
-0x5fdcf8e5
-0xffbfee6b
-0x5dcd3e61
-0x6db70647
-0x7f7e5f9d
-0xbd9fbfe3
-0x3de65899
-0xbf7e773f
-0x3d3ee555
-0xbbeb485b
-0xfdf981d1
-0x34760f37
-0x6cff6a0d
-0x6de267d3
-0xbff19a09
-0xcebfae2f
-0xef3ccdc5
-0xffbafe4b
-0x7c2d8141
-0x4ee73427
-0x57d7f07d
-0xfb72ebc3
-0xfde81779
-0x1cfe811f
-0xbd6db235
-0x37de103b
-0x17f83cb1
-0xf5bf7517
-0x4d5ef2ed
-0xd7664bb3
-0xf7f0d0e9
-0x7deff00f
-0xfc9c92a5
-0xefff7e2b
-0x57d8b421
-0xf4ffd207
-0xffff715d
-0xeefb87a3
-0xdaf2c659
-0xe69efaff
-0xe4cc6f15
-0xe6ae481b
-0x1fbde791
-0xfff74af7
-0x5ff46bcd
-0x9fab9f93
-0xefd4f7c9
-0xfeeea1ef
-0xf6fc4785
-0x7dff6e0b
-0x7dfed701
-0x7dbedfe7
-0xeff4e23d
-0x7e7b9383
-0xff7e6539
-0xffffe4df
-0xbf7f1bf5
-0xbffbeffb
-0xdeda8271
-0x6cf790d7
-0x7df7d4ad
-0x73ea6373
-0x97760ea9
-0xee7fc3cf
-0xfb7fec65
-0x9fbacdeb
-0x77efe9e1
-0x53565dc7
-0xfff4431d
-0xfbd30f63
-0xe762f419
-0xbeff3ebf
-0x19cdb8d5
-0xcbef07db
-0x77fe0d51
-0xeffe46b7
-0x1ffd2d8d
-0xdb569753
-0xed9c1589
-0x1d8f55af
-0xffbf8145
-0x7aff9dcb
-0x7bebecc1
-0xfee64ba7
-0x4a7593fd
-0x69f3fb43
-0x95f872f9
-0x72bf089f
-0x7dec45b5
-0x1e5f8fbb
-0x5dd88831
-0x5b976c97
-0x7ea4766d
-0xffaa3b33
-0xfeff0c69
-0x77ef578f
-0x4a9f0625
-0x13ffddab
-0xbd1adfa1
-0x75c6a987
-0xadfcd4dd
-0x7cd65723
-0xfe76e1d9
-0x77bf427f
-0x7b4ec295
-0x7fff879b
-0x3779f311
-0xff770277
-0x7ee5af4d
-0x6a9b4f13
-0xf576f349
-0x556fc96f
-0xde7e7b05
-0x3f7b8d8b
-0xfe7cc281
-0x5f277767
-0x7f5e05bd
-0x3ff62303
-0x1b9640b9
-0x3effec5f
-0xf7fd2f75
-0x4b3eef7b
-0xb59a4df1
-0xdfd70857
-0x7f6cd82d
-0xfb67d2f3
-0x2ffbca29
-0xc1aeab4f
-0x37dddfe5
-0x5efead6b
-0xeac99561
-0x7bc6b547
-0x37f5269d
-0x7fdb5ee3
-0xdcee8f99
-0xf67f063f
-0x6b4f8c55
-0xd6fbc75b
-0xeff998d1
-0xff3f7e37
-0xaffdf10d
-0xefffc6d3
-0x2a359109
-0xbf3ffd2f
-0x6f3d34c5
-0xffbf3d4b
-0x73395841
-0x9ff66327
-0x5bde377d
-0xeffa0ac3
-0x3f57ce79
-0xf7be901f
-0xff7dd935
-0xddee0f3b
-0xe7ffd3b1
-0x4cf66417
-0xd64cf9ed
-0xf9e32ab3
-0xeb7c47e9
-0xeeffbf0f
-0x5fdc79a5
-0x5dff3d2b
-0x7ffc0b21
-0xfb568107
-0x47fd385d
-0xedfa26a3
-0x5de9fd59
-0x2dfe89ff
-0xf3dc1615
-0xffabc71b
-0x7bbcfe91
-0xf5f7b9f7
-0xec75f2cd
-0x7783fe93
-0x7fd7eec9
-0x19cff0ef
-0xbfffae85
-0x7fdaad0b
-0x7ff9ae01
-0xdcb70ee7
-0xead6293d
-0x5777b283
-0x7e3d1c39
-0xfbfef3df
-0xf8ee42f5
-0x5caaeefb
-0x6bd91971
-0x7f777fd7
-0x30c4dbad
-0x6ffa4273
-0xeff085a9
-0xff2e92cf
-0xc47ed365
-0xfe3b8ceb
-0xef4a40e1
-0x7f760cc7
-0x4bf50a1d
-0x75faae63
-0xde692b19
-0x27ffcdbf
-0xfedc5fd5
-0xf7eb86db
-0x7ffc2451
-0x74b7b5b7
-0x5ffdb48d
-0x1fe3f653
-0x5bfe0c89
-0x7dcfa4af
-0xa9bde845
-0x3bbfdccb
-0x7dadc3c1
-0x57677aa7
-0x7ff5dafd
-0x97f71a43
-0xeec629f9
-0xef3f179f
-0xbdfe6cb5
-0xbf5f8ebb
-0xeffe1f31
-0x77de5b97
-0x35d47d6d
-0xcff31a33
-0xe1f88369
-0x69ff268f
-0x2d5ced25
-0x7efb9cab
-0xff1c36a1
-0xfbe75887
-0x6fbc9bdd
-0xeff6f623
-0xaf6c18d9
-0xe3ded17f
-0x5ddc6995
-0xbebb069b
-0x7aff0a11
-0xa77f7177
-0xe7e5364d
-0xeddfae13
-0x7c57ea49
-0x2f4f186f
-0x697fe205
-0xfffecc8b
-0xa9ed9981
-0xfaefa667
-0x7efd4cbd
-0x7bf24203
-0x75f2f7b9
-0x17fefb5f
-0x6fee5675
-0xf61fee7b
-0x77fee4f1
-0x58d6f757
-0x03ffdf2d
-0xeee7b1f3
-0xfef44129
-0x7cbf7a4f
-0x55dec6e5
-0xafbb6c6b
-0xf7f9ec61
-0x63ee6447
-0xa6ffed9d
-0x72defde3
-0x73f2c699
-0x7f7f953f
-0xef6c3355
-0xf3fe465b
-0xdffdafd1
-0xba3eed37
-0xfebc780d
-0x43fb25d3
-0xd7b58809
-0xff4e4c2f
-0xf23d9bc5
-0xa91f7c4b
-0xfeb92f41
-0x5fff9227
-0x5efc7e7d
-0x217b29c3
-0x7b438579
-0xebfe9f1f
-0x63ee0035
-0x6cee0e3b
-0x7bdb6ab1
-0xdbbf5317
-0xbbbf00ed
-0xeb3a09b3
-0xfff3bee9
-0x7fff8e0f
-0x3fbc60a5
-0xfd7afc2b
-0xeddb6221
-0x56c73007
-0xd77eff5d
-0x52f6c5a3
-0x56fd3459
-0xfbfe18ff
-0xc7efbd15
-0x5f2f461b
-0x47b81591
-0xeef628f7
-0xe36f79cd
-0xe2b65d93
-0xf7f6e5c9
-0x4fff3fef
-0x3eff1585
-0xffdfec0b
-0x5af88501
-0x3fa73de7
-0xedbf703d
-0xdd7fd183
-0x6f37d339
-0x7ffe02df
-0x7b3d69f5
-0xffafedfb
-0xfe9bb071
-0xffd76ed7
-0xf7d5e2ad
-0x7fea2173
-0x7d76fca9
-0x5f7f61cf
-0xf77dba65
-0x7ffe4beb
-0x1d5897e1
-0x6fafbbc7
-0xedfdd11d
-0x4ffe4d63
-0x7d6b6219
-0xf7de5cbf
-0xffef06d5
-0xfeee05db
-0x6ffe3b51
-0x1fb724b7
-0xd53e3b8d
-0xb5cb5553
-0xde9c0389
-0x7faff3af
-0x6bbc4f45
-0xf7de1bcb
-0xffbb9ac1
-0xef66a9a7
-0x6ffe21fd
-0xfff63943
-0xfbcfe0f9
-0xd87f269f
-0x3fec93b5
-0x7b4b8dbb
-0x83dfb631
-0xf9374a97
-0xf584846d
-0xc8b7f933
-0xd6fdfa69
-0xedeef58f
-0x573ed425
-0xffff5bab
-0x77d98da1
-0xdfe60787
-0x9efc62dd
-0xff7f9523
-0x7a7d4fd9
-0x6d9e607f
-0xf86e1095
-0xf5aa859b
-0x6d382111
-0x73f7e077
-0x4efcbd4d
-0x77020d13
-0xdfd4e149
-0x7e5e676f
-0x6efd4905
-0xddfa0b8b
-0x7fea7081
-0x65efd567
-0x7f3493bd
-0xbdf66103
-0x7b8baeb9
-0xf2fe0a5f
-0x8caf7d75
-0x5f5aed7b
-0xef9f7bf1
-0x73fee657
-0xef46e62d
-0xe7e390f3
-0xfdb8b829
-0x3fbe494f
-0x7fdfade5
-0x03fe2b6b
-0x7ede4361
-0x7eb61347
-0x577eb49d
-0xffd29ce3
-0x7ff2fd99
-0xfb7e243f
-0xd96cda55
-0x5feac55b
-0xf9fdc6d1
-0xa73e5c37
-0x7fb6ff0d
-0xffd284d3
-0x5e717f09
-0x1dfe9b2f
-0xdd3e02c5
-0x7fdbbb4b
-0xcf3d0641
-0xf7eec127
-0x5ff6c57d
-0x5d7648c3
-0xbd6b3c79
-0xfdfeae1f
-0xc77e2735
-0x27fe0d3b
-0xed5b01b1
-0xf7be4217
-0x5ea507ed
-0xe66ae8b3
-0xfff735e9
-0x2b6f5d0f
-0x79fc47a5
-0xff7abb2b
-0xfbfeb921
-0x3d4fdf07
-0x4974c65d
-0xffdf64a3
-0xfbac6b59
-0x3b7fa7ff
-0x7def6415
-0x37eac51b
-0x7fbf2c91
-0x7ff697f7
-0x37ed00cd
-0xffc2bc93
-0x56f1dcc9
-0x6fde8eef
-0xdffe7c85
-0xfafb2b0b
-0xddeb5c01
-0xbeb76ce7
-0xfbbcb73d
-0xef73f083
-0x9a6e8a39
-0x6a7f11df
-0xbfac90f5
-0xde9aecfb
-0xb7fa4771
-0x1fff5dd7
-0xe6dee9ad
-0x7ef20073
-0x6f3973a9
-0xff6e30cf
-0x0b7ca165
-0xbefb0aeb
-0x725aeee1
-0x74ff6ac7
-0x4df6981d
-0xebdbec63
-0x1fe99919
-0xfddeebbf
-0xeefdadd5
-0x5bfa84db
-0x7b7c5251
-0xfaf693b7
-0xdf36c28d
-0xfdd2b453
-0x45f5fa89
-0xbeae42af
-0xf7beb645
-0xf3da5acb
-0xb7fd71c1
-0x6df7d8a7
-0x55d668fd
-0xfdff5843
-0x6ed597f9
-0xcfff359f
-0x7eeebab5
-0xdf4b8cbb
-0x7ffd4d31
-0xfcb63997
-0xf7ac8b6d
-0xdbf6d833
-0xc7ff7169
-0x77fec48f
-0x77fcbb25
-0x77fb1aab
-0xed4ae4a1
-0xd6feb687
-0x29b429dd
-0x59563423
-0x0fea86d9
-0xfeffef7f
-0xdbffb795
-0xf5ae049b
-0x653d3811
-0x3dfe4f77
-0x67f4444d
-0xfbfe6c13
-0xfe7dd849
-0xed7fb66f
-0xbffeb005
-0xbb7b4a8b
-0x77fb4781
-0xf82e0467
-0x7fdfdabd
-0xfbba8003
-0xdbe065b9
-0xdfff195f
-0xefbca475
-0xdcefec7b
-0x5adc12f1
-0xffd6d557
-0xbbcded2d
-0xf27b6ff3
-0xfcb92f29
-0xd6ff184f
-0xbfdc94e5
-0x5bfaea6b
-0xddce9a61
-0x7997c247
-0xcbf57b9d
-0xff9e3be3
-0xdfef3499
-0x3bfeb33f
-0xf57d8155
-0x2fef445b
-0x1cf9ddd1
-0x707fcb37
-0x7aed860d
-0x7fc7e3d3
-0x7f597609
-0x3a4eea2f
-0x7d3e69c5
-0x7ffbfa4b
-0xdc3cdd41
-0x77eff027
-0x73fd0c7d
-0xff7f67c3
-0xf9cef379
-0xbcfebd1f
-0x2aee4e35
-0xa2ee0c3b
-0x5f5e98b1
-0x7fbf3117
-0x590f0eed
-0xfd7bc7b3
-0xdd76ace9
-0xffff2c0f
-0xdfbc2ea5
-0x7e7e7a2b
-0x5ece1021
-0x3cf68e07
-0xcffe8d5d
-0xfff603a3
-0x7fb7a259
-0x6fbf36ff
-0x4eff0b15
-0x4eee441b
-0x6bba4391
-0x77ff06f7
-0x6d7e87cd
-0x7caf1b93
-0xb7f8d3c9
-0xffcfddef
-0xa1fde385
-0xfdda6a0b
-0xfefa3301
-0x35e79be7
-0xff9dfe3d
-0x0e360f83
-0xf7e14139
-0x7bfe20df
-0x3d2fb7f5
-0x3ddfebfb
-0x3d3cde71
-0x7ed74cd7
-0x69dff0ad
-0x7ff7df73
-0x7e37eaa9
-0x9eeeffcf
-0x7d7f8865
-0x5d7fc9eb
-0xefe945e1
-0x7f6f19c7
-0xebff5f1d
-0xbf978b63
-0xbf63d019
-0x6eff7abf
-0xa5fc54d5
-0x3eeb03db
-0x8e7e6951
-0xbfbe02b7
-0x7a67498d
-0x7ff21353
-0xf49bf189
-0xc7ce91af
-0xffbd1d45
-0xad9e99cb
-0xf5fb48c1
-0xffef07a7
-0x57deaffd
-0x7df67743
-0x75d74ef9
-0xbe3f449f
-0xd9fce1b5
-0x755f8bbb
-0xefdee431
-0x5f5f2897
-0x7acc926d
-0xbef3b733
-0xbefce869
-0x6bee938f
-0xbfbea225
-0x7ffed9ab
-0xf9883ba1
-0xb3f76587
-0x8df7f0dd
-0x1d7ad323
-0xfbb3bdd9
-0x3bff7e7f
-0xff7d5e95
-0xfbfb839b
-0x7bfe4f11
-0x1d7ebe77
-0xdee7cb4d
-0x76d6cb13
-0x7952cf49
-0xb5ff056f
-0x537c1705
-0xd7da898b
-0x3e681e81
-0x7b663367
-0x7dff21bd
-0x3ff69f03
-0xeef11cb9
-0xf8fe285f
-0x5bfdcb75
-0x7feaeb7b
-0xeffca9f1
-0xfdfec457
-0x5bd4f42d
-0xfdef4ef3
-0xd7b5a629
-0x7defe74f
-0xbfdd7be5
-0xf7bba96b
-0xedeaf161
-0xed8f7147
-0x5f74429d
-0x6757dae3
-0xffe76b99
-0x9f5f423f
-0xd77e2855
-0x7a6bc35b
-0x37f9f4d1
-0x1bb73a37
-0xfbe40d0d
-0xb7d742d3
-0xef9d6d09
-0x5b2f392f
-0xff3ed0c5
-0x5b7a394b
-0x6f38b441
-0xfdef1f27
-0x7dff537d
-0xf27686c3
-0xfb6eaa79
-0xaffecc1f
-0xeb6e7535
-0x7dee0b3b
-0xfb5e2fb1
-0x6efe2017
-0xfced15ed
-0xfe66a6b3
-0xb5f223e9
-0x7dfefb0f
-0xe7fc15a5
-0xfffe392b
-0xb5e96721
-0x37ff3d07
-0x4efc545d
-0x7bd6a2a3
-0x3dfed959
-0xdd7ec5ff
-0x3ffeb215
-0x6f7bc31b
-0x7fb95a91
-0xfff775f7
-0xecf40ecd
-0xfbf37a93
-0x3afbcac9
-0xf7df2cef
-0x77fd4a85
-0x7cffa90b
-0xdbfd0a01
-0xfcafcae7
-0xf7ff453d
-0x79f22e83
-0xeb8ff839
-0x7f7f2fdf
-0xb66edef5
-0xdefeeafb
-0xf71b7571
-0xff573bd7
-0x7ee4f7ad
-0x5ffbbe73
-0x71b261a9
-0x732fcecf
-0x767e6f65
-0x757e88eb
-0x77eb9ce1
-0xbefec8c7
-0x5efc261d
-0x7dbf2a63
-0x667a0719
-0xd7fe09bf
-0x9afefbd5
-0x6fff82db
-0xa17c8051
-0x81ff71b7
-0x7f37d08d
-0xf36f7253
-0x37dde889
-0xf2fee0af
-0x3dbf8445
-0xb7bad8cb
-0x79ad1fc1
-0xa7fe36a7
-0x575ef6fd
-0x6ffb9643
-0xd7d505f9
-0xdf3f539f
-0x3fff08b5
-0x7f5f8abb
-0x7ffc7b31
-0xd61e1797
-0x7fec996d
-0xb9ae9633
-0xeff65f69
-0xeffe628f
-0xb95c8925
-0xdafa98ab
-0x6b7992a1
-0xbece1487
-0x1ff7b7dd
-0xdfd77223
-0x7378f4d9
-0x9e9f0d7f
-0xebff0595
-0xfeff029b
-0x867b6611
-0xdb7f2d77
-0xedf7524d
-0xb58b2a13
-0xfd73c649
-0xffde546f
-0xff7d7e05
-0x7fdbc88b
-0xefe8f581
-0x5fbe6267
-0x7e9e68bd
-0x7ef2be03
-0x57bdd3b9
-0xb3ff375f
-0xb5fef275
-0x173bea7b
-0xa4b940f1
-0x5efeb357
-0x3f4ffb2d
-0xfcff2df3
-0xcfbe1d29
-0x3abeb64f
-0xedde62e5
-0x15be686b
-0x3fcb4861
-0xbfaf2047
-0x9377099d
-0x1fdf79e3
-0x3ffba299
-0x69dfd13f
-0x7f7ecf55
-0x7ffe425b
-0x2efe0bd1
-0xe736a937
-0xffee940d
-0x6fc2a1d3
-0x75fd6409
-0xffaf882f
-0x7e3f37c5
-0xfd5a784b
-0x5eb88b41
-0x7fee4e27
-0x7efd9a7d
-0x1f77a5c3
-0x3f4a6179
-0x8ebedb1f
-0xefee9c35
-0xd9de0a3b
-0xcf59c6b1
-0xf7bf0f17
-0x9f4f1ced
-0xff2b85b3
-0xa7799ae9
-0x73eeca0f
-0xfe9ffca5
-0x58fff82b
-0xf6b8be21
-0x77dfec07
-0xd93e1b5d
-0x3cd341a3
-0xeda21059
-0x65de54ff
-0x3ffe5915
-0xfc2b421b
-0xeffc7191
-0xfdf7e4f7
-0xeffd95cd
-0x7f97d993
-0xdffac1c9
-0xf9fe7bef
-0xcffcb185
-0x5bdee80b
-0x57ebe101
-0x7feff9e7
-0xffdc8c3d
-0x7e3a4d83
-0x7b7aaf39
-0x29fe3edf
-0xe7ee05f5
-0x5ffbe9fb
-0x4ade0c71
-0xfa572ad7
-0xefddfead
-0x7df79d73
-0x5438d8a9
-0xeeee9dcf
-0x7f7d5665
-0xbfbf47eb
-0x6be9f3e1
-0xbfa677c7
-0xd5fced1d
-0xfbb2c963
-0x19ec3e19
-0x7ffe98bf
-0x6bfda2d5
-0x6bfe01db
-0xb47e9751
-0x5ff6e0b7
-0xe1a4578d
-0x7d4ad153
-0x9afbdf89
-0x1bcf2faf
-0xffbdeb45
-0x7fbf17cb
-0x7faaf6c1
-0x7f6765a7
-0x5b573dfd
-0xfbfab543
-0xe7cebcf9
-0x8ebf629f
-0xfffd2fb5
-0xff6b89bb
-0xffde1231
-0xffdf0697
-0x298ca06d
-0xf7e37533
-0xf0fbd669
-0x7efe318f
-0xfc1e7025
-0x35fe57ab
-0x9e1ee9a1
-0xf7f6c387
-0xd6bf7edd
-0xdaf21123
-0x3fba2bd9
-0xffde9c7f
-0x8e7cac95
-0x7bfe819b
-0xbbbc7d11
-0xff779c77
-0x50e6d94d
-0x2e1b8913
-0x5fd0bd49
-0x2fcfa36f
-0xdffee505
-0x3b7f078b
-0xc3edcc81
-0xf92e9167
-0x7bbdafbd
-0xbff6dd03
-0x3ec68ab9
-0x9ffe465f
-0x1ebc1975
-0xefdee97b
-0x7fd9d7f1
-0x8fd6a257
-0xdb4f022d
-0xdf6b0cf3
-0xfff29429
-0xfbbf854f
-0x77df49e5
-0x6fff276b
-0xffef9f61
-0xdedecf47
-0x3b7dd09d
-0xdf3f18e3
-0xfaebd999
-0x757e603f
-0x5d7f7655
-0x79fec15b
-0x3ffe22d1
-0xf3b61837
-0x63fd1b0d
-0xfeca00d3
-0xf5b95b09
-0xf5cfd72f
-0x2b3f9ec5
-0xf89eb74b
-0x5d2c6241
-0xf3e77d27
-0x5bf7e17d
-0x4af2c4c3
-0x7d621879
-0x79feea1f
-0x73eec335
-0x77de093b
-0x38d95db1
-0x3a97fe17
-0x672523ed
-0xffae64b3
-0xba7d11e9
-0xff6e990f
-0xffdfe3a5
-0x77ffb72b
-0x4fbc1521
-0x3fde9b07
-0x7e37e25d
-0xefdbe0a3
-0x7fe14759
-0xbfdfe3ff
-0xfffe0015
-0xff7ac11b
-0xf7bb8891
-0xf7fe53f7
-0x76671ccd
-0xeb963893
-0x3bf5b8c9
-0x1fffcaef
-0x6ffc1885
-0x26fa270b
-0x3c060800
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000004
-0x00210400
-0x00000000
-0x00000000
-0x00000004
-0x00210404
-0x00000000
-0x00000000
-0x00000004
-0x00210408
-0x00000001
-0x00000000
-0x00000004
-0x0021040c
-0xe00003c0
-0x00000000
-0x00000004
-0x00210410
-0xe00003c0
-0x00000000
-0x00000004
-0x00210418
-0x00000400
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
-0x00000000
diff --git a/src/test/test2/test2_little.blob b/src/test/test2/test2_little.blob
deleted file mode 100644 (file)
index 48e08cc..0000000
Binary files a/src/test/test2/test2_little.blob and /dev/null differ
diff --git a/src/test/test2/test2im.hex b/src/test/test2/test2im.hex
deleted file mode 100644 (file)
index 341f8ef..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-\ 2
-$Ae0000000,
-00 C8 A1 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13 EA 59 86 77 35 77 
-C0 00 11 11 B5 D6 20 46 46 46 85 77 D0 28 36 64 81 FF FF A8 E3 40 01 48 
-81 FF FF E8 80 0F EA 58 06 60 A3 58 60 46 AB BA 00 00 34 10 02 28 02 64 
-02 28 90 5A E1 00 80 40 C1 C6 65 C6 01 82 01 62 01 AD 40 78 01 8D 60 58 
-01 8D 8F 78 05 0C 80 58 00 28 20 64 E0 30 00 00 CF FF FC 91 C2 28 02 64 
-C0 00 2C 10 C2 28 90 5A 01 80 0F D8 C5 8C 0F D8 C3 0C 0F D8 01 FF FF A8 
-01 FF FF E8 00 0F EA 58 20 46 48 2A D0 0C 02 64 95 0C 1F DA 80 04 A3 58 
-90 00 1F DB E0 80 80 30 8C 6E 04 3A 6C 6E 00 6F 01 83 01 62 00 28 32 E6 
-01 2B 6C 6E 20 00 03 62 0C 6E 6C 6E EA 60 90 00 05 3C 33 E5 01 B4 1F DA 
-00 0C 03 63 06 3C 33 E4 05 3C 52 E6 00 00 60 00 00 00 00 00 00 00 00 00 
-01 82 04 29 05 BC 54 F4 01 80 10 E8 01 8C 02 64 02 FC A3 5A 02 7F FF AA 
-02 7F FF EA 02 94 8A 7A 01 8C 0A 58 05 3C 22 F4 06 EB B5 A9 21 82 06 28 
-30 10 03 63 21 80 10 E8 21 8C 02 64 E0 80 80 20 2C 6E 46 46 01 82 01 62 
-01 82 06 28 01 80 10 E8 01 8C 02 64 0C 6E 4C 6E 00 0C 13 62 E4 20 00 00 
-01 81 81 62 02 02 02 2A 02 00 10 EA 85 06 10 0D 04 BB 4C 6E 20 00 03 62 
-00 00 60 00 E3 00 80 00 01 81 01 62 01 82 00 28 01 80 10 E8 00 0C 02 64 
-04 BA 6C 6E C0 00 13 62 00 00 60 00 E2 00 80 00 01 81 01 62 01 82 08 28 
-01 80 10 E8 01 8C 02 64 00 0C 13 62 01 86 81 62 10 00 44 12 E0 10 00 00 
-00 00 A1 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 18 29 F1 00 98 47 A1 04 04 A3 58 C1 90 36 A5 
-C4 00 01 29 04 90 1F D8 82 90 56 A7 84 A5 0A 25 00 18 79 A3 01 18 87 A0 
-A8 10 37 B5 14 4E A2 56 00 84 A3 5A 23 90 37 A5 20 03 E1 A3 E1 00 00 C0 
-01 00 68 DA 60 0C 03 63 28 90 37 A7 20 03 E0 5A C1 94 36 35 C0 80 40 43 
-D8 6F 52 C7 E8 00 10 00 82 94 56 37 84 88 2A B4 A8 14 37 55 00 20 0F D8 
-C3 94 37 75 C0 03 E1 A0 00 83 80 01 C8 94 37 76 03 90 37 A4 00 00 40 00 
-00 00 00 00 00 03 40 01 03 94 37 74 00 8C A3 62 00 00 00 00 00 00 00 00 
-07 BF 00 5A 02 00 A3 5A 02 00 00 7E BC 45 2C 6E 00 00 20 00 01 82 0C 28 
-01 80 10 E8 E1 00 00 00 01 8C 02 64 9D 89 6C 6E 30 28 A1 20 03 02 80 2A 
-03 70 00 6B 02 00 00 6F B5 5D A2 47 E8 40 00 00 A2 41 6C 6E 02 00 00 7E 
-BC 4D 2C 6E 26 41 6C 6E 2C 6E BC 45 01 82 0C 28 01 80 10 E8 E3 A0 00 00 
-01 8C 02 64 00 00 60 00 00 10 78 F8 CF F3 A1 20 00 04 A1 20 00 00 00 00 
-00 00 00 00 00 00 00 00 07 81 FE 2A 07 80 10 EA 07 BF 09 F2 07 02 0A 2A 
-07 00 10 EA 02 00 20 2A 02 70 00 6A 00 10 03 62 02 0B 00 28 01 83 41 62 
-02 70 00 68 01 81 C0 28 01 F0 00 68 00 00 00 00 00 0C 13 62 01 88 81 62 
-02 00 90 2A 02 70 00 6A 00 10 03 62 01 85 61 62 02 04 A3 58 00 05 A1 20 
-00 00 00 00 00 00 00 00 02 FF FF A8 02 FF FF E9 02 81 50 2A 02 F0 00 6B 
-96 E9 FE 27 02 EF 62 C6 32 0C 02 65 E6 00 06 00 02 00 A3 58 01 80 A3 58 
-31 94 80 58 00 00 00 00 02 0C 1F DA 00 00 00 00 00 00 00 00 00 00 00 00 
-00 8C A3 62 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 01 A1 20 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 7E FE B0 E7 E4 FF 9B 3D DF FB 74 83 BE FB AE 39 
-BF FE D5 DF 33 FF F4 F5 2F 9E F0 FB 45 9F EB 71 DF FF A1 D7 FB DE CD AD 
-7B F2 84 73 BF 77 97 A9 75 6E F4 CF 7F 5D 05 65 66 BA 0E EB 6F 59 92 E1 
-5E 56 AE C7 7E FF 7C 1D FF 97 70 63 7D F8 BD 19 7B DE AF BF 36 AF 11 D5 
-FF EE 88 DB 3F 7B F6 51 FF B6 D7 B7 CB BC A6 8D 70 E3 38 53 7F F6 1E 89 
-FE DF 06 AF 5F BD 1A 45 75 9F 5E CB 6F BE 15 C1 61 67 1C A7 5F 5D 4C FD 
-3F FA DC 43 76 E6 BB F9 37 FE F9 9F FE EE 1E B5 79 6B 90 BB FB DE F1 31 
-DF 56 7D 97 BF F4 6F 6D F7 FB 5C 33 FF F1 95 69 FB EF 88 8F FF DD 1F 25 
-BD FE 1E AB 7B CD 88 A1 7F FF FA 87 FF BD 0D DD 6F D3 B8 23 6F BD AA D9 
-1E 9F B3 7F 6F FD 1B 95 5C AE 08 9B 5F B8 DC 11 7F F6 93 77 3F FE 28 4D 
-EF 32 F0 13 7F 71 FC 49 FF 5E 7A 6F 3B FD 14 05 7E 7E 4E 8B FF 7F EB 81 
-FE 3F 48 67 6E 16 BE BD FF BA 04 03 FF F5 89 B9 7F FE DD 5F 67 FC 08 75 
-70 BB F0 7B 4F F9 B6 F1 CE DF 19 57 7E 5D D1 2D FF 63 F3 F3 5A BF 53 29 
-7F BF DC 4F 5F DC F8 E5 FF BF EE 6B 5D CD 3E 61 6D B7 06 47 7F 7E 5F 9D 
-BD 9F BF E3 3D E6 58 99 BF 7E 77 3F 3D 3E E5 55 BB EB 48 5B FD F9 81 D1 
-34 76 0F 37 6C FF 6A 0D 6D E2 67 D3 BF F1 9A 09 CE BF AE 2F EF 3C CD C5 
-FF BA FE 4B 7C 2D 81 41 4E E7 34 27 57 D7 F0 7D FB 72 EB C3 FD E8 17 79 
-1C FE 81 1F BD 6D B2 35 37 DE 10 3B 17 F8 3C B1 F5 BF 75 17 4D 5E F2 ED 
-D7 66 4B B3 F7 F0 D0 E9 7D EF F0 0F FC 9C 92 A5 EF FF 7E 2B 57 D8 B4 21 
-F4 FF D2 07 FF FF 71 5D EE FB 87 A3 DA F2 C6 59 E6 9E FA FF E4 CC 6F 15 
-E6 AE 48 1B 1F BD E7 91 FF F7 4A F7 5F F4 6B CD 9F AB 9F 93 EF D4 F7 C9 
-FE EE A1 EF F6 FC 47 85 7D FF 6E 0B 7D FE D7 01 7D BE DF E7 EF F4 E2 3D 
-7E 7B 93 83 FF 7E 65 39 FF FF E4 DF BF 7F 1B F5 BF FB EF FB DE DA 82 71 
-6C F7 90 D7 7D F7 D4 AD 73 EA 63 73 97 76 0E A9 EE 7F C3 CF FB 7F EC 65 
-9F BA CD EB 77 EF E9 E1 53 56 5D C7 FF F4 43 1D FB D3 0F 63 E7 62 F4 19 
-BE FF 3E BF 19 CD B8 D5 CB EF 07 DB 77 FE 0D 51 EF FE 46 B7 1F FD 2D 8D 
-DB 56 97 53 ED 9C 15 89 1D 8F 55 AF FF BF 81 45 7A FF 9D CB 7B EB EC C1 
-FE E6 4B A7 4A 75 93 FD 69 F3 FB 43 95 F8 72 F9 72 BF 08 9F 7D EC 45 B5 
-1E 5F 8F BB 5D D8 88 31 5B 97 6C 97 7E A4 76 6D FF AA 3B 33 FE FF 0C 69 
-77 EF 57 8F 4A 9F 06 25 13 FF DD AB BD 1A DF A1 75 C6 A9 87 AD FC D4 DD 
-7C D6 57 23 FE 76 E1 D9 77 BF 42 7F 7B 4E C2 95 7F FF 87 9B 37 79 F3 11 
-FF 77 02 77 7E E5 AF 4D 6A 9B 4F 13 F5 76 F3 49 55 6F C9 6F DE 7E 7B 05 
-3F 7B 8D 8B FE 7C C2 81 5F 27 77 67 7F 5E 05 BD 3F F6 23 03 1B 96 40 B9 
-3E FF EC 5F F7 FD 2F 75 4B 3E EF 7B B5 9A 4D F1 DF D7 08 57 7F 6C D8 2D 
-FB 67 D2 F3 2F FB CA 29 C1 AE AB 4F 37 DD DF E5 5E FE AD 6B EA C9 95 61 
-7B C6 B5 47 37 F5 26 9D 7F DB 5E E3 DC EE 8F 99 F6 7F 06 3F 6B 4F 8C 55 
-D6 FB C7 5B EF F9 98 D1 FF 3F 7E 37 AF FD F1 0D EF FF C6 D3 2A 35 91 09 
-BF 3F FD 2F 6F 3D 34 C5 FF BF 3D 4B 73 39 58 41 9F F6 63 27 5B DE 37 7D 
-EF FA 0A C3 3F 57 CE 79 F7 BE 90 1F FF 7D D9 35 DD EE 0F 3B E7 FF D3 B1 
-4C F6 64 17 D6 4C F9 ED F9 E3 2A B3 EB 7C 47 E9 EE FF BF 0F 5F DC 79 A5 
-5D FF 3D 2B 7F FC 0B 21 FB 56 81 07 47 FD 38 5D ED FA 26 A3 5D E9 FD 59 
-2D FE 89 FF F3 DC 16 15 FF AB C7 1B 7B BC FE 91 F5 F7 B9 F7 EC 75 F2 CD 
-77 83 FE 93 7F D7 EE C9 19 CF F0 EF BF FF AE 85 7F DA AD 0B 7F F9 AE 01 
-DC B7 0E E7 EA D6 29 3D 57 77 B2 83 7E 3D 1C 39 FB FE F3 DF F8 EE 42 F5 
-5C AA EE FB 6B D9 19 71 7F 77 7F D7 30 C4 DB AD 6F FA 42 73 EF F0 85 A9 
-FF 2E 92 CF C4 7E D3 65 FE 3B 8C EB EF 4A 40 E1 7F 76 0C C7 4B F5 0A 1D 
-75 FA AE 63 DE 69 2B 19 27 FF CD BF FE DC 5F D5 F7 EB 86 DB 7F FC 24 51 
-74 B7 B5 B7 5F FD B4 8D 1F E3 F6 53 5B FE 0C 89 7D CF A4 AF A9 BD E8 45 
-3B BF DC CB 7D AD C3 C1 57 67 7A A7 7F F5 DA FD 97 F7 1A 43 EE C6 29 F9 
-EF 3F 17 9F BD FE 6C B5 BF 5F 8E BB EF FE 1F 31 77 DE 5B 97 35 D4 7D 6D 
-CF F3 1A 33 E1 F8 83 69 69 FF 26 8F 2D 5C ED 25 7E FB 9C AB FF 1C 36 A1 
-FB E7 58 87 6F BC 9B DD EF F6 F6 23 AF 6C 18 D9 E3 DE D1 7F 5D DC 69 95 
-BE BB 06 9B 7A FF 0A 11 A7 7F 71 77 E7 E5 36 4D ED DF AE 13 7C 57 EA 49 
-2F 4F 18 6F 69 7F E2 05 FF FE CC 8B A9 ED 99 81 FA EF A6 67 7E FD 4C BD 
-7B F2 42 03 75 F2 F7 B9 17 FE FB 5F 6F EE 56 75 F6 1F EE 7B 77 FE E4 F1 
-58 D6 F7 57 03 FF DF 2D EE E7 B1 F3 FE F4 41 29 7C BF 7A 4F 55 DE C6 E5 
-AF BB 6C 6B F7 F9 EC 61 63 EE 64 47 A6 FF ED 9D 72 DE FD E3 73 F2 C6 99 
-7F 7F 95 3F EF 6C 33 55 F3 FE 46 5B DF FD AF D1 BA 3E ED 37 FE BC 78 0D 
-43 FB 25 D3 D7 B5 88 09 FF 4E 4C 2F F2 3D 9B C5 A9 1F 7C 4B FE B9 2F 41 
-5F FF 92 27 5E FC 7E 7D 21 7B 29 C3 7B 43 85 79 EB FE 9F 1F 63 EE 00 35 
-6C EE 0E 3B 7B DB 6A B1 DB BF 53 17 BB BF 00 ED EB 3A 09 B3 FF F3 BE E9 
-7F FF 8E 0F 3F BC 60 A5 FD 7A FC 2B ED DB 62 21 56 C7 30 07 D7 7E FF 5D 
-52 F6 C5 A3 56 FD 34 59 FB FE 18 FF C7 EF BD 15 5F 2F 46 1B 47 B8 15 91 
-EE F6 28 F7 E3 6F 79 CD E2 B6 5D 93 F7 F6 E5 C9 4F FF 3F EF 3E FF 15 85 
-FF DF EC 0B 5A F8 85 01 3F A7 3D E7 ED BF 70 3D DD 7F D1 83 6F 37 D3 39 
-7F FE 02 DF 7B 3D 69 F5 FF AF ED FB FE 9B B0 71 FF D7 6E D7 F7 D5 E2 AD 
-7F EA 21 73 7D 76 FC A9 5F 7F 61 CF F7 7D BA 65 7F FE 4B EB 1D 58 97 E1 
-6F AF BB C7 ED FD D1 1D 4F FE 4D 63 7D 6B 62 19 F7 DE 5C BF FF EF 06 D5 
-FE EE 05 DB 6F FE 3B 51 1F B7 24 B7 D5 3E 3B 8D B5 CB 55 53 DE 9C 03 89 
-7F AF F3 AF 6B BC 4F 45 F7 DE 1B CB FF BB 9A C1 EF 66 A9 A7 6F FE 21 FD 
-FF F6 39 43 FB CF E0 F9 D8 7F 26 9F 3F EC 93 B5 7B 4B 8D BB 83 DF B6 31 
-F9 37 4A 97 F5 84 84 6D C8 B7 F9 33 D6 FD FA 69 ED EE F5 8F 57 3E D4 25 
-FF FF 5B AB 77 D9 8D A1 DF E6 07 87 9E FC 62 DD FF 7F 95 23 7A 7D 4F D9 
-6D 9E 60 7F F8 6E 10 95 F5 AA 85 9B 6D 38 21 11 73 F7 E0 77 4E FC BD 4D 
-77 02 0D 13 DF D4 E1 49 7E 5E 67 6F 6E FD 49 05 DD FA 0B 8B 7F EA 70 81 
-65 EF D5 67 7F 34 93 BD BD F6 61 03 7B 8B AE B9 F2 FE 0A 5F 8C AF 7D 75 
-5F 5A ED 7B EF 9F 7B F1 73 FE E6 57 EF 46 E6 2D E7 E3 90 F3 FD B8 B8 29 
-3F BE 49 4F 7F DF AD E5 03 FE 2B 6B 7E DE 43 61 7E B6 13 47 57 7E B4 9D 
-FF D2 9C E3 7F F2 FD 99 FB 7E 24 3F D9 6C DA 55 5F EA C5 5B F9 FD C6 D1 
-A7 3E 5C 37 7F B6 FF 0D FF D2 84 D3 5E 71 7F 09 1D FE 9B 2F DD 3E 02 C5 
-7F DB BB 4B CF 3D 06 41 F7 EE C1 27 5F F6 C5 7D 5D 76 48 C3 BD 6B 3C 79 
-FD FE AE 1F C7 7E 27 35 27 FE 0D 3B ED 5B 01 B1 F7 BE 42 17 5E A5 07 ED 
-E6 6A E8 B3 FF F7 35 E9 2B 6F 5D 0F 79 FC 47 A5 FF 7A BB 2B FB FE B9 21 
-3D 4F DF 07 49 74 C6 5D FF DF 64 A3 FB AC 6B 59 3B 7F A7 FF 7D EF 64 15 
-37 EA C5 1B 7F BF 2C 91 7F F6 97 F7 37 ED 00 CD FF C2 BC 93 56 F1 DC C9 
-6F DE 8E EF DF FE 7C 85 FA FB 2B 0B DD EB 5C 01 BE B7 6C E7 FB BC B7 3D 
-EF 73 F0 83 9A 6E 8A 39 6A 7F 11 DF BF AC 90 F5 DE 9A EC FB B7 FA 47 71 
-1F FF 5D D7 E6 DE E9 AD 7E F2 00 73 6F 39 73 A9 FF 6E 30 CF 0B 7C A1 65 
-BE FB 0A EB 72 5A EE E1 74 FF 6A C7 4D F6 98 1D EB DB EC 63 1F E9 99 19 
-FD DE EB BF EE FD AD D5 5B FA 84 DB 7B 7C 52 51 FA F6 93 B7 DF 36 C2 8D 
-FD D2 B4 53 45 F5 FA 89 BE AE 42 AF F7 BE B6 45 F3 DA 5A CB B7 FD 71 C1 
-6D F7 D8 A7 55 D6 68 FD FD FF 58 43 6E D5 97 F9 CF FF 35 9F 7E EE BA B5 
-DF 4B 8C BB 7F FD 4D 31 FC B6 39 97 F7 AC 8B 6D DB F6 D8 33 C7 FF 71 69 
-77 FE C4 8F 77 FC BB 25 77 FB 1A AB ED 4A E4 A1 D6 FE B6 87 29 B4 29 DD 
-59 56 34 23 0F EA 86 D9 FE FF EF 7F DB FF B7 95 F5 AE 04 9B 65 3D 38 11 
-3D FE 4F 77 67 F4 44 4D FB FE 6C 13 FE 7D D8 49 ED 7F B6 6F BF FE B0 05 
-BB 7B 4A 8B 77 FB 47 81 F8 2E 04 67 7F DF DA BD FB BA 80 03 DB E0 65 B9 
-DF FF 19 5F EF BC A4 75 DC EF EC 7B 5A DC 12 F1 FF D6 D5 57 BB CD ED 2D 
-F2 7B 6F F3 FC B9 2F 29 D6 FF 18 4F BF DC 94 E5 5B FA EA 6B DD CE 9A 61 
-79 97 C2 47 CB F5 7B 9D FF 9E 3B E3 DF EF 34 99 3B FE B3 3F F5 7D 81 55 
-2F EF 44 5B 1C F9 DD D1 70 7F CB 37 7A ED 86 0D 7F C7 E3 D3 7F 59 76 09 
-3A 4E EA 2F 7D 3E 69 C5 7F FB FA 4B DC 3C DD 41 77 EF F0 27 73 FD 0C 7D 
-FF 7F 67 C3 F9 CE F3 79 BC FE BD 1F 2A EE 4E 35 A2 EE 0C 3B 5F 5E 98 B1 
-7F BF 31 17 59 0F 0E ED FD 7B C7 B3 DD 76 AC E9 FF FF 2C 0F DF BC 2E A5 
-7E 7E 7A 2B 5E CE 10 21 3C F6 8E 07 CF FE 8D 5D FF F6 03 A3 7F B7 A2 59 
-6F BF 36 FF 4E FF 0B 15 4E EE 44 1B 6B BA 43 91 77 FF 06 F7 6D 7E 87 CD 
-7C AF 1B 93 B7 F8 D3 C9 FF CF DD EF A1 FD E3 85 FD DA 6A 0B FE FA 33 01 
-35 E7 9B E7 FF 9D FE 3D 0E 36 0F 83 F7 E1 41 39 7B FE 20 DF 3D 2F B7 F5 
-3D DF EB FB 3D 3C DE 71 7E D7 4C D7 69 DF F0 AD 7F F7 DF 73 7E 37 EA A9 
-9E EE FF CF 7D 7F 88 65 5D 7F C9 EB EF E9 45 E1 7F 6F 19 C7 EB FF 5F 1D 
-BF 97 8B 63 BF 63 D0 19 6E FF 7A BF A5 FC 54 D5 3E EB 03 DB 8E 7E 69 51 
-BF BE 02 B7 7A 67 49 8D 7F F2 13 53 F4 9B F1 89 C7 CE 91 AF FF BD 1D 45 
-AD 9E 99 CB F5 FB 48 C1 FF EF 07 A7 57 DE AF FD 7D F6 77 43 75 D7 4E F9 
-BE 3F 44 9F D9 FC E1 B5 75 5F 8B BB EF DE E4 31 5F 5F 28 97 7A CC 92 6D 
-BE F3 B7 33 BE FC E8 69 6B EE 93 8F BF BE A2 25 7F FE D9 AB F9 88 3B A1 
-B3 F7 65 87 8D F7 F0 DD 1D 7A D3 23 FB B3 BD D9 3B FF 7E 7F FF 7D 5E 95 
-FB FB 83 9B 7B FE 4F 11 1D 7E BE 77 DE E7 CB 4D 76 D6 CB 13 79 52 CF 49 
-B5 FF 05 6F 53 7C 17 05 D7 DA 89 8B 3E 68 1E 81 7B 66 33 67 7D FF 21 BD 
-3F F6 9F 03 EE F1 1C B9 F8 FE 28 5F 5B FD CB 75 7F EA EB 7B EF FC A9 F1 
-FD FE C4 57 5B D4 F4 2D FD EF 4E F3 D7 B5 A6 29 7D EF E7 4F BF DD 7B E5 
-F7 BB A9 6B ED EA F1 61 ED 8F 71 47 5F 74 42 9D 67 57 DA E3 FF E7 6B 99 
-9F 5F 42 3F D7 7E 28 55 7A 6B C3 5B 37 F9 F4 D1 1B B7 3A 37 FB E4 0D 0D 
-B7 D7 42 D3 EF 9D 6D 09 5B 2F 39 2F FF 3E D0 C5 5B 7A 39 4B 6F 38 B4 41 
-FD EF 1F 27 7D FF 53 7D F2 76 86 C3 FB 6E AA 79 AF FE CC 1F EB 6E 75 35 
-7D EE 0B 3B FB 5E 2F B1 6E FE 20 17 FC ED 15 ED FE 66 A6 B3 B5 F2 23 E9 
-7D FE FB 0F E7 FC 15 A5 FF FE 39 2B B5 E9 67 21 37 FF 3D 07 4E FC 54 5D 
-7B D6 A2 A3 3D FE D9 59 DD 7E C5 FF 3F FE B2 15 6F 7B C3 1B 7F B9 5A 91 
-FF F7 75 F7 EC F4 0E CD FB F3 7A 93 3A FB CA C9 F7 DF 2C EF 77 FD 4A 85 
-7C FF A9 0B DB FD 0A 01 FC AF CA E7 F7 FF 45 3D 79 F2 2E 83 EB 8F F8 39 
-7F 7F 2F DF B6 6E DE F5 DE FE EA FB F7 1B 75 71 FF 57 3B D7 7E E4 F7 AD 
-5F FB BE 73 71 B2 61 A9 73 2F CE CF 76 7E 6F 65 75 7E 88 EB 77 EB 9C E1 
-BE FE C8 C7 5E FC 26 1D 7D BF 2A 63 66 7A 07 19 D7 FE 09 BF 9A FE FB D5 
-6F FF 82 DB A1 7C 80 51 81 FF 71 B7 7F 37 D0 8D F3 6F 72 53 37 DD E8 89 
-F2 FE E0 AF 3D BF 84 45 B7 BA D8 CB 79 AD 1F C1 A7 FE 36 A7 57 5E F6 FD 
-6F FB 96 43 D7 D5 05 F9 DF 3F 53 9F 3F FF 08 B5 7F 5F 8A BB 7F FC 7B 31 
-D6 1E 17 97 7F EC 99 6D B9 AE 96 33 EF F6 5F 69 EF FE 62 8F B9 5C 89 25 
-DA FA 98 AB 6B 79 92 A1 BE CE 14 87 1F F7 B7 DD DF D7 72 23 73 78 F4 D9 
-9E 9F 0D 7F EB FF 05 95 FE FF 02 9B 86 7B 66 11 DB 7F 2D 77 ED F7 52 4D 
-B5 8B 2A 13 FD 73 C6 49 FF DE 54 6F FF 7D 7E 05 7F DB C8 8B EF E8 F5 81 
-5F BE 62 67 7E 9E 68 BD 7E F2 BE 03 57 BD D3 B9 B3 FF 37 5F B5 FE F2 75 
-17 3B EA 7B A4 B9 40 F1 5E FE B3 57 3F 4F FB 2D FC FF 2D F3 CF BE 1D 29 
-3A BE B6 4F ED DE 62 E5 15 BE 68 6B 3F CB 48 61 BF AF 20 47 93 77 09 9D 
-1F DF 79 E3 3F FB A2 99 69 DF D1 3F 7F 7E CF 55 7F FE 42 5B 2E FE 0B D1 
-E7 36 A9 37 FF EE 94 0D 6F C2 A1 D3 75 FD 64 09 FF AF 88 2F 7E 3F 37 C5 
-FD 5A 78 4B 5E B8 8B 41 7F EE 4E 27 7E FD 9A 7D 1F 77 A5 C3 3F 4A 61 79 
-8E BE DB 1F EF EE 9C 35 D9 DE 0A 3B CF 59 C6 B1 F7 BF 0F 17 9F 4F 1C ED 
-FF 2B 85 B3 A7 79 9A E9 73 EE CA 0F FE 9F FC A5 58 FF F8 2B F6 B8 BE 21 
-77 DF EC 07 D9 3E 1B 5D 3C D3 41 A3 ED A2 10 59 65 DE 54 FF 3F FE 59 15 
-FC 2B 42 1B EF FC 71 91 FD F7 E4 F7 EF FD 95 CD 7F 97 D9 93 DF FA C1 C9 
-F9 FE 7B EF CF FC B1 85 5B DE E8 0B 57 EB E1 01 7F EF F9 E7 FF DC 8C 3D 
-7E 3A 4D 83 7B 7A AF 39 29 FE 3E DF E7 EE 05 F5 5F FB E9 FB 4A DE 0C 71 
-FA 57 2A D7 EF DD FE AD 7D F7 9D 73 54 38 D8 A9 EE EE 9D CF 7F 7D 56 65 
-BF BF 47 EB 6B E9 F3 E1 BF A6 77 C7 D5 FC ED 1D FB B2 C9 63 19 EC 3E 19 
-7F FE 98 BF 6B FD A2 D5 6B FE 01 DB B4 7E 97 51 5F F6 E0 B7 E1 A4 57 8D 
-7D 4A D1 53 9A FB DF 89 1B CF 2F AF FF BD EB 45 7F BF 17 CB 7F AA F6 C1 
-7F 67 65 A7 5B 57 3D FD FB FA B5 43 E7 CE BC F9 8E BF 62 9F FF FD 2F B5 
-FF 6B 89 BB FF DE 12 31 FF DF 06 97 29 8C A0 6D F7 E3 75 33 F0 FB D6 69 
-7E FE 31 8F FC 1E 70 25 35 FE 57 AB 9E 1E E9 A1 F7 F6 C3 87 D6 BF 7E DD 
-DA F2 11 23 3F BA 2B D9 FF DE 9C 7F 8E 7C AC 95 7B FE 81 9B BB BC 7D 11 
-FF 77 9C 77 50 E6 D9 4D 2E 1B 89 13 5F D0 BD 49 2F CF A3 6F DF FE E5 05 
-3B 7F 07 8B C3 ED CC 81 F9 2E 91 67 7B BD AF BD BF F6 DD 03 3E C6 8A B9 
-9F FE 46 5F 1E BC 19 75 EF DE E9 7B 7F D9 D7 F1 8F D6 A2 57 DB 4F 02 2D 
-DF 6B 0C F3 FF F2 94 29 FB BF 85 4F 77 DF 49 E5 6F FF 27 6B FF EF 9F 61 
-DE DE CF 47 3B 7D D0 9D DF 3F 18 E3 FA EB D9 99 75 7E 60 3F 5D 7F 76 55 
-79 FE C1 5B 3F FE 22 D1 F3 B6 18 37 63 FD 1B 0D FE CA 00 D3 F5 B9 5B 09 
-F5 CF D7 2F 2B 3F 9E C5 F8 9E B7 4B 5D 2C 62 41 F3 E7 7D 27 5B F7 E1 7D 
-4A F2 C4 C3 7D 62 18 79 79 FE EA 1F 73 EE C3 35 77 DE 09 3B 38 D9 5D B1 
-3A 97 FE 17 67 25 23 ED FF AE 64 B3 BA 7D 11 E9 FF 6E 99 0F FF DF E3 A5 
-77 FF B7 2B 4F BC 15 21 3F DE 9B 07 7E 37 E2 5D EF DB E0 A3 7F E1 47 59 
-BF DF E3 FF FF FE 00 15 FF 7A C1 1B F7 BB 88 91 F7 FE 53 F7 76 67 1C CD 
-EB 96 38 93 3B F5 B8 C9 1F FF CA EF 6F FC 18 85 26 FA 27 0B 3C 06 08 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 21 04 00 
-00 00 00 00 00 00 00 00 00 00 00 04 00 21 04 04 00 00 00 00 00 00 00 00 
-00 00 00 04 00 21 04 08 00 00 00 01 00 00 00 00 00 00 00 04 00 21 04 0C 
-E0 00 03 C0 00 00 00 00 00 00 00 04 00 21 04 10 E0 00 03 C0 00 00 00 00 
-00 00 00 04 00 21 04 18 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-\ 3
\ No newline at end of file
diff --git a/src/util/bconvert/bconvert b/src/util/bconvert/bconvert
deleted file mode 100755 (executable)
index 70491d9..0000000
Binary files a/src/util/bconvert/bconvert and /dev/null differ
diff --git a/src/util/bconvert/bconvert64x b/src/util/bconvert/bconvert64x
deleted file mode 100755 (executable)
index 06b2a0e..0000000
Binary files a/src/util/bconvert/bconvert64x and /dev/null differ
index 820c24ec0165a3fd1678d0c46a25c39f713d5734..74070dfe1a9a712340457522aa08dbc4a3257ebc 100644 (file)
@@ -8,3 +8,9 @@ bconvert: bconvert.c
 bconvert64x: bconvert64x.c
        gcc -o bconvert64x bconvert64x.c
 
+
+clean:
+       rm -rf bconvert.exe bconvert64x.exe
+
+
+
index cc55f7e32c8b1adc77f1800fcaae12b9c0100bc4..afbdb47e66e99e06bfd02a770df5cfddfb31b6ee 100644 (file)
@@ -1,4 +1,4 @@
-all: b2ccs.exe b2i2c.exe ccs2b.exe bfaddsect.exe bfmerge.exe
+all: b2ccs.exe b2i2c.exe ccs2b.exe bfaddsect.exe bfmerge.exe ccs2bin.exe
 
 
 b2ccs.exe: b2ccs.c
@@ -15,3 +15,11 @@ bfaddsect.exe: bfaddsect.c
 
 bfmerge.exe: bfmerge.c
        gcc -o bfmerge bfmerge.c
+
+
+ccs2bin.exe: ccs2bin.c
+       gcc -o ccs2bin ccs2bin.c
+
+
+clean:
+       -rm -f b2ccs.exe b2i2c.exe ccs2b.exe bfaddsect.exe bfmerge.exe ccs2bin.exe
index c0caae1af489abfbf7704f3794c7efd9fed23399..f732af53ccfb1ee509e20c9581436495ff09609a 100644 (file)
@@ -47,6 +47,7 @@ $(MODULES):
 
 clean2: $(CLEAN_MODULES)
        @rm -f $(OBJS)
+       @rm -f $(subst .c,.dc,$(CSRC))
        
 
 $(CLEAN_MODULES):
index 8b7043e73a2a44f433cad18ef03ae27b0e3c7b6c..0cbdf1f7b194e3afb67a8620680624e3017c9fe1 100644 (file)
  ***************************************************************************************/
 #include "types.h"
 #include "ibl.h"
+#include "nandhwapi.h"
+#include "ecc.h"
+#include "pllapi.h"
+#include "device_nb.h"
 #include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+
+/**
+ *  @brief
+ *      The input file name is hard coded
+ */
+char *fileName = "c:\\flash.bin";
+
 
 /**
  *  @brief
@@ -40,124 +54,103 @@ typedef struct nandWriterInfo_s
     uint8   readCommandPost;    /**< The read command sent after the address */
     bool    postCommand;        /**< If TRUE the post command is sent */
 
-    uint8   blockEraseCommandPre;  /**< The command used to erase a block (sent before the address) */
-    uint8   blockEraseCommandPost; /**< The command used to erase a block (sent after the address) */
-    bool    blockErasePost;        /**< If TRUE the post command is sent */
-
-    uint8   pageWriteCommandPre;   /**< The command used to program a page (sent before the address) */
-    uint8   pageWriteCommandPost;  /**< The command used to program a page (sent after the address) */
-    bool    pageWritePost;         /**< If TRUE the post command is sent */
-
-    char    fileName[132];         /**< The name of the file to burn on the flash */
-
 } nandWriterInfo_t;
 
-
 nandWriterInfo_t nandWriterInfo;
 
 
-
 /**
  *  @brief
- *      The nandDevInfo structure is a subset of the nandWriteInfo, and is seperated
- *      here to use the existing ibl functions for the writer
+ *      Information used only for programming the flash 
  */
-nandDevInfo_t devInfo;
+nandProgramInfo_t nandProgramInfo;
 
-
-int main (void)
+/**
+ *  @brief
+ *    System setup information
+ */
+typedef struct sysSetup_s
 {
-    Uint8  *data;
-    FILE   *fp;
-    Uint32  flen;
-    Int32   ret;
+    Int32 pllPrediv;
+    Int32 pllMult;
+    Int32 pllPostdiv;
 
+}  sysSetup_t;
 
-    /* Prompt the user to initialize the data block */
-    printf ("Initialize the nandWriteInfo structure, press return\n");
-    getchar ();
+sysSetup_t sysSetup;
 
 
-    /* Initialize the nand driver */
-    devInfo.busWidthBits  = nandWriterInfo.busWidthBits;
-    devInfo.pageSizeBytes = nandWriterInfo.pageSizeBytes;
-    devInfo.pageEccBytes  = nandWriterInfo.pageEccBytes;
-    devInfo.pagesPerBlock = nandWriterInfo.pagesPerBlock;
-    devInfo.totalBlocks   = nandWriterInfo.totalBlocks;
-    
-    devInfo.addressBytes = nandWriterInfo.addressBytes;
-    devInfo.lsbFirst     = nandWriterInfo.lsbFirst;
-    devInfo.blockOffset  = nandWriterInfo.blockOffset;
-    devInfo.pageOffset   = nandWriterInfo.pageOffset;
-    devInfo.columnOffset = nandWriterInfo.columnOffset;
-    
-    devInfo.resetCommand    = nandWriterInfo.resetCommand;
-    devInfo.readCommandPre  = nandWriterInfo.readCommandPre;
-    devInfo.readCommandPost = nandWriterInfo.readCommandPost;
-    devInfo.postCommand     = nandWriterInfo.postCommand;
-    
 
+/**
+ * @brief
+ *    Checks for the bad block mark. Returns TRUE if a block is marked bad
+ */
+BOOL checkBadBlockMark (Int32 block)
+{
+  uint8 data[4];
+  Int32 ret;
 
-    /* Open and find the length of the data file */
-    fp = fopen (nandWriterInfo.fileName, "rb");
-    if (fp == NULL)  {
-      printf ("Failed to open file %s\n", nandWriterInfo.fileName);
-      return (-1);
-    }
+  /* A block is marked bad if the first ECC byte on page 1 and page 0 of the block
+   * is not 0xff. These bytes will not be used for ECC checks */
+  ret = nandHwDriverReadBytes (block, 0, nandWriterInfo.pageSizeBytes, 1, &data[0]);
+  if (ret < 0)  {
+    printf ("Fatal error in nandHwDriverReadBytes, exiting\n");
+    exit (-1);
+  }
 
-    fseek (fp, 0l, SEEK_END);
-    flen = ftel (fp);
-    fseek (fp, 0l, SEEK_SET);
+  ret = nandHwDriverReadBytes (block, 1, nandWriterInfo.pageSizeBytes, 1, &data[1]);
+  if (ret < 0)  {
+    printf ("Fatal error in nandHwDriverReadBytes, exiting\n");
+    exit (-1);
+  }
 
-    data = malloc ((nandWriterInfo.pageSizeBytes + nandWriterInfo.pageEccBytes) * sizeof (Uint8));
-    if (data == NULL)  {
-      printf ("Malloc failed on size of %d bytes\n", nandWriterInfo.pageSizeBytes + nandWriterInfo.pageEccBytes);
-      fclose (fp);
-      return (-1);
-    }
-    
-    /* Initialize the programming interface */
-    ret = nandHwDriverInit (&devInfo);
-    if (ret != 0)  {
-        printf ("nandHwDriverInit failed with error code %d\n", ret);
-        free (data);
-        fclose (fp);
-        return (-1);
-    }
+  /* Return TRUE if the block has been marked bad */
+  if ((data[0] != 0xff) || (data[1] != 0xff))  {
+     printf ("Block %d already marked bad, skipping\n", block);
+     return (TRUE);
+  }
 
-    /* Write the flash, verify the results. On read back failure mark
-     * the page as bad and try rewriting again */
-    do  {
 
-        flashNand (fp, flen, data);
+  /* Return FALSE if the block has not been marked bad */
+  return (FALSE);
 
-    }  while (flashVerify (fp, flen, data) == FALSE);
+}
 
+/**
+ *  @brief
+ *      Mark a block as bad. Byte 0 for pages 0 and 1 of the ecc data (extra bytes) are 
+ *      written as non-zero. Both pages are programmed
+ */
+void markBlockBad (Int32 block, Uint8 *pageData)
+{
 
-    free (data);
-    fclose (fp);
-    return (0);
+    /* Set all data bytes to 0xff, only zero the bad block marks */
+    memset (pageData, 0xff, ((nandWriterInfo.pageSizeBytes + nandWriterInfo.pageEccBytes) * sizeof (Uint8)));
+    pageData[nandWriterInfo.pageSizeBytes] = 0;
 
+    /* Write the data to pages 0 and 1 */
+    nandHwDriverWritePage (block, 0, pageData, &nandProgramInfo);
+    nandHwDriverWritePage (block, 1, pageData, &nandProgramInfo);
 }
 
 
-
-void flashNand (FILE *fp, Uint32 flen, Uint8 *data)
+int flashNand (FILE *fp, Uint32 flen, Uint8 *data)
 {
     Uint32 fpos;
     Uint32 rlen;
+    Int32  block;
+    Int32  page;
     Int32  ret;
-    Int32  i;
+    Int32  i, j;
+
+    Int32  eccsPerPage;     /* Number of 256 bytes ecc sections in a page */
 
-    Int32   eccsPerPage;
-    Uint8  *eccData;        /* Points to the 256 bytes of data to compute the ecc */
     Uint8  *eccBytes;       /* Points to the generated ECC data */
 
     /* Reset to the start of the data file */
     fseek (fp, 0l, SEEK_SET);
 
-    /* The ECC size is fixed at 256 bytes */
-    eccsPerPage = nandWriterInfo.pageSizeBytes >> 8;
+    eccsPerPage = nandWriterInfo.pageSizeBytes / eccBytesPerBlock ();
 
 
     /* Program the NAND */
@@ -172,16 +165,25 @@ void flashNand (FILE *fp, Uint32 flen, Uint8 *data)
 
             } while ((block < nandWriterInfo.totalBlocks) && (checkBadBlockMark (block) == TRUE));
 
+            nandHwDriverBlockErase (block, &nandProgramInfo);
+
             page = 0;
         }
 
+        if (block >= nandWriterInfo.totalBlocks)  {
+            printf ("Flash failed: End of device reached\n");
+            free (data);
+            fclose (fp);
+            return (-1);
+        }
+
         /* Initialize the entire page (with ecc bytes) to 0xff. This will preserve the good block
          * mark at the beginning of pages 0 and 1 */
-        memset (data, 0xff, ((nandWriterInfo.pageSizeBytes + nandWriterInfo.eccSizeBytes) * sizeof (Uint8));
+        memset (data, 0xff, ((nandWriterInfo.pageSizeBytes + nandWriterInfo.pageEccBytes) * sizeof (Uint8)));
 
 
         /* Read the data from the file */
-        rlen = nandWriterInfo.pageSizeBytes
+        rlen = nandWriterInfo.pageSizeBytes;
         if (flen - fpos < nandWriterInfo.pageSizeBytes)  {
             rlen = flen - fpos;
         }
@@ -194,16 +196,22 @@ void flashNand (FILE *fp, Uint32 flen, Uint8 *data)
             return (-1);
         }
 
-        /* Compute the ECCs. The ECC location size varies by the ECC algorithm */
-        for (i = 0; i < eccsPerPage; i++)  {
+        /* The page is broken into 256 byte blocks, each has its own ecc data */
+        for (i = 0; i < eccsPerPage; i++)   {
+
+            /* The eccs values are at the end of the page. The very last bytes correspond
+             * to the very last block */
+            j = (eccsPerPage - i) * eccNumBytes ();
 
-            eccData  = &data[i*256];
-            eccBytes = &data[nandWriterInfo.pageSizeBytes + nandWriterInfo.pageEccBytes - ((eccsPerPage - i) * NUM_ECC_BYTES_PER_PAGE)];
-            eccComputeECC (eccData, eccBytes);
+            eccBytes = &data[nandWriterInfo.pageSizeBytes + nandWriterInfo.pageEccBytes - j];
+            eccComputeECC (&data[i * eccBytesPerBlock()], eccBytes);
 
         }
 
-        ret = nandHwWritePage (block, page, data);
+    
+        printf ("Flashing block %d, page %d (%d bytes of %d)\n", block, page, fpos, flen);
+
+        ret = nandHwDriverWritePage (block, page, data, &nandProgramInfo);
         if (ret < 0)  {
             printf ("nandHwWritePage returned error code %d writing block %d, page %d\n", ret, block, page);
             free (data);
@@ -213,6 +221,9 @@ void flashNand (FILE *fp, Uint32 flen, Uint8 *data)
 
     }
 
+
+    return (0);
+
 }    
 
 
@@ -226,7 +237,13 @@ void flashNand (FILE *fp, Uint32 flen, Uint8 *data)
 BOOL flashVerify (FILE *fp, Uint32 flen, Uint8 *data)
 {
     Uint8 *nandData;
-
+    Int32  block;
+    Int32  page;
+    Int32  fpos;
+    Int32  ret;
+    Int32  rlen;
+    Int32  i;
 
     nandData = malloc ((nandWriterInfo.pageSizeBytes + nandWriterInfo.pageEccBytes) * sizeof (Uint8));
     if (nandData == NULL)  {
@@ -253,17 +270,23 @@ BOOL flashVerify (FILE *fp, Uint32 flen, Uint8 *data)
             page = 0;
         }
 
+        if (block >= nandWriterInfo.totalBlocks)  {
+            printf ("Verify failed: End of flash device reached\n");
+            free (nandData);
+            return (TRUE);   /* Return TRUE to allow the program to exit */
+        }
+
 
         /* Read a page of data */
         ret = nandHwDriverReadPage (block, page, nandData);
         if (ret < 0)  {
-            printf ("nandHwDriverReadPage returned error cod %d\n", ret);
+            printf ("nandHwDriverReadPage returned error code %d\n", ret);
             free (nandData);
             return (TRUE);      /* return TRUE to allow the program to exit */
         }
 
         /* Read the data from the file */
-        rlen = nandWriterInfo.pageSizeBytes
+        rlen = nandWriterInfo.pageSizeBytes;
         if (flen - fpos < nandWriterInfo.pageSizeBytes)  {
             rlen = flen - fpos;
         }
@@ -275,23 +298,125 @@ BOOL flashVerify (FILE *fp, Uint32 flen, Uint8 *data)
             return (TRUE);
         }
 
-        if (memcmp (data, nandData, nandWriterInfo.pageSizeBytes)  {
-            printf ("Data verification failed on block %d, page %d, file position %d, file size %d\n", block, page, fpos, flen);
-            printf ("Marking the block as bad and retrying the flash\n");
-            free (nandData);
-            return (FALSE);
+        printf ("Verifying block %d, page %d (%d bytes of %d)\n", block, page, fpos, flen);
+
+        for (i = 0; i < rlen; i++)  {
+            if (data[i] != nandData[i])   {
+                printf ("Failure in block %d, page %d, at byte %d, (at byte %d in the data file) expected 0x%08x, read 0x%08x\n", block, page, i, fpos, data[i], nandData[i]);
+                printf ("marking block %d as bad, re-flash attempted\n");
+                markBlockBad (block, nandData);
+                free (nandData);
+                return (FALSE);
+            }
         }
 
     }
 
+    free (nandData);
+    return (TRUE);
+
 }
 
 
+/**
+ *  @brief
+ *      The nandDevInfo structure is a subset of the nandWriteInfo, and is seperated
+ *      here to use the existing ibl functions for the writer
+ */
+nandDevInfo_t devInfo;
+
+
+int main (void)
+{
+    Uint8  *data;
+    FILE   *fp;
+    Uint32  flen;
+    Int32   ret;
+    Int32   rCount;
+
+
+    /* Configure the main pll */
+    hwPllSetPll (0, (uint16)sysSetup.pllPrediv, (uint16)sysSetup.pllMult, (uint16)sysSetup.pllPostdiv);
 
+
+    /* Initialize the nand driver */
+    devInfo.busWidthBits  = nandWriterInfo.busWidthBits;
+    devInfo.pageSizeBytes = nandWriterInfo.pageSizeBytes;
+    devInfo.pageEccBytes  = nandWriterInfo.pageEccBytes;
+    devInfo.pagesPerBlock = nandWriterInfo.pagesPerBlock;
+    devInfo.totalBlocks   = nandWriterInfo.totalBlocks;
     
+    devInfo.addressBytes = nandWriterInfo.addressBytes;
+    devInfo.lsbFirst     = nandWriterInfo.lsbFirst;
+    devInfo.blockOffset  = nandWriterInfo.blockOffset;
+    devInfo.pageOffset   = nandWriterInfo.pageOffset;
+    devInfo.columnOffset = nandWriterInfo.columnOffset;
+    
+    devInfo.resetCommand    = nandWriterInfo.resetCommand;
+    devInfo.readCommandPre  = nandWriterInfo.readCommandPre;
+    devInfo.readCommandPost = nandWriterInfo.readCommandPost;
+    devInfo.postCommand     = nandWriterInfo.postCommand;
+    
+
+
+    /* Open and find the length of the data file */
+    fp = fopen (fileName, "rb");
+    if (fp == NULL)  {
+      printf ("Failed to open file %s\n", fileName);
+      return (-1);
+    }
+
+    fseek (fp, 0l, SEEK_END);
+    flen = ftell (fp);
+    fseek (fp, 0l, SEEK_SET);
 
+    data = malloc ((nandWriterInfo.pageSizeBytes + nandWriterInfo.pageEccBytes) * sizeof (Uint8));
+    if (data == NULL)  {
+      printf ("Malloc failed on size of %d bytes\n", nandWriterInfo.pageSizeBytes + nandWriterInfo.pageEccBytes);
+      fclose (fp);
+      return (-1);
+    }
 
 
+    /* Device specific nand setup */
+    deviceConfigureForNand();
+    
+    /* Initialize the programming interface */
+    ret = nandHwDriverInit (&devInfo);
+    if (ret != 0)  {
+        printf ("nandHwDriverInit failed with error code %d\n", ret);
+        free (data);
+        fclose (fp);
+        return (-1);
+    }
+
+    /* Write the flash, verify the results. On read back failure mark
+     * the block as bad and try rewriting again */
+    rCount = 0;
+
+    do  {
+
+        if (flashNand (fp, flen, data) != 0)  {
+            printf ("nand write giving up\n");
+            break;
+        }
+
+        rCount += 1;
+
+    }  while ((flashVerify (fp, flen, data) == FALSE) && (rCount < 5));
+
+    
+    if (rCount >= 5) 
+        printf ("nand write failed (maximum retries reached)\n");
+    else
+        printf ("flash programming completed\n");
+
+    free (data);
+    fclose (fp);
+    return (0);
+
+}
+
 
 
 
index d92fc0a338ff7c7368feaddba48a93d4d207d83b..ad294d5e65f92a17afef099063beb5bbfb84aead 100644 (file)
@@ -12,6 +12,8 @@ lex.yy.o: rparse.flex
        gcc -c lex.yy.c
 
 
+clean:
+       rm -f romparse.exe rparse.tab.o lex.yy.o lex.yy.c rparse.tab.c rparse.tab.h
 
 
 
index 838c7c1cade1e4d53d85c4740a467b41de4832f5..ff538115014f2a5e9b3554ce9f3f73bd316de05b 100644 (file)
@@ -29,6 +29,8 @@ sw_pll                          { yylval = SWPLL;                             return (SWPLL);                     }
 
 \".*\"         return (STRING);
 
+[ \t]+         ;
+[\n]           ;
 
 %%
 
diff --git a/src/util/romparse_c6472/rparse.tab.c b/src/util/romparse_c6472/rparse.tab.c
deleted file mode 100644 (file)
index ea0b9f6..0000000
+++ /dev/null
@@ -1,930 +0,0 @@
-
-/*  A Bison parser, made from rparse.y
- by  GNU Bison version 1.25
-  */
-
-#define YYBISON 1  /* Identify Bison output.  */
-
-#define        LBRACE  258
-#define        RBRACE  259
-#define        SECTION 260
-#define        EQU     261
-#define        VALUE   262
-#define        STRING  263
-#define        BOOT_MODE       264
-#define        PARAM_INDEX     265
-#define        OPTIONS 266
-#define        MULTI_I2C_ID    267
-#define        MY_I2C_ID       268
-#define        CORE_FREQ_MHZ   269
-#define        I2C_CLK_FREQ_KHZ        270
-#define        EXE_FILE        271
-#define        PCI_PARMS       272
-#define        NEXT_DEV_ADDR   273
-#define        NEXT_DEV_ADDR_EXT       274
-#define        ADDRESS_DELAY   275
-#define        SWPLL   276
-
-#line 2 "rparse.y"
-
-#define YYERROR_VERBOSE
-extern char *yytext;
-#ifndef YYSTYPE
-#define YYSTYPE int
-#endif
-#include <stdio.h>
-
-#ifndef __cplusplus
-#ifndef __STDC__
-#define const
-#endif
-#endif
-
-
-
-#define        YYFINAL         30
-#define        YYFLAG          -32768
-#define        YYNTBASE        22
-
-#define YYTRANSLATE(x) ((unsigned)(x) <= 276 ? yytranslate[x] : 27)
-
-static const char yytranslate[] = {     0,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
-     6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-    16,    17,    18,    19,    20,    21
-};
-
-#if YYDEBUG != 0
-static const short yyprhs[] = {     0,
-     0,     2,     5,    10,    14,    16,    19,    23,    27,    29,
-    31,    33,    35,    37,    39,    41,    43,    45,    47,    49
-};
-
-static const short yyrhs[] = {    23,
-     0,    22,    23,     0,     5,     3,    24,     4,     0,    17,
-     6,     8,     0,    25,     0,    24,    25,     0,    26,     6,
-     7,     0,    26,     6,     8,     0,     9,     0,    10,     0,
-    11,     0,    12,     0,    13,     0,    14,     0,    15,     0,
-    16,     0,    18,     0,    19,     0,    20,     0,    21,     0
-};
-
-#endif
-
-#if YYDEBUG != 0
-static const short yyrline[] = { 0,
-    11,    12,    15,    17,    22,    23,    26,    28,    32,    33,
-    34,    35,    36,    37,    38,    39,    40,    41,    42,    43
-};
-#endif
-
-
-#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
-
-static const char * const yytname[] = {   "$","error","$undefined.","LBRACE",
-"RBRACE","SECTION","EQU","VALUE","STRING","BOOT_MODE","PARAM_INDEX","OPTIONS",
-"MULTI_I2C_ID","MY_I2C_ID","CORE_FREQ_MHZ","I2C_CLK_FREQ_KHZ","EXE_FILE","PCI_PARMS",
-"NEXT_DEV_ADDR","NEXT_DEV_ADDR_EXT","ADDRESS_DELAY","SWPLL","promspec","bootParams",
-"assigns","assign","keyword", NULL
-};
-#endif
-
-static const short yyr1[] = {     0,
-    22,    22,    23,    23,    24,    24,    25,    25,    26,    26,
-    26,    26,    26,    26,    26,    26,    26,    26,    26,    26
-};
-
-static const short yyr2[] = {     0,
-     1,     2,     4,     3,     1,     2,     3,     3,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1
-};
-
-static const short yydefact[] = {     0,
-     0,     0,     0,     1,     0,     0,     2,     9,    10,    11,
-    12,    13,    14,    15,    16,    17,    18,    19,    20,     0,
-     5,     0,     4,     3,     6,     0,     7,     8,     0,     0
-};
-
-static const short yydefgoto[] = {     3,
-     4,    20,    21,    22
-};
-
-static const short yypact[] = {    34,
-     0,    -2,    13,-32768,    22,    11,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    -4,
--32768,    14,-32768,-32768,-32768,    -6,-32768,-32768,    21,-32768
-};
-
-static const short yypgoto[] = {-32768,
-    19,-32768,     3,-32768
-};
-
-
-#define        YYLAST          51
-
-
-static const short yytable[] = {    24,
-    27,    28,     5,     6,     8,     9,    10,    11,    12,    13,
-    14,    15,    29,    16,    17,    18,    19,     1,    23,    26,
-    30,     7,    25,     0,     0,     0,     0,     0,     0,     2,
-     8,     9,    10,    11,    12,    13,    14,    15,     1,    16,
-    17,    18,    19,     0,     0,     0,     0,     0,     0,     0,
-     2
-};
-
-static const short yycheck[] = {     4,
-     7,     8,     3,     6,     9,    10,    11,    12,    13,    14,
-    15,    16,     0,    18,    19,    20,    21,     5,     8,     6,
-     0,     3,    20,    -1,    -1,    -1,    -1,    -1,    -1,    17,
-     9,    10,    11,    12,    13,    14,    15,    16,     5,    18,
-    19,    20,    21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    17
-};
-/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "bison.simple"
-
-/* Skeleton output parser for bison,
-   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
-
-/* As a special exception, when this file is copied by Bison into a
-   Bison output file, you may use that output file without restriction.
-   This special exception was added by the Free Software Foundation
-   in version 1.24 of Bison.  */
-
-#ifndef alloca
-#ifdef __GNUC__
-#define alloca __builtin_alloca
-#else /* not GNU C.  */
-#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
-#include <alloca.h>
-#else /* not sparc */
-#if defined (MSDOS) && !defined (__TURBOC__)
-#include <malloc.h>
-#else /* not MSDOS, or __TURBOC__ */
-#if defined(_AIX)
-#include <malloc.h>
- #pragma alloca
-#else /* not MSDOS, __TURBOC__, or _AIX */
-#ifdef __hpux
-#ifdef __cplusplus
-extern "C" {
-void *alloca (unsigned int);
-};
-#else /* not __cplusplus */
-void *alloca ();
-#endif /* not __cplusplus */
-#endif /* __hpux */
-#endif /* not _AIX */
-#endif /* not MSDOS, or __TURBOC__ */
-#endif /* not sparc.  */
-#endif /* not GNU C.  */
-#endif /* alloca not defined.  */
-
-/* This is the parser code that is written into each bison parser
-  when the %semantic_parser declaration is not specified in the grammar.
-  It was written by Richard Stallman by simplifying the hairy parser
-  used when %semantic_parser is specified.  */
-
-/* Note: there must be only one dollar sign in this file.
-   It is replaced by the list of actions, each action
-   as one case of the switch.  */
-
-#define yyerrok                (yyerrstatus = 0)
-#define yyclearin      (yychar = YYEMPTY)
-#define YYEMPTY                -2
-#define YYEOF          0
-#define YYACCEPT       return(0)
-#define YYABORT        return(1)
-#define YYERROR                goto yyerrlab1
-/* Like YYERROR except do call yyerror.
-   This remains here temporarily to ease the
-   transition to the new meaning of YYERROR, for GCC.
-   Once GCC version 2 has supplanted version 1, this can go.  */
-#define YYFAIL         goto yyerrlab
-#define YYRECOVERING()  (!!yyerrstatus)
-#define YYBACKUP(token, value) \
-do                                                             \
-  if (yychar == YYEMPTY && yylen == 1)                         \
-    { yychar = (token), yylval = (value);                      \
-      yychar1 = YYTRANSLATE (yychar);                          \
-      YYPOPSTACK;                                              \
-      goto yybackup;                                           \
-    }                                                          \
-  else                                                         \
-    { yyerror ("syntax error: cannot back up"); YYERROR; }     \
-while (0)
-
-#define YYTERROR       1
-#define YYERRCODE      256
-
-#ifndef YYPURE
-#define YYLEX          yylex()
-#endif
-
-#ifdef YYPURE
-#ifdef YYLSP_NEEDED
-#ifdef YYLEX_PARAM
-#define YYLEX          yylex(&yylval, &yylloc, YYLEX_PARAM)
-#else
-#define YYLEX          yylex(&yylval, &yylloc)
-#endif
-#else /* not YYLSP_NEEDED */
-#ifdef YYLEX_PARAM
-#define YYLEX          yylex(&yylval, YYLEX_PARAM)
-#else
-#define YYLEX          yylex(&yylval)
-#endif
-#endif /* not YYLSP_NEEDED */
-#endif
-
-/* If nonreentrant, generate the variables here */
-
-#ifndef YYPURE
-
-int    yychar;                 /*  the lookahead symbol                */
-YYSTYPE        yylval;                 /*  the semantic value of the           */
-                               /*  lookahead symbol                    */
-
-#ifdef YYLSP_NEEDED
-YYLTYPE yylloc;                        /*  location data for the lookahead     */
-                               /*  symbol                              */
-#endif
-
-int yynerrs;                   /*  number of parse errors so far       */
-#endif  /* not YYPURE */
-
-#if YYDEBUG != 0
-int yydebug;                   /*  nonzero means print parse trace     */
-/* Since this is uninitialized, it does not stop multiple parsers
-   from coexisting.  */
-#endif
-
-/*  YYINITDEPTH indicates the initial size of the parser's stacks      */
-
-#ifndef        YYINITDEPTH
-#define YYINITDEPTH 200
-#endif
-
-/*  YYMAXDEPTH is the maximum size the stacks can grow to
-    (effective only if the built-in stack extension method is used).  */
-
-#if YYMAXDEPTH == 0
-#undef YYMAXDEPTH
-#endif
-
-#ifndef YYMAXDEPTH
-#define YYMAXDEPTH 10000
-#endif
-
-/* Prevent warning if -Wstrict-prototypes.  */
-#ifdef __GNUC__
-int yyparse (void);
-#endif
-\f
-#if __GNUC__ > 1               /* GNU C and GNU C++ define this.  */
-#define __yy_memcpy(TO,FROM,COUNT)     __builtin_memcpy(TO,FROM,COUNT)
-#else                          /* not GNU C or C++ */
-#ifndef __cplusplus
-
-/* This is the most reliable way to avoid incompatibilities
-   in available built-in functions on various systems.  */
-static void
-__yy_memcpy (to, from, count)
-     char *to;
-     char *from;
-     int count;
-{
-  register char *f = from;
-  register char *t = to;
-  register int i = count;
-
-  while (i-- > 0)
-    *t++ = *f++;
-}
-
-#else /* __cplusplus */
-
-/* This is the most reliable way to avoid incompatibilities
-   in available built-in functions on various systems.  */
-static void
-__yy_memcpy (char *to, char *from, int count)
-{
-  register char *f = from;
-  register char *t = to;
-  register int i = count;
-
-  while (i-- > 0)
-    *t++ = *f++;
-}
-
-#endif
-#endif
-\f
-#line 196 "bison.simple"
-
-/* The user can define YYPARSE_PARAM as the name of an argument to be passed
-   into yyparse.  The argument should have type void *.
-   It should actually point to an object.
-   Grammar actions can access the variable by casting it
-   to the proper pointer type.  */
-
-#ifdef YYPARSE_PARAM
-#ifdef __cplusplus
-#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL
-#else /* not __cplusplus */
-#define YYPARSE_PARAM_ARG YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
-#endif /* not __cplusplus */
-#else /* not YYPARSE_PARAM */
-#define YYPARSE_PARAM_ARG
-#define YYPARSE_PARAM_DECL
-#endif /* not YYPARSE_PARAM */
-
-int
-yyparse(YYPARSE_PARAM_ARG)
-     YYPARSE_PARAM_DECL
-{
-  register int yystate;
-  register int yyn;
-  register short *yyssp;
-  register YYSTYPE *yyvsp;
-  int yyerrstatus;     /*  number of tokens to shift before error messages enabled */
-  int yychar1 = 0;             /*  lookahead token as an internal (translated) token number */
-
-  short        yyssa[YYINITDEPTH];     /*  the state stack                     */
-  YYSTYPE yyvsa[YYINITDEPTH];  /*  the semantic value stack            */
-
-  short *yyss = yyssa;         /*  refer to the stacks thru separate pointers */
-  YYSTYPE *yyvs = yyvsa;       /*  to allow yyoverflow to reallocate them elsewhere */
-
-#ifdef YYLSP_NEEDED
-  YYLTYPE yylsa[YYINITDEPTH];  /*  the location stack                  */
-  YYLTYPE *yyls = yylsa;
-  YYLTYPE *yylsp;
-
-#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
-#else
-#define YYPOPSTACK   (yyvsp--, yyssp--)
-#endif
-
-  int yystacksize = YYINITDEPTH;
-
-#ifdef YYPURE
-  int yychar;
-  YYSTYPE yylval;
-  int yynerrs;
-#ifdef YYLSP_NEEDED
-  YYLTYPE yylloc;
-#endif
-#endif
-
-  YYSTYPE yyval;               /*  the variable used to return         */
-                               /*  semantic values from the action     */
-                               /*  routines                            */
-
-  int yylen;
-
-#if YYDEBUG != 0
-  if (yydebug)
-    fprintf(stderr, "Starting parse\n");
-#endif
-
-  yystate = 0;
-  yyerrstatus = 0;
-  yynerrs = 0;
-  yychar = YYEMPTY;            /* Cause a token to be read.  */
-
-  /* Initialize stack pointers.
-     Waste one element of value and location stack
-     so that they stay on the same level as the state stack.
-     The wasted elements are never initialized.  */
-
-  yyssp = yyss - 1;
-  yyvsp = yyvs;
-#ifdef YYLSP_NEEDED
-  yylsp = yyls;
-#endif
-
-/* Push a new state, which is found in  yystate  .  */
-/* In all cases, when you get here, the value and location stacks
-   have just been pushed. so pushing a state here evens the stacks.  */
-yynewstate:
-
-  *++yyssp = yystate;
-
-  if (yyssp >= yyss + yystacksize - 1)
-    {
-      /* Give user a chance to reallocate the stack */
-      /* Use copies of these so that the &'s don't force the real ones into memory. */
-      YYSTYPE *yyvs1 = yyvs;
-      short *yyss1 = yyss;
-#ifdef YYLSP_NEEDED
-      YYLTYPE *yyls1 = yyls;
-#endif
-
-      /* Get the current used size of the three stacks, in elements.  */
-      int size = yyssp - yyss + 1;
-
-#ifdef yyoverflow
-      /* Each stack pointer address is followed by the size of
-        the data in use in that stack, in bytes.  */
-#ifdef YYLSP_NEEDED
-      /* This used to be a conditional around just the two extra args,
-        but that might be undefined if yyoverflow is a macro.  */
-      yyoverflow("parser stack overflow",
-                &yyss1, size * sizeof (*yyssp),
-                &yyvs1, size * sizeof (*yyvsp),
-                &yyls1, size * sizeof (*yylsp),
-                &yystacksize);
-#else
-      yyoverflow("parser stack overflow",
-                &yyss1, size * sizeof (*yyssp),
-                &yyvs1, size * sizeof (*yyvsp),
-                &yystacksize);
-#endif
-
-      yyss = yyss1; yyvs = yyvs1;
-#ifdef YYLSP_NEEDED
-      yyls = yyls1;
-#endif
-#else /* no yyoverflow */
-      /* Extend the stack our own way.  */
-      if (yystacksize >= YYMAXDEPTH)
-       {
-         yyerror("parser stack overflow");
-         return 2;
-       }
-      yystacksize *= 2;
-      if (yystacksize > YYMAXDEPTH)
-       yystacksize = YYMAXDEPTH;
-      yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
-      __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
-      yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
-      __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
-#ifdef YYLSP_NEEDED
-      yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
-      __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
-#endif
-#endif /* no yyoverflow */
-
-      yyssp = yyss + size - 1;
-      yyvsp = yyvs + size - 1;
-#ifdef YYLSP_NEEDED
-      yylsp = yyls + size - 1;
-#endif
-
-#if YYDEBUG != 0
-      if (yydebug)
-       fprintf(stderr, "Stack size increased to %d\n", yystacksize);
-#endif
-
-      if (yyssp >= yyss + yystacksize - 1)
-       YYABORT;
-    }
-
-#if YYDEBUG != 0
-  if (yydebug)
-    fprintf(stderr, "Entering state %d\n", yystate);
-#endif
-
-  goto yybackup;
- yybackup:
-
-/* Do appropriate processing given the current state.  */
-/* Read a lookahead token if we need one and don't already have one.  */
-/* yyresume: */
-
-  /* First try to decide what to do without reference to lookahead token.  */
-
-  yyn = yypact[yystate];
-  if (yyn == YYFLAG)
-    goto yydefault;
-
-  /* Not known => get a lookahead token if don't already have one.  */
-
-  /* yychar is either YYEMPTY or YYEOF
-     or a valid token in external form.  */
-
-  if (yychar == YYEMPTY)
-    {
-#if YYDEBUG != 0
-      if (yydebug)
-       fprintf(stderr, "Reading a token: ");
-#endif
-      yychar = YYLEX;
-    }
-
-  /* Convert token to internal form (in yychar1) for indexing tables with */
-
-  if (yychar <= 0)             /* This means end of input. */
-    {
-      yychar1 = 0;
-      yychar = YYEOF;          /* Don't call YYLEX any more */
-
-#if YYDEBUG != 0
-      if (yydebug)
-       fprintf(stderr, "Now at end of input.\n");
-#endif
-    }
-  else
-    {
-      yychar1 = YYTRANSLATE(yychar);
-
-#if YYDEBUG != 0
-      if (yydebug)
-       {
-         fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
-         /* Give the individual parser a way to print the precise meaning
-            of a token, for further debugging info.  */
-#ifdef YYPRINT
-         YYPRINT (stderr, yychar, yylval);
-#endif
-         fprintf (stderr, ")\n");
-       }
-#endif
-    }
-
-  yyn += yychar1;
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
-    goto yydefault;
-
-  yyn = yytable[yyn];
-
-  /* yyn is what to do for this token type in this state.
-     Negative => reduce, -yyn is rule number.
-     Positive => shift, yyn is new state.
-       New state is final state => don't bother to shift,
-       just return success.
-     0, or most negative number => error.  */
-
-  if (yyn < 0)
-    {
-      if (yyn == YYFLAG)
-       goto yyerrlab;
-      yyn = -yyn;
-      goto yyreduce;
-    }
-  else if (yyn == 0)
-    goto yyerrlab;
-
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
-  /* Shift the lookahead token.  */
-
-#if YYDEBUG != 0
-  if (yydebug)
-    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
-#endif
-
-  /* Discard the token being shifted unless it is eof.  */
-  if (yychar != YYEOF)
-    yychar = YYEMPTY;
-
-  *++yyvsp = yylval;
-#ifdef YYLSP_NEEDED
-  *++yylsp = yylloc;
-#endif
-
-  /* count tokens shifted since error; after three, turn off error status.  */
-  if (yyerrstatus) yyerrstatus--;
-
-  yystate = yyn;
-  goto yynewstate;
-
-/* Do the default action for the current state.  */
-yydefault:
-
-  yyn = yydefact[yystate];
-  if (yyn == 0)
-    goto yyerrlab;
-
-/* Do a reduction.  yyn is the number of a rule to reduce with.  */
-yyreduce:
-  yylen = yyr2[yyn];
-  if (yylen > 0)
-    yyval = yyvsp[1-yylen]; /* implement default value of the action */
-
-#if YYDEBUG != 0
-  if (yydebug)
-    {
-      int i;
-
-      fprintf (stderr, "Reducing via rule %d (line %d), ",
-              yyn, yyrline[yyn]);
-
-      /* Print the symbols being reduced, and their result.  */
-      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
-       fprintf (stderr, "%s ", yytname[yyrhs[i]]);
-      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
-    }
-#endif
-
-
-  switch (yyn) {
-
-case 3:
-#line 16 "rparse.y"
-{ section (); ;
-    break;}
-case 4:
-#line 18 "rparse.y"
-{ setPciParams (yytext); ;
-    break;}
-case 7:
-#line 27 "rparse.y"
-{ assignKeyVal (yyvsp[-2], yyvsp[0]); ;
-    break;}
-case 8:
-#line 29 "rparse.y"
-{ assignKeyStr (yyvsp[-2], yytext); ;
-    break;}
-case 9:
-#line 32 "rparse.y"
-{  yyval=yyvsp[0];  ;
-    break;}
-case 10:
-#line 33 "rparse.y"
-{  yyval=yyvsp[0];  ;
-    break;}
-case 11:
-#line 34 "rparse.y"
-{  yyval=yyvsp[0];  ;
-    break;}
-case 12:
-#line 35 "rparse.y"
-{  yyval=yyvsp[0];  ;
-    break;}
-case 13:
-#line 36 "rparse.y"
-{  yyval=yyvsp[0];  ;
-    break;}
-case 14:
-#line 37 "rparse.y"
-{  yyval=yyvsp[0];  ;
-    break;}
-case 15:
-#line 38 "rparse.y"
-{  yyval=yyvsp[0];  ;
-    break;}
-case 16:
-#line 39 "rparse.y"
-{  yyval=yyvsp[0];  ;
-    break;}
-case 17:
-#line 40 "rparse.y"
-{  yyval=yyvsp[0];  ;
-    break;}
-case 18:
-#line 41 "rparse.y"
-{  yyval=yyvsp[0];  ;
-    break;}
-case 19:
-#line 42 "rparse.y"
-{  yyval=yyvsp[0];  ;
-    break;}
-case 20:
-#line 43 "rparse.y"
-{  yyval=yyvsp[0];  ;
-    break;}
-}
-   /* the action file gets copied in in place of this dollarsign */
-#line 498 "bison.simple"
-\f
-  yyvsp -= yylen;
-  yyssp -= yylen;
-#ifdef YYLSP_NEEDED
-  yylsp -= yylen;
-#endif
-
-#if YYDEBUG != 0
-  if (yydebug)
-    {
-      short *ssp1 = yyss - 1;
-      fprintf (stderr, "state stack now");
-      while (ssp1 != yyssp)
-       fprintf (stderr, " %d", *++ssp1);
-      fprintf (stderr, "\n");
-    }
-#endif
-
-  *++yyvsp = yyval;
-
-#ifdef YYLSP_NEEDED
-  yylsp++;
-  if (yylen == 0)
-    {
-      yylsp->first_line = yylloc.first_line;
-      yylsp->first_column = yylloc.first_column;
-      yylsp->last_line = (yylsp-1)->last_line;
-      yylsp->last_column = (yylsp-1)->last_column;
-      yylsp->text = 0;
-    }
-  else
-    {
-      yylsp->last_line = (yylsp+yylen-1)->last_line;
-      yylsp->last_column = (yylsp+yylen-1)->last_column;
-    }
-#endif
-
-  /* Now "shift" the result of the reduction.
-     Determine what state that goes to,
-     based on the state we popped back to
-     and the rule number reduced by.  */
-
-  yyn = yyr1[yyn];
-
-  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
-  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
-    yystate = yytable[yystate];
-  else
-    yystate = yydefgoto[yyn - YYNTBASE];
-
-  goto yynewstate;
-
-yyerrlab:   /* here on detecting error */
-
-  if (! yyerrstatus)
-    /* If not already recovering from an error, report this error.  */
-    {
-      ++yynerrs;
-
-#ifdef YYERROR_VERBOSE
-      yyn = yypact[yystate];
-
-      if (yyn > YYFLAG && yyn < YYLAST)
-       {
-         int size = 0;
-         char *msg;
-         int x, count;
-
-         count = 0;
-         /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
-         for (x = (yyn < 0 ? -yyn : 0);
-              x < (sizeof(yytname) / sizeof(char *)); x++)
-           if (yycheck[x + yyn] == x)
-             size += strlen(yytname[x]) + 15, count++;
-         msg = (char *) malloc(size + 15);
-         if (msg != 0)
-           {
-             strcpy(msg, "parse error");
-
-             if (count < 5)
-               {
-                 count = 0;
-                 for (x = (yyn < 0 ? -yyn : 0);
-                      x < (sizeof(yytname) / sizeof(char *)); x++)
-                   if (yycheck[x + yyn] == x)
-                     {
-                       strcat(msg, count == 0 ? ", expecting `" : " or `");
-                       strcat(msg, yytname[x]);
-                       strcat(msg, "'");
-                       count++;
-                     }
-               }
-             yyerror(msg);
-             free(msg);
-           }
-         else
-           yyerror ("parse error; also virtual memory exceeded");
-       }
-      else
-#endif /* YYERROR_VERBOSE */
-       yyerror("parse error");
-    }
-
-  goto yyerrlab1;
-yyerrlab1:   /* here on error raised explicitly by an action */
-
-  if (yyerrstatus == 3)
-    {
-      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
-
-      /* return failure if at end of input */
-      if (yychar == YYEOF)
-       YYABORT;
-
-#if YYDEBUG != 0
-      if (yydebug)
-       fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
-#endif
-
-      yychar = YYEMPTY;
-    }
-
-  /* Else will try to reuse lookahead token
-     after shifting the error token.  */
-
-  yyerrstatus = 3;             /* Each real token shifted decrements this */
-
-  goto yyerrhandle;
-
-yyerrdefault:  /* current state does not do anything special for the error token. */
-
-#if 0
-  /* This is wrong; only states that explicitly want error tokens
-     should shift them.  */
-  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
-  if (yyn) goto yydefault;
-#endif
-
-yyerrpop:   /* pop the current state because it cannot handle the error token */
-
-  if (yyssp == yyss) YYABORT;
-  yyvsp--;
-  yystate = *--yyssp;
-#ifdef YYLSP_NEEDED
-  yylsp--;
-#endif
-
-#if YYDEBUG != 0
-  if (yydebug)
-    {
-      short *ssp1 = yyss - 1;
-      fprintf (stderr, "Error: state stack now");
-      while (ssp1 != yyssp)
-       fprintf (stderr, " %d", *++ssp1);
-      fprintf (stderr, "\n");
-    }
-#endif
-
-yyerrhandle:
-
-  yyn = yypact[yystate];
-  if (yyn == YYFLAG)
-    goto yyerrdefault;
-
-  yyn += YYTERROR;
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
-    goto yyerrdefault;
-
-  yyn = yytable[yyn];
-  if (yyn < 0)
-    {
-      if (yyn == YYFLAG)
-       goto yyerrpop;
-      yyn = -yyn;
-      goto yyreduce;
-    }
-  else if (yyn == 0)
-    goto yyerrpop;
-
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
-#if YYDEBUG != 0
-  if (yydebug)
-    fprintf(stderr, "Shifting error token, ");
-#endif
-
-  *++yyvsp = yylval;
-#ifdef YYLSP_NEEDED
-  *++yylsp = yylloc;
-#endif
-
-  yystate = yyn;
-  goto yynewstate;
-}
-#line 46 "rparse.y"
-
-
-
diff --git a/src/util/romparse_c6472/rparse.tab.h b/src/util/romparse_c6472/rparse.tab.h
deleted file mode 100644 (file)
index 5d61af4..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef YYSTYPE
-#define YYSTYPE int
-#endif
-#define        LBRACE  258
-#define        RBRACE  259
-#define        SECTION 260
-#define        EQU     261
-#define        VALUE   262
-#define        STRING  263
-#define        BOOT_MODE       264
-#define        PARAM_INDEX     265
-#define        OPTIONS 266
-#define        MULTI_I2C_ID    267
-#define        MY_I2C_ID       268
-#define        CORE_FREQ_MHZ   269
-#define        I2C_CLK_FREQ_KHZ        270
-#define        EXE_FILE        271
-#define        PCI_PARMS       272
-#define        NEXT_DEV_ADDR   273
-#define        NEXT_DEV_ADDR_EXT       274
-#define        ADDRESS_DELAY   275
-#define        SWPLL   276
-
-
-extern YYSTYPE yylval;