Big endian support
authorunknown <a0216664@.dhcp.itg.ti.com>
Tue, 28 Sep 2010 12:01:28 +0000 (08:01 -0400)
committerunknown <a0216664@.dhcp.itg.ti.com>
Tue, 28 Sep 2010 12:01:28 +0000 (08:01 -0400)
Make files modified to handle big endian version

src/interp/c64x/make/makefile
src/main/c64x/make/makefile
src/main/iblmain.c
src/make/ibl_c6472/ibl.cmd
src/make/ibl_c6472/ibl.rmd
src/make/makestg2
src/test/test2/makestage2
src/util/i2cConfig/i2cparam.c

index b0f9fd5670d176a8a9409c6f27018af03532def5..2cfead40a5eb8c428d9564507ce591571a318a55 100644 (file)
@@ -12,7 +12,20 @@ endif
 
 ECODIR= $(IBL_ROOT)/interp
 
-CSRC= bis.c cload.c osal.c btblpr.c btblwrap.c gem.c blob.c
+# BIS 
+CSRC= bis.c 
+
+# COFF
+CSRC += cload.c osal.c 
+
+# TI BOOT TABLE
+CSRC += btblpr.c btblwrap.c gem.c 
+
+# Blob
+CSRC += blob.c
+
+# elf loader files
+CSRC += dload.c elfwrap.c dlw_client.c dload_endian.c ArrayList.c
 
 
 .PHONY: interp
@@ -33,6 +46,7 @@ vpath % $(ECODIR)/bis
 vpath % $(ECODIR)/coff
 vpath % $(ECODIR)/btbl
 vpath % $(ECODIR)/blob
+vpath % $(ECODIR)/elf
 
 interp: gen_cdefdep makefile $(OBJS)
 
index 1bd053d4e47439d17de5e2eda1bf17924544dfb8..50cc403f3a1ebe3b7718559cb5e0f700927b9dbc 100644 (file)
@@ -30,6 +30,7 @@ C6X_C_DIR+= ;$(IBL_ROOT)/interp/bis
 C6X_C_DIR+= ;$(IBL_ROOT)/interp/coff
 C6X_C_DIR+= ;$(IBL_ROOT)/interp/btbl
 C6X_C_DIR+= ;$(IBL_ROOT)/interp/blob
+C6X_C_DIR+= ;$(IBL_ROOT)/interp/elf
 C6X_C_DIR+= ;$(IBL_ROOT)/arch/$(ARCH)
 C6X_C_DIR+= ;$(IBL_ROOT)/device
 C6X_C_DIR+= ;$(IBL_ROOT)/device/$(TARGET)
index dc67161a600ffc6a06597c135b81db8a324f0fe5..c271ef15eef3c8137289ca40a03d8db67515d7d1 100644 (file)
@@ -23,6 +23,7 @@
 #include "iblblob.h"
 #include "timer.h"
 #include "i2c.h"
+#include "ibl_elf.h"
 #include <string.h>
 
 
@@ -247,6 +248,12 @@ Uint32 iblBoot (BOOT_MODULE_FXN_TABLE *bootFxn, Int32 dataFormat, void *formatPa
             iblBootBlob (bootFxn, &entry, formatParams);
             break;
 
+#if 0
+        case ibl_BOOT_FORMAT_ELF:
+            iblBootElf (bootFxn, &entry);
+            break;
+#endif
+
         default:
             iblStatus.invalidDataFormatSpec += 1;
             break;
index c655b3de7ac8fba1e1e8246384bf05e6f8094996..9458c4eafde07d1202d495b5509d1fb2d0eaa858 100644 (file)
 ../interp/c64x/make/btblpr.oc
 ../interp/c64x/make/gem.oc
 ../interp/c64x/make/blob.oc
+
+/*
+../interp/c64x/make/dload.oc
+../interp/c64x/make/elfwrap.oc
+../interp/c64x/make/dlw_client.oc
+../interp/c64x/make/dload_endian.oc
+../interp/c64x/make/ArrayList.oc
+*/
+
 ../ecc/c64x/make/3byte_ecc.oc
 
 -c
 
 MEMORY
 {
-       TEXT   :  origin = 0x801000, length = 0x10000
-       STACK  :  origin = 0x811000, length = 0x0800
-       HEAP   :  origin = 0x811800, length = 0x6000
-       DATA   :  origin = 0x817800, length = 0x3000
-       CFG    :  origin = 0x821800, length = 0x0300
-       STAT :    origin = 0x821b00, length = 0x0200
+       TEXT   :  origin = 0x801000, length = 0x20000
+       STACK  :  origin = 0x821000, length = 0x0800
+       HEAP   :  origin = 0x821800, length = 0x6000
+       DATA   :  origin = 0x827800, length = 0x3000
+       CFG    :  origin = 0x831800, length = 0x0300
+       STAT :    origin = 0x831b00, length = 0x0200
 }
 
 SECTIONS
index d2290d61e6de3b8c264af20a3c6c4fda26e871b4..d988274e3e4e3a0501f8b139719b7a8112a8a323 100644 (file)
@@ -1,7 +1,6 @@
 -a
 -boot
 -e _c_int00
--order L
 
 ROMS
 {
index 2c89626c503e044677f0e57efb03c60e16730ef4..621996cce0d6e2b0c05662edf744e2f082f9afe7 100644 (file)
@@ -14,6 +14,13 @@ endif
 MODULES= main device ethboot nandboot driver hw interp ecc
 CLEAN_MODULES=$(addprefix clean_,$(MODULES))
 
+ifeq ($(ENDIAN),little)
+       HEX_OPT= -order L
+       BCV_OPT= -le
+else
+       HEX_OPT= -order M
+       BCV_OPT= -be
+endif
 
 include $(IBL_ROOT)/make/$(ARCH)/makedefs.mk
 
@@ -27,14 +34,14 @@ c6455: $(MODULES)
 
 c6472: $(MODULES) utils
        $(LD) -o ibl_$@/ibl_$@.out -m ibl_$@/ibl_$@.map  ibl_$@/ibl.cmd $(RTLIBS)
-       hex6x ibl_$@/ibl.rmd ibl_$@/ibl_$@.out
-       ../util/bconvert/bconvert64x -le ibl_le.b ibl.b
+       hex6x $(HEX_OPT) ibl_$@/ibl.rmd ibl_$@/ibl_$@.out
+       ../util/bconvert/bconvert64x $(BCV_OPT) ibl_le.b ibl.b
        $(CP) ibl.b ibl_$@
        ../util/btoccs/b2i2c ibl_$@/ibl.b ibl_$@/ibl.i2c.b
        ../util/btoccs/b2ccs ibl_$@/ibl.i2c.b ibl_$@/ibl.i2c.ccs
        ../util/romparse_$@/romparse ibl_$@/i2crom.map
        $(CP) i2crom.ccs ibl_$@
-       $(RM) -f i2crom.ccs ibl.b
+       $(RM) i2crom.ccs ibl.b
 
 
 $(MODULES):
index fd4364e66349268f526ce3dbc34dcde2bd1b86be..2b007c2f99cb8e1a25fe902e31692df486ca85bc 100644 (file)
@@ -11,15 +11,17 @@ test2: gen_cdefdep utils test2_$(ENDIAN).blob
 ifeq ($(ENDIAN),little)
  LIB= $(TOOLSC6X)/cgtools/lib/rts64plus.lib
  OPT=
+ C2B_OPT=
 else
  LIB= $(TOOLSC6X)/cgtools/lib/rts64pluse.lib
  OPT= -me
+ C2B_OPT= -swap
 endif
 
 
 
 test2_$(ENDIAN).blob: test2_$(ENDIAN).bccs
-       ..\..\util\btoccs\ccs2bin $< $@
+       ..\..\util\btoccs\ccs2bin $(C2B_OPT) $< $@
 
 test2_$(ENDIAN).bccs: test2_$(ENDIAN).b
        ..\..\util\btoccs\b2ccs $< $@
index 6f4e852aeb3c9044d25d02361491ccfddb52d411..28f63645d9633d7d8a5fb4307c0b5e67d2cac092 100644 (file)
@@ -68,10 +68,16 @@ void setupTable (void)
     ibl.ethConfig[0].useBootpFileName = FALSE;
     ibl.ethConfig[0].bootFormat       = ibl_BOOT_FORMAT_BBLOB;
 
+#if 0
     SETIP(ibl.ethConfig[0].ethInfo.ipAddr,    192,168,2,100);
     SETIP(ibl.ethConfig[0].ethInfo.serverIp,  192,168,2,110);
     SETIP(ibl.ethConfig[0].ethInfo.gatewayIp, 192,168,2,2);
     SETIP(ibl.ethConfig[0].ethInfo.netmask,   255,255,255,0);
+#endif
+    SETIP(ibl.ethConfig[0].ethInfo.ipAddr,    10,218,109,35);
+    SETIP(ibl.ethConfig[0].ethInfo.serverIp,  10,218,109,196);
+    SETIP(ibl.ethConfig[0].ethInfo.gatewayIp, 10,218,109,1);
+    SETIP(ibl.ethConfig[0].ethInfo.netmask,   255,255,255,0);
 
     /* Leave the hardware address as 0 so the e-fuse value will be used */