summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: c4a92f4)
raw | patch | inline | side by side (parent: c4a92f4)
author | Hao Zhang <hzhang@ti.com> | |
Thu, 17 Mar 2011 20:48:52 +0000 (16:48 -0400) | ||
committer | Hao Zhang <hzhang@ti.com> | |
Thu, 17 Mar 2011 20:48:52 +0000 (16:48 -0400) |
boot_loader/IBL_Makefile | [new file with mode: 0644] | patch | blob |
boot_loader/IBL_makestg1 | [new file with mode: 0644] | patch | blob |
boot_loader/IBL_makestg2 | [new file with mode: 0644] | patch | blob |
boot_loader/IBL_release_info.txt | [new file with mode: 0644] | patch | blob |
boot_loader/tools_install.bat | [new file with mode: 0644] | patch | blob |
diff --git a/boot_loader/IBL_Makefile b/boot_loader/IBL_Makefile
--- /dev/null
+++ b/boot_loader/IBL_Makefile
@@ -0,0 +1,391 @@
+#*
+#*
+#* Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
+#*
+#*
+#* Redistribution and use in source and binary forms, with or without
+#* modification, are permitted provided that the following conditions
+#* are met:
+#*
+#* Redistributions of source code must retain the above copyright
+#* notice, this list of conditions and the following disclaimer.
+#*
+#* Redistributions in binary form must reproduce the above copyright
+#* notice, this list of conditions and the following disclaimer in the
+#* documentation and/or other materials provided with the
+#* distribution.
+#*
+#* Neither the name of Texas Instruments Incorporated nor the names of
+#* its contributors may be used to endorse or promote products derived
+#* from this software without specific prior written permission.
+#*
+#* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+#* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+#* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+#* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+#* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+#* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+#* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+#* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+#* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+#* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+#* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#*
+
+
+#*******************************************************************************************
+#* FILE PURPOSE: Top level make for the IBL
+#*******************************************************************************************
+#* FILE NAME: Makefile
+#*
+#* DESCRIPTION: Builds the Intermediate Boot Loader (IBL)
+#*
+#* Usage: make c6455 | c6472 | c6474 | c6457 | c661x
+#* [DEBUG=yes] /* Compiles for debug */
+#* [ETH=no] /* Disables ethernet support */
+#* [BIS=no] /* Disables BIS interpreter */
+#* [COFF=no] /* Disables COFF interpreter */
+#* [BLOB=no] /* Disables BLOB interpreter */
+#* [ELF=no] /* Disables ELF interpreter */
+#* [NAND=no] /* Disables NAND support through EMIF/SPI/GPIO */
+#* [NAND_SPI=no] /* Disables NAND support through SPI */
+#* [NAND_EMIF=no] /* Disables NAND support through EMIF */
+#* [NAND_GPIO=no] /* Disables NAND support through GPIO */
+#* [NOR=no] /* Disables NOR through EMIF/SPI */
+#* [NOR_SPI=no] /* Disables NOR support through SPI */
+#* [NOR_EMIF=no] /* Disables NOR support through EMIF */
+#* [SPI=no] /* Disables SPI */
+#* [I2C=no] /* Disables I2C */
+#* [EMIF=no] /* Disables EMIF */
+#* [SPI_MODE=<0,1,2,3>] /* Selects the SPI operating mode */
+#* [SPI_ADDR_WIDTH=<16,24>] /* Selects the SPI address width */
+#* [SPI_NPIN=<4,5>] /* Selects the number of pins on the interface */
+#* [SPI_CSEL=<1,2>] /* Sets the SPI CSEL value in 5 pin mode */
+#* [SPI_C2TDEL=x] /* Sets the SPI C to T delay value */
+#* [SPI_CLKDIV=x] /* Sets the SPI module clock divider */
+#* [SPI_USE_ROM=yes] /* Uses SPI interface parameters from boot ROM, if available */
+#* [ENDIAN= both | big | little] /* Selects the endian of the build */
+#* [I2C_BUS_ADDR= 0x50 | 0x51] /* The initial I2C bus address */
+#* [COMPACT_I2C=yes] /* Mimimizes the size of the I2C */
+#* [I2C_MAP_ADDR= 0x500 | 0x800] /* The IBL configuration parameter offset */
+#*
+#*
+#* or to make a board specific configuraiton
+#*
+#* make evm_c6455 | evm_c6472 | evm_c6474 | evm_c6457 | evm_c661x
+#*
+#* or to test the builds by making all the devices and testing excludes
+#*
+#* make test_build
+#*******************************************************************************************
+
+IBLS_C6X= c6455 c6472 c6474 c6457 c661x
+EVMS_C6X= evm_c6455 evm_c6472 evm_c6474
+
+
+# Excluding functions from the build reduces the I2C eeprom memory used and
+# speeds the initial boot time. Note that boot table cannot be excluded
+# because it is required for the two stage I2C load process
+
+CEXCLUDES=
+
+ifeq ($(ETH),no)
+ CEXCLUDES+= ETH
+endif
+
+ifeq ($(BIS),no)
+ CEXCLUDES+= BIS
+endif
+
+ifeq ($(COFF),no)
+ CEXCLUDES+= COFF
+endif
+
+ifeq ($(BLOB),no)
+ CEXCLUDES+= BLOB
+endif
+
+ifeq ($(ELF),no)
+ CEXCLUDES+= ELF
+endif
+
+ifeq ($(NAND),no)
+ CEXCLUDES+= NAND_SPI
+ CEXCLUDES+= NAND_EMIF
+ CEXCLUDES+= NAND_GPIO
+
+else
+
+ ifeq ($(NAND_SPI),no)
+ CEXCLUDES+= NAND_SPI
+ endif
+
+ ifeq ($(NAND_EMIF),no)
+ CEXCLUDES+= NAND_EMIF
+ endif
+
+ ifeq ($(NAND_GPIO),no)
+ CEXCLUDES+= NAND_GPIO
+ endif
+
+endif
+
+
+ifeq ($(NOR),no)
+ CEXCLUDES+= NOR_SPI
+ CEXCLUDES+= NOR_EMIF
+
+else
+
+ ifeq ($(NOR_SPI),no)
+ CEXCLUDES+= NOR_SPI
+ endif
+
+ ifeq ($(NOR_EMIF),no)
+ CEXCLUDES+= NOR_EMIF
+ endif
+
+endif
+
+
+ifeq ($(I2C),no)
+ CEXCLUDES+= I2C
+endif
+
+
+ifeq ($(SPI),no)
+
+ ifeq (,$(findstring NAND_SPI, $(CEXCLUDES)))
+ CEXCLUDES+= NAND_SPI
+ endif
+
+ ifeq (,$(findstring NOR_SPI, $(CEXCLUDES)))
+ CEXCLUDES+= NOR_SPI
+ endif
+
+endif
+
+
+ifeq ($(EMIF),no)
+
+ ifeq (,$(findstring NAND_EMIF, $(CEXCLUDES)))
+ CEXCLUDES+= NAND_EMIF
+ endif
+
+ ifeq (,$(findstring NOR_EMIF, $(CEXCLUDES)))
+ CEXCLUDES+= NOR_EMIF
+ endif
+
+endif
+
+# The endian of the build. The default target builds a single ROM image with both endians present
+ifeq ($(ENDIAN),big)
+ ENDIAN_MODE=big
+else
+ ifeq ($(ENDIAN),little)
+ ENDIAN_MODE=little
+ else
+ ENDIAN_MODE=both
+ endif
+endif
+
+# The i2c ROM bus address. The code will advance accross I2C bus address boundaries (the code must
+# be blocked so that a single block doesn't cross a boundary, however).
+ifndef I2C_BUS_ADDR
+ I2C_BUS_ADDR=0x50
+endif
+
+ifndef I2C_MAP_ADDR
+ifeq ($(ENDIAN),big)
+ I2C_MAP_ADDR=0x800
+ else
+ I2C_MAP_ADDR=0x500
+ endif
+endif
+
+
+# The SPI configuration parameters
+ifndef SPI_MODE
+ SPI_MODE=1
+endif
+
+ifndef SPI_ADDR_WIDTH
+ SPI_ADDR_WIDTH=24
+endif
+
+ifndef SPI_NPIN
+ SPI_NPIN=5
+endif
+
+ifndef SPI_CSEL
+ SPI_CSEL=2
+endif
+
+ifndef SPI_C2TDEL
+ SPI_C2TDEL=4
+endif
+
+ifndef SPI_CLKDIV
+ SPI_CLKDIV=8
+endif
+
+ifneq ($(SPI_USE_ROM),0)
+ SPI_ROM=1
+else
+ SPI_ROM=0
+endif
+
+SPI_DEFS= SPI_MODE=$(SPI_MODE)
+SPI_DEFS+= SPI_ADDR_WIDTH=$(SPI_ADDR_WIDTH)
+SPI_DEFS+= SPI_NPIN=$(SPI_NPIN)
+SPI_DEFS+= SPI_CSEL=$(SPI_CSEL)
+SPI_DEFS+= SPI_C2TDEL=$(SPI_C2TDEL)
+SPI_DEFS+= SPI_CLKDIV=$(SPI_CLKDIV)
+SPI_DEFS+= SPI_ROM=$(SPI_ROM)
+
+
+.PHONY: all $(IBLS_C6X) evm_c6455 evm_c6472 evm_c6474 evm_c6457 evm_c6618
+.PHONY: test_c661x test_c6455 test_c6472 test_c6474 test_c6457 clean
+
+
+all:
+ @echo must specify a target [ $(IBLS_C6X) $(EVMS_C6X) ]
+
+
+# The debug flag changes compiler options
+ifndef DEBUG
+ DEBUG=no
+endif
+export DEBUG
+
+
+$(IBLS_C6X):
+ make -f makestg1 ARCH=c64x TARGET=$@ I2C_BUS_ADDR=$(I2C_BUS_ADDR) I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=$(COMPACT_I2C) ENDIAN_MODE=$(ENDIAN_MODE) CEXCLUDES='$(CEXCLUDES)' SPI_DEFS='$(SPI_DEFS)' $@
+
+# Configurations for individual evms
+# The c6455 EVM has a 128k eeprom (64k at 0x50, 64k at 0x51), so both endians are built with full functionality
+evm_c6455:
+ make -f makestg1 ARCH=c64x TARGET=c6455 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no ENDIAN_MODE=both CEXCLUDES= c6455
+
+# The c6472 EVM has a 128k eeprom (64k at 0x50, 64k at 0x51), so both endians are built with full functionality
+evm_c6472:
+ make -f makestg1 ARCH=c64x TARGET=c6472 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no ENDIAN_MODE=both CEXCLUDES= c6472
+
+# The 6474 EVM has a 32k eeprom. A stripped down version is build with only one endian.
+evm_c6474:
+ make -f makestg1 ARCH=c64x TARGET=c6474 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=0x200 COMPACT_I2C=yes ENDIAN_MODE=little CEXCLUDES='ELF NAND_GPIO BIS' I2C_SIZE_BYTES=0x8000 c6474
+ cp ibl_c6474/i2crom.dat ibl_c6474/i2crom_0x50_c6474_le.dat
+ make -f makestg1 ARCH=c64x TARGET=c6474 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=0x200 COMPACT_I2C=yes ENDIAN_MODE=big CEXCLUDES='ELF NAND_GPIO BIS' I2C_SIZE_BYTES=0x8000 c6474
+ cp ibl_c6474/i2crom.dat ibl_c6474/i2crom_0x50_c6474_be.dat
+
+evm_c6474l:
+ make -f makestg1 ARCH=c64x TARGET=c6474 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=0x200 COMPACT_I2C=yes ENDIAN_MODE=little CEXCLUDES='ELF NAND_GPIO BIS' c6474
+ cp ibl_c6474/i2crom.dat ibl_c6474/i2crom_0x50_c6474l_le.dat
+ make -f makestg1 ARCH=c64x TARGET=c6474 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=0x200 COMPACT_I2C=yes ENDIAN_MODE=big CEXCLUDES='ELF NAND_GPIO BIS' c6474
+ cp ibl_c6474/i2crom.dat ibl_c6474/i2crom_0x50_c6474l_be.dat
+
+# The 6457 EVM
+evm_c6457:
+ make -f makestg1 ARCH=c64x TARGET=c6457 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=0x200 COMPACT_I2C=yes ENDIAN_MODE=little CEXCLUDES='ELF NAND_GPIO BIS' c6457
+ cp ibl_c6457/i2crom.dat ibl_c6457/i2crom_0x50_c6457_le.dat
+ make -f makestg1 ARCH=c64x TARGET=c6457 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=0x200 COMPACT_I2C=yes ENDIAN_MODE=big CEXCLUDES='ELF NAND_GPIO BIS' c6457
+ cp ibl_c6457/i2crom.dat ibl_c6457/i2crom_0x50_c6457_be.dat
+
+# The 6608 EVM
+EVM_6608_SPI_DEFS= SPI_MODE=1 SPI_ADDR_WIDTH=24 SPI_NPIN=5 SPI_CSEL=2 SPI_C2TDEL=1 SPI_CLKDIV=8 SPI_ROM=1
+
+evm_c6608:
+ make -f makestg1 ARCH=c64x TARGET=c661x I2C=no I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=0x500 ENDIAN_MODE=little CEXCLUDES=I2C SPI_DEFS='$(EVM_6608_SPI_DEFS)' c661x
+
+# The 6678 EVM SPI/NOR Boot
+EVM_6678_SPI_DEFS= SPI_MODE=1 SPI_ADDR_WIDTH=24 SPI_NPIN=5 SPI_CSEL=2 SPI_C2TDEL=1 SPI_CLKDIV=8 SPI_ROM=1
+
+evm_c6678_spi:
+ make -f makestg1 ARCH=c64x TARGET=c661x I2C=no I2C_BUS_ADDR=0x51 I2C_MAP_ADDR=0x500 ENDIAN_MODE=little CEXCLUDES=I2C SPI_DEFS='$(EVM_6608_SPI_DEFS)' c661x
+
+evm_c6678_i2c:
+ make -f makestg1 I2C_BUS_ADDR=$(I2C_BUS_ADDR) I2C_MAP_ADDR=$(I2C_MAP_ADDR) ENDIAN_MODE=$(ENDIAN) ARCH=c64x TARGET=c661x SPI=no INTERNAL_UTILS=no SPI_DEFS='$(EVM_6608_SPI_DEFS)' c661x
+
+test_c661x:
+ make -f makestg1 ARCH=c64x TARGET=c661x ENDIAN_MODE=both CEXCLUDES='NOR_SPI' SPI_DEFS='SPI_ROM=1 SPI_MODE=3 SPI_ADDR_WIDTH=24 SPI_NPIN=5 SPI_CSEL=2 SPI_C2TDEL=8 SPI_CLKDIV=0x20' I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no c661x
+ make -f makestg1 ARCH=c64x TARGET=c661x ENDIAN_MODE=both CEXCLUDES='NAND_SPI' SPI_DEFS='SPI_ROM=1 SPI_MODE=3 SPI_ADDR_WIDTH=24 SPI_NPIN=5 SPI_CSEL=2 SPI_C2TDEL=8 SPI_CLKDIV=0x20' I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no c661x
+ make -f makestg1 ARCH=c64x TARGET=c661x ENDIAN_MODE=both CEXCLUDES='NOR_EMIF' SPI_DEFS='SPI_ROM=1 SPI_MODE=3 SPI_ADDR_WIDTH=24 SPI_NPIN=5 SPI_CSEL=2 SPI_C2TDEL=8 SPI_CLKDIV=0x20' I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no c661x
+ make -f makestg1 ARCH=c64x TARGET=c661x ENDIAN_MODE=both CEXCLUDES='NAND_EMIF' SPI_DEFS='SPI_ROM=1 SPI_MODE=3 SPI_ADDR_WIDTH=24 SPI_NPIN=5 SPI_CSEL=2 SPI_C2TDEL=8 SPI_CLKDIV=0x20' I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no c661x
+ make -f makestg1 ARCH=c64x TARGET=c661x ENDIAN_MODE=both CEXCLUDES='NAND_EMIF NOR_EMIF' SPI_DEFS='SPI_ROM=1 SPI_MODE=3 SPI_ADDR_WIDTH=24 SPI_NPIN=5 SPI_CSEL=2 SPI_C2TDEL=8 SPI_CLKDIV=0x20' I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no c661x
+ make -f makestg1 ARCH=c64x TARGET=c661x ENDIAN_MODE=both CEXCLUDES='SPI NOR_SPI NAND_SPI' I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no c661x
+ make -f makestg1 ARCH=c64x TARGET=c661x ENDIAN_MODE=both CEXCLUDES=I2C SPI_DEFS='SPI_ROM=1 SPI_MODE=3 SPI_ADDR_WIDTH=24 SPI_NPIN=5 SPI_CSEL=2 SPI_C2TDEL=8 SPI_CLKDIV=0x20' c661x
+
+# Test - builds all the targets, with single component exclusion
+
+test_c6455:
+ make -f makestg1 ARCH=c64x TARGET=c6455 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no ENDIAN_MODE=both CEXCLUDES= c6455
+ make -f makestg1 ARCH=c64x TARGET=c6455 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no ENDIAN_MODE=both CEXCLUDES=ETH c6455
+ make -f makestg1 ARCH=c64x TARGET=c6455 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no ENDIAN_MODE=both CEXCLUDES=NAND_GPIO c6455
+ make -f makestg1 ARCH=c64x TARGET=c6455 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no ENDIAN_MODE=both CEXCLUDES=BIS c6455
+ make -f makestg1 ARCH=c64x TARGET=c6455 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no ENDIAN_MODE=both CEXCLUDES=COFF c6455
+ make -f makestg1 ARCH=c64x TARGET=c6455 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no ENDIAN_MODE=both CEXCLUDES=ELF c6455
+ make -f makestg1 ARCH=c64x TARGET=c6455 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no ENDIAN_MODE=both CEXCLUDES=BLOB c6455
+
+test_c6457:
+ make -f makestg1 ARCH=c64x TARGET=c6457 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=yes ENDIAN_MODE=both CEXCLUDES= c6457
+ make -f makestg1 ARCH=c64x TARGET=c6457 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=yes ENDIAN_MODE=both CEXCLUDES=ETH c6457
+ make -f makestg1 ARCH=c64x TARGET=c6457 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=yes ENDIAN_MODE=both CEXCLUDES=NAND_GPIO c6457
+ make -f makestg1 ARCH=c64x TARGET=c6457 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=yes ENDIAN_MODE=both CEXCLUDES=BIS c6457
+ make -f makestg1 ARCH=c64x TARGET=c6457 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=yes ENDIAN_MODE=both CEXCLUDES=COFF c6457
+ make -f makestg1 ARCH=c64x TARGET=c6457 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=yes ENDIAN_MODE=both CEXCLUDES=ELF c6457
+ make -f makestg1 ARCH=c64x TARGET=c6457 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=yes ENDIAN_MODE=both CEXCLUDES=BLOB c6457
+
+test_c6472:
+ make -f makestg1 ARCH=c64x TARGET=c6472 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no ENDIAN_MODE=both CEXCLUDES= c6472
+ make -f makestg1 ARCH=c64x TARGET=c6472 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no ENDIAN_MODE=both CEXCLUDES=ETH c6472
+ make -f makestg1 ARCH=c64x TARGET=c6472 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no ENDIAN_MODE=both CEXCLUDES=NAND_GPIO c6472
+ make -f makestg1 ARCH=c64x TARGET=c6472 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no ENDIAN_MODE=both CEXCLUDES=BIS c6472
+ make -f makestg1 ARCH=c64x TARGET=c6472 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no ENDIAN_MODE=both CEXCLUDES=COFF c6472
+ make -f makestg1 ARCH=c64x TARGET=c6472 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no ENDIAN_MODE=both CEXCLUDES=ELF c6472
+ make -f makestg1 ARCH=c64x TARGET=c6472 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=no ENDIAN_MODE=both CEXCLUDES=BLOB c6472
+
+test_c6474:
+ make -f makestg1 ARCH=c64x TARGET=c6474 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=yes ENDIAN_MODE=both CEXCLUDES= c6474
+ make -f makestg1 ARCH=c64x TARGET=c6474 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=yes ENDIAN_MODE=both CEXCLUDES=ETH c6474
+ make -f makestg1 ARCH=c64x TARGET=c6474 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=yes ENDIAN_MODE=both CEXCLUDES=NAND_GPIO c6474
+ make -f makestg1 ARCH=c64x TARGET=c6474 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=yes ENDIAN_MODE=both CEXCLUDES=BIS c6474
+ make -f makestg1 ARCH=c64x TARGET=c6474 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=yes ENDIAN_MODE=both CEXCLUDES=COFF c6474
+ make -f makestg1 ARCH=c64x TARGET=c6474 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=yes ENDIAN_MODE=both CEXCLUDES=ELF c6474
+ make -f makestg1 ARCH=c64x TARGET=c6474 I2C_BUS_ADDR=0x50 I2C_MAP_ADDR=$(I2C_MAP_ADDR) COMPACT_I2C=yes ENDIAN_MODE=both CEXCLUDES=BLOB c6474
+
+
+test_build: test_c6455 test_c6457 test_c6472 test_c6474 test_c661x
+
+
+# will need to add a line for each additional ARCH type added
+clean:
+ make -f makestg2 clean ARCH=c64x TARGET=c6472
+ make -f makestg2 cleant ARCH=c64x TARGET=c6472
+ make -f makestg2 cleant ARCH=c64x TARGET=c6474
+ make -f makestg2 cleant ARCH=c64x TARGET=c6455
+ make -f makestg2 cleant ARCH=c64x TARGET=c6457
+ make -f makestg2 cleant ARCH=c64x TARGET=c661x
+ make -C ../util/bconvert clean
+ make -C ../util/btoccs clean
+ make -C ../util/i2cConfig clean ARCH=c64x TARGET=c6455
+ make -C ../util/i2cConfig clean ARCH=c64x TARGET=c6472
+ make -C ../util/i2cConfig clean ARCH=c64x TARGET=c6474
+ make -C ../util/i2cConfig clean ARCH=c64x TARGET=c6457
+ make -C ../util/i2cConfig clean ARCH=c64x TARGET=c661x
+ make -C ../util/romparse clean
+ make -C ../test/test1 clean
+ make -C ../test/test2 clean
+ find ../ -name *.oc | xargs rm -f
+ find ../ -name *.dc | xargs rm -f
+ find ../ -name *.oa | xargs rm -f
+ find ../ -name *.da | xargs rm -f
+
+
+
+
+
+
+
+
+
+
diff --git a/boot_loader/IBL_makestg1 b/boot_loader/IBL_makestg1
--- /dev/null
+++ b/boot_loader/IBL_makestg1
@@ -0,0 +1,135 @@
+#*******************************************************************************************
+#* FILE PURPOSE: Top level make for the IBL
+#*******************************************************************************************
+#* FILE NAME: Makefile
+#*
+#* DESCRIPTION: Builds the Intermediate Boot Loader (IBL)
+#*
+#* Usage: make c6455 | c6472 | c6474 | c6457 | c661x [DEBUG=yes] [ETH=no] [NAND=no] \
+#* [BIS=no] [COFF=no] [BLOB=no] [ELF=no] [ENDIAN= both | big | little] [I2C_BUS_ADDR= 0x50 | 0x51] \
+#* [COMPACT_I2C=yes] [I2C_SIZE_BYTES=..]
+#*******************************************************************************************
+
+IBLS_C6X= c6455 c6472 c6474 c6474l c6457 c661x
+
+
+# Excluding functions from the build reduces the I2C eeprom memory used and
+# speeds the initial boot time. Note that boot table cannot be excluded
+# because it is required for the two stage I2C load process
+
+# The endian of the build. The default target builds a single ROM image with both endians present
+ifeq ($(ENDIAN_MODE),big)
+ I2CROM= big_endian
+ STAGE1_TARGET= be_target
+else
+ ifeq ($(ENDIAN_MODE),little)
+ I2CROM= little_endian
+ STAGE1_TARGET= le_target
+ else
+ I2CROM= both
+ STAGE1_TARGET= be_target le_target compare
+ endif
+endif
+
+EXCLUDES= $(CEXCLUDES)
+
+
+# The default i2c size. This is used only for the i2c writer utility
+ifndef I2C_SIZE_BYTES
+ I2C_SIZE_BYTES=0x20000
+endif
+
+# exclusions based on device capability
+ifeq ($(TARGET),c6455)
+ C64X_EXCLUDES=yes
+endif
+
+ifeq ($(TARGET),c6457)
+ C64X_EXCLUDES=yes
+endif
+
+ifeq ($(TARGET),c6472)
+ C64X_EXCLUDES=yes
+endif
+
+ifeq ($(TARGET),c6474)
+ C64X_EXCLUDES=yes
+endif
+
+ifeq ($(C64X_EXCLUDES),yes)
+
+ ifeq (,$(findstring SPI, $(EXCLUDES)))
+ EXCLUDES+= SPI
+ endif
+
+ ifeq (,$(findstring NOR_SPI, $(EXCLUDES)))
+ EXCLUDES+= NOR_SPI
+ endif
+
+ ifeq (,$(findstring NOR_EMIF, $(EXCLUDES)))
+ EXCLUDES+= NOR_EMIF
+ endif
+
+ ifeq (,$(findstring NAND_SPI, $(EXCLUDES)))
+ EXCLUDES+= NAND_SPI
+ endif
+
+ ifeq (,$(findstring NAND_EMIF, $(EXCLUDES)))
+ EXCLUDES+= NAND_EMIF
+ endif
+
+endif
+
+ifeq ($(TARGET),c661x)
+ EXCLUDES+= NAND_GPIO
+endif
+
+
+# Prevent I2C/SPI rom creation based on defines
+ROMS=
+
+ifeq (,$(findstring I2C, $(EXCLUDES)))
+ ROMS+= i2crom
+endif
+
+ifeq (,$(findstring SPI, $(EXCLUDES)))
+ ROMS+= spiRom
+endif
+
+
+# Excludes identify which components are not part of the build
+export EXCLUDES
+
+.PHONY: all be_target le_target compare $(IBLS_C6X)
+
+all:
+ @echo must specify a target [ $(IBLS_C6X) ]
+
+
+
+be_target:
+ @echo EXCLUDES= $(EXCLUDES)
+ make -f makestg2 ARCH=c64x TARGET=$(TARGET) ENDIAN=big I2C_SIZE_BYTES=$(I2C_SIZE_BYTES) I2C_BUS_ADDR=$(I2C_BUS_ADDR) INTERNAL_UTILS=$(INTERNAL_UTILS) SPI_DEFS='$(SPI_DEFS)' utils
+ make -f makestg2 ARCH=c64x TARGET=$(TARGET) ENDIAN=big I2C_SIZE_BYTES=$(I2C_SIZE_BYTES) I2C_BUS_ADDR=$(I2C_BUS_ADDR) SPI_DEFS='$(SPI_DEFS)' $(TARGET)
+
+le_target:
+ make -f makestg2 ARCH=c64x TARGET=$(TARGET) ENDIAN=little I2C_SIZE_BYTES=$(I2C_SIZE_BYTES) I2C_BUS_ADDR=$(I2C_BUS_ADDR) INTERNAL_UTILS=$(INTERNAL_UTILS) SPI_DEFS='$(SPI_DEFS)' utils
+ make -f makestg2 ARCH=c64x TARGET=$(TARGET) ENDIAN=little I2C_SIZE_BYTES=$(I2C_SIZE_BYTES) I2C_BUS_ADDR=$(I2C_BUS_ADDR) SPI_DEFS='$(SPI_DEFS)' $(TARGET)
+
+compare:
+ make -f makestg2 ARCH=c64x TARGET=$(TARGET) compare
+
+
+$(IBLS_C6X): $(STAGE1_TARGET)
+ make -f makestg2 ARCH=c64x TARGET=$@ I2CROM=$(I2CROM) I2C_BUS_ADDR=$(I2C_BUS_ADDR) I2C_MAP_ADDRESS=$(I2C_MAP_ADDRESS) COMPACT_I2C=$(COMPACT_I2C) SPI_DEFS='$(SPI_DEFS)' $(ROMS)
+
+
+
+
+
+
+
+
+
+
+
diff --git a/boot_loader/IBL_makestg2 b/boot_loader/IBL_makestg2
--- /dev/null
+++ b/boot_loader/IBL_makestg2
@@ -0,0 +1,284 @@
+#*****************************************************************************
+#* FILE PURPOSE: 2nd stage makefile for the intermediate boot loader
+#*****************************************************************************
+#* FILE NAME: makestg2
+#*
+#* DESCRIPTION: This makefile is invoked with build specific options
+#*
+#******************************************************************************
+
+ifndef IBL_ROOT
+ IBL_ROOT=..
+endif
+
+CFG_MODULES= main device
+MODULES= ethboot nandboot driver hw interp ecc norboot
+
+# Note that the Hw module is a two stage clean and handled seperately
+CLEAN_MODULES=$(addprefix clean_,$(subst hw,,$(MODULES)))
+CLEAN_MODULES+=$(addprefix clean_,$(CFG_MODULES))
+
+
+TARGETS= c6472 c6474 c6474l c6455 c6457 c661x
+
+# The main module needs to know the device address of the i2c where the image map resides
+MAINDEFS=-DIBL_CFG_I2C_MAP_TABLE_DATA_BUS_ADDR=$(I2C_BUS_ADDR)
+
+# Add build time exclusion definitions
+MAINDEFS+=$(addprefix -DEXCLUDE_,$(EXCLUDES))
+
+# Add SPI definitions
+SPI_CFG= $(addprefix -D,$(SPI_DEFS))
+
+
+# Common symbols are functions which are loaded with the stage load of the IBL, and
+# also referenced from the second stage
+#COMMON_SYMBOLS= hwI2Cinit hwI2cMasterRead iblBootBtbl iblMalloc iblFree iblMemset iblMemcpy
+COMMON_SYMBOLS= iblBootBtbl iblMalloc iblFree iblMemset iblMemcpy
+
+ifeq ($(ENDIAN),little)
+ HEX_OPT= -order L
+ IEXT= le
+else
+ HEX_OPT= -order M
+ IEXT= be
+endif
+
+ifeq ($(COMPACT_I2C),yes)
+ COMPACT= -compact
+endif
+
+include $(IBL_ROOT)/make/$(ARCH)/makedefs.mk
+
+export ARCH
+export TARGET
+
+.PHONY: $(TARGETS) i2crom spiRom compare iblInit iblMain $(MODULES) $(CFG_MODULES)
+.PHONY: utils clean clean_modules hwClean cleant
+
+$(TARGETS): iblMain
+
+ifeq ($(TARGET),c661x)
+ HAS_SPI=1
+else
+ HAS_SPI=0
+endif
+
+ifeq ($(INTERNAL_UTILS), no)
+ HAS_INTERNAL_UTILS = 0
+else
+ HAS_INTERNAL_UTILS = 1
+endif
+
+ifeq (EXCLUDE_SPI, $(strip $(findstring EXCLUDE_SPI, $(MAINDEFS))))
+ HAS_SPI=0
+endif
+
+ifeq (EXCLUDE_I2C, $(strip $(findstring EXCLUDE_I2C, $(MAINDEFS))))
+ HAS_I2C=0
+else
+ HAS_I2C=1
+endif
+
+# The I2C creation options. The I2C map file is run through the C pre-processor to generate
+# the desired I2C mapping. There are three possible configurations - an i2c which has
+# both endians present, or an I2C with only one of the endians
+
+I2C_BE_FILE= '"ibl_$(TARGET)/ibl.i2c.be.ccs"'
+I2C_LE_FILE= '"ibl_$(TARGET)/ibl.i2c.le.ccs"'
+I2C_INIT_BE_FILE= '"ibl_$(TARGET)/ibl_init.i2c.be.ccs"'
+I2C_INIT_LE_FILE= '"ibl_$(TARGET)/ibl_init.i2c.le.ccs"'
+
+I2C_DEFS= -DI2C_BUS_ADDR=$(I2C_BUS_ADDR)
+I2C_DEFS+= -DI2C_MAP_ADDR=$(I2C_MAP_ADDR)
+
+ifeq ($(I2CROM),both)
+ I2C_DEFS+= -DINIT_EXE_FILE=$(I2C_INIT_LE_FILE)
+ I2C_DEFS+= -DEXE_FILE_1=$(I2C_LE_FILE)
+ I2C_DEFS+= -DPAD_FILE_ID_1=1
+ I2C_DEFS+= -DEXE_FILE_2=$(I2C_BE_FILE)
+ I2C_DEFS+= -DPAD_FILE_ID_2=2
+
+ SPI_CFG+= -DINIT_EXE_FILE=$(I2C_INIT_LE_FILE)
+ SPI_CFG+= -DEXE_FILE_1=$(I2C_LE_FILE)
+ SPI_CFG+= -DPAD_FILE_ID_1=1
+ SPI_CFG+= -DEXE_FILE_2=$(I2C_BE_FILE)
+ SPI_CFG+= -DPAD_FILE_ID_2=2
+
+else
+ I2C_DEFS+= -DPAD_FILE_ID_1=1
+ I2C_DEFS+= -DPAD_FILE_ID_2=1
+
+ SPI_CFG+= -DPAD_FILE_ID_1=1
+ SPI_CFG+= -DPAD_FILE_ID_2=1
+
+ ifeq ($(I2CROM),little_endian)
+ I2C_DEFS+= -DINIT_EXE_FILE=$(I2C_INIT_LE_FILE)
+ I2C_DEFS+= -DEXE_FILE_1=$(I2C_LE_FILE)
+ I2C_DEFS+= -DEXE_FILE_2='""'
+
+ SPI_CFG+= -DINIT_EXE_FILE=$(I2C_INIT_LE_FILE)
+ SPI_CFG+= -DEXE_FILE_1=$(I2C_LE_FILE)
+ SPI_CFG+= -DEXE_FILE_2='""'
+
+ else
+ I2C_DEFS+= -DINIT_EXE_FILE=$(I2C_INIT_BE_FILE)
+ I2C_DEFS+= -DEXE_FILE_1='""'
+ I2C_DEFS+= -DEXE_FILE_2=$(I2C_BE_FILE)
+
+ SPI_CFG+= -DINIT_EXE_FILE=$(I2C_INIT_BE_FILE)
+ SPI_CFG+= -DEXE_FILE_1='""'
+ SPI_CFG+= -DEXE_FILE_2=$(I2C_BE_FILE)
+
+ endif
+endif
+
+ifeq ($(HAS_SPI),0)
+ SPI_CFG=
+endif
+
+i2crom:
+ $(CC) -ppo -I../cfg/$(TARGET) $(I2C_DEFS) ibl_$(TARGET)/$@.map.pre
+ ../util/romparse/romparse $(COMPACT) -rom_base $(I2C_BUS_ADDR) ibl_$(TARGET)/$@.map.pp
+ $(CP) i2crom.ccs ibl_$(TARGET)/$@.ccs
+ $(CP) i2crom.ccs ibl_$(TARGET)/$@.dat
+ $(RM) i2crom.ccs ibl_le.b ibl.b
+
+spiRom:
+ @echo Making SPI ROM
+ $(CC) -ppo -I../cfg/$(TARGET) $(SPI_CFG) ibl_$(TARGET)/$@.map.pre
+ ../util/romparse/romparse $(COMPACT) -fill 0xff -rom_base 0 ibl_$(TARGET)/$@.map.pp
+ $(CP) i2crom.ccs ibl_$(TARGET)/$@.ccs
+ $(CP) i2crom.ccs ibl_$(TARGET)/$@.dat
+
+
+
+
+
+# Target compare checks if the iblInit is compiled the same for both endians
+compare:
+ @echo -
+ @sh -c 'if diff -q ibl_$(TARGET)/ibl_init.le.ccs ibl_$(TARGET)/ibl_init.be.ccs ; then echo IBL init endian neutral ; else echo !!! WARNING !!!! IBL ini NOT endian neutral !!! ; fi '
+ @echo -
+
+# For the init code a raw image is created as well as the i2c code to verify
+# endian independent code is generated. The symbols required for linking
+# the full application are then extracted
+iblInit: $(CFG_MODULES) $(MODULES)
+ cat ibl_$(TARGET)/ibl_init_objs_template.inc | sed -e s/ENDIAN_TAG/$(IEXT)/g > ibl_$(TARGET)/ibl_init_objs.tmp
+ $(CC) -ppo $(MAINDEFS) -DENDIAN_TAG=$(IEXT) ibl_$(TARGET)/ibl_init_objs.tmp
+ $(CP) ibl_$(TARGET)/ibl_init_objs.pp ibl_$(TARGET)/ibl_init_objs.inc
+ $(LD) -o ibl_$(TARGET)/ibl_$(TARGET)_init.out -m ibl_$(TARGET)/ibl_$(TARGET)_init.map ibl_$(TARGET)/ibl_init.cmd $(RTLIBS)
+ $(CP) ibl_$(TARGET)/ibl_$(TARGET)_init.out ibl_$(TARGET)/ibl_$(TARGET)_init.$(IEXT).out
+ $(RM) -f ibl_$(TARGET)/ibl_init_obj.inc
+
+ hex6x $(HEX_OPT) ibl_$(TARGET)/ibl_init_image.rmd ibl_$(TARGET)/ibl_$(TARGET)_init.out
+ $(CP) ibl_le.b ibl_$(TARGET)/ibl.b
+ ../util/btoccs/b2ccs ibl_$(TARGET)/ibl.b ibl_$(TARGET)/ibl_init.$(IEXT).ccs
+
+ hex6x $(HEX_OPT) ibl_$(TARGET)/ibl_init.rmd ibl_$(TARGET)/ibl_$(TARGET)_init.out
+ ../util/bconvert/bconvert64x -$(IEXT) ibl_le.b ibl.b
+ $(CP) ibl.b ibl_$(TARGET)
+ ../util/btoccs/b2i2c ibl_$(TARGET)/ibl.b ibl_$(TARGET)/ibl.i2c.b
+ ../util/btoccs/b2ccs ibl_$(TARGET)/ibl.i2c.b ibl_$(TARGET)/ibl_init.i2c.$(IEXT).ccs
+
+ sed -e 's/\\r//' ../util/symExtract/symExtract > ../util/symExtract/symExtract_unix
+ bash ../util/symExtract/symExtract_unix ibl_$(TARGET)/ibl_$(TARGET)_init.map ibl_$(TARGET)/ibl_init_symbols.inc $(COMMON_SYMBOLS)
+ rm -f ../util/symExtract/symExtract_unix
+
+
+iblMain: iblInit $(CFG_MODULES) $(MODULES)
+ cat ibl_$(TARGET)/ibl_objs_template.inc | sed -e s/ENDIAN_TAG/$(IEXT)/g > ibl_$(TARGET)/ibl_objs.tmp
+ $(CC) -ppo $(MAINDEFS) -DENDIAN_TAG=$(IEXT) ibl_$(TARGET)/ibl_objs.tmp
+ $(CP) ibl_$(TARGET)/ibl_objs.pp ibl_$(TARGET)/ibl_objs.inc
+ $(LD) -o ibl_$(TARGET)/ibl_$(TARGET).out -m ibl_$(TARGET)/ibl_$(TARGET).$(IEXT).map ibl_$(TARGET)/ibl.cmd $(RTLIBS)
+ $(CP) ibl_$(TARGET)/ibl_$(TARGET).out ibl_$(TARGET)/ibl_$(TARGET).$(IEXT).out
+ $(RM) -f ibl_$(TARGET)/ibl_obj.inc
+
+ hex6x $(HEX_OPT) ibl_$(TARGET)/ibl.rmd ibl_$(TARGET)/ibl_$(TARGET).out
+ ../util/bconvert/bconvert64x -$(IEXT) ibl_le.b ibl.b
+ $(CP) ibl.b ibl_$(TARGET)
+ ../util/btoccs/b2i2c ibl_$(TARGET)/ibl.b ibl_$(TARGET)/ibl.i2c.b
+ ../util/btoccs/b2ccs ibl_$(TARGET)/ibl.i2c.b ibl_$(TARGET)/ibl.i2c.$(IEXT).ccs
+
+
+$(MODULES):
+ @echo making $@
+ make -C $(IBL_ROOT)/$@/$(ARCH)/make $@
+
+$(CFG_MODULES):
+ @echo making $@ SPI_CFG=$(SPI_CFG) CDEFS=$(CDEFS) EXCLUDES=$(EXCLUDES)
+ make -C $(IBL_ROOT)/$@/$(ARCH)/make CDEFS='$(MAINDEFS) $(SPI_CFG)' $@
+
+utils:
+ifeq ($(HAS_SPI),1)
+ifeq ($(HAS_INTERNAL_UTILS),1)
+ make -C $(IBL_ROOT)/util/spiWrite TARGET=$(TARGET) SPI_DEFS='$(SPI_DEFS)' MAINDEFS='$(MAINDEFS) $(SPI_CFG)' $(TARGET)
+ make -C $(IBL_ROOT)/util/spiConfig TARGET=$(TARGET) SPI_DEFS='$(SPI_DEFS)' MAINDEFS='$(MAINDEFS) $(SPI_CFG)' $(TARGET)
+endif
+endif
+ make -C $(IBL_ROOT)/util/btoccs
+ make -C $(IBL_ROOT)/util/romparse TARGET=$(TARGET)
+ifeq ($(HAS_I2C),1)
+ifeq ($(HAS_INTERNAL_UTILS),1)
+ make -C $(IBL_ROOT)/util/i2cRead TARGET=$(TARGET) $(TARGET)
+ make -C $(IBL_ROOT)/util/i2cWrite TARGET=$(TARGET) I2C_SIZE_BYTES=$(I2C_SIZE_BYTES) MAINDEFS='$(MAINDEFS) $(SPI_CFG)' $(TARGET)
+endif
+ make -C $(IBL_ROOT)/util/i2cConfig $(TARGET) MAINDEFS='$(MAINDEFS) $(SPI_CFG)'
+endif
+ make -C $(IBL_ROOT)/util/bconvert
+
+clean: $(CLEAN_MODULES) hwClean
+
+
+$(CLEAN_MODULES):
+ @echo cleaning $(subst clean_, ,$@)
+ make -C $(IBL_ROOT)/$(subst clean_,,$@)/$(ARCH)/make clean ARCH=c64x TARGET=$(TARGET)
+
+hwClean:
+ @echo cleaning hw
+ make -C $(IBL_ROOT)/hw/$(ARCH)/make cleant ARCH=$(ARCH) TARGET=$(TARGET)
+
+cleant:
+ rm -rf ibl_$(TARGET)/ibl_$(TARGET).be.out
+ rm -rf ibl_$(TARGET)/ibl_$(TARGET).le.out
+ rm -rf ibl_$(TARGET)/ibl_$(TARGET).be.map
+ rm -rf ibl_$(TARGET)/ibl_$(TARGET).le.map
+ rm -rf ibl_$(TARGET)/ibl_$(TARGET)_init.map
+ rm -rf ibl_$(TARGET)/ibl_$(TARGET)_init.out
+ rm -rf ibl_$(TARGET)/ibl_$(TARGET)_init.be.map
+ rm -rf ibl_$(TARGET)/ibl_$(TARGET)_init.be.out
+ rm -rf ibl_$(TARGET)/ibl_$(TARGET)_init.le.map
+ rm -rf ibl_$(TARGET)/ibl_$(TARGET)_init.le.out
+ 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.be.ccs
+ rm -rf ibl_$(TARGET)/ibl.i2c.le.ccs
+ rm -rf ibl_$(TARGET)/ibl_init.i2c.be.ccs
+ rm -rf ibl_$(TARGET)/ibl_init.i2c.le.ccs
+ rm -rf ibl_$(TARGET)/ibl_init.le.ccs
+ rm -rf ibl_$(TARGET)/ibl_init.be.ccs
+ rm -rf ibl_$(TARGET)/i2crom.ccs
+ rm -rf ibl_$(TARGET)/i2crom.dat
+ rm -rf ibl_$(TARGET)/i2crom_0x50.dat
+ rm -rf ibl_$(TARGET)/i2crom_0x51.dat
+ rm -rf ibl_$(TARGET)/i2crom.map.pp
+ rm -rf ibl_$(TARGET)/ibl_init_objs.inc
+ rm -rf ibl_$(TARGET)/ibl_init_objs.pp
+ rm -rf ibl_$(TARGET)/ibl_init_symbols.inc
+ rm -rf ibl_$(TARGET)/ibl_objs.inc
+ rm -rf ibl_$(TARGET)/ibl_objs.pp
+ rm -rf ibl_$(TARGET)/ibl_objs.tmp
+ rm -rf ibl_$(TARGET)/spiRom.dat
+ rm -rf ibl_$(TARGET)/spiRom.map.pp
+
+
+
+
+
+
+
+
diff --git a/boot_loader/IBL_release_info.txt b/boot_loader/IBL_release_info.txt
--- /dev/null
@@ -0,0 +1,28 @@
+=====================================================
+C6x Bootloader Release Note
+Version: 1.0.0.1
+March 2011
+=====================================================
+
+1) Supported TARGETS:
+ - C6455
+ - C6472
+ - C6474
+ - C661x
+2) Supported ENDIAN
+ - big
+ - little
+3) Required toolset
+ - TI CGEN compiler CGT_C6000_7.2.0
+4) Build Instructions
+
+ - Change directory to ibl\src\make
+ - Modify the setupenv.bat or setupenvLnx.sh script to match the tool environment
+ - Set the environment by running "setupenv.bat" or "source setupenvLnx.sh"
+ - For building run:
+ make evm_c6678_i2c ENDIAN=little I2C_BUS_ADDR=0x51 INTERNAL_UTILS=no
+ or:
+ make <TARGET> ENDIAN=[little|big]
+ make c6455 ENDIAN=liitle
+ make c6455 ENDIAN=big
+
diff --git a/boot_loader/tools_install.bat b/boot_loader/tools_install.bat
--- /dev/null
@@ -0,0 +1,22 @@
+mv -f IBL_release_info.txt ibl\doc\release_info.txt
+mv -f IBL_README.txt ibl\doc\README.txt
+mv -f IBL_setupenv.bat ibl\src\make\setupenv.bat
+mv -f IBL_Makefile ibl\src\make\Makefile
+mv -f IBL_makestg1 ibl\src\make\makestg1
+mv -f IBL_makestg2 ibl\src\make\makestg2
+
+rm -f -r ibl\src\util\spiWrite
+rm -f -r ibl\src\util\i2cRead
+rm -f -r ibl\src\util\i2cWrite
+rm -f -r ibl\src\util\nandwriter
+rm -f -r ibl\src\util\spiConfig
+
+mv -f MAD_README.txt mad-utils\mad-loader\README.txt
+mv -f MAD_setupenv.bat mad-utils\mad-loader\setupenv.bat
+mv -f MAD_buildmad mad-utils\mad-loader\buildmad
+
+
+
+
+
+