s5pc110: support evt1
authorMinkyu Kang <mk7.kang@samsung.com>
Thu, 24 Dec 2009 08:30:46 +0000 (17:30 +0900)
committerMinkyu Kang <mk7.kang@samsung.com>
Thu, 24 Dec 2009 08:30:46 +0000 (17:30 +0900)
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
build.sh
onenand_ipl/board/samsung/universal/Makefile
onenand_ipl/board/samsung/universal/checksum.c

index e716b41..41cd021 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -38,11 +38,18 @@ build_uboot()
        make ARCH=arm CROSS_COMPILE="$CCACHE $CROSS_COMPILER" $JOBS $*
 }
 
+make_evt1_image()
+{
+       cat onenand_ipl/onenand-ipl-16k-1.bin u-boot.bin > u-boot-onenand1.bin
+}
+
 check_ccache
 check_users
 
 build_uboot $*
 
+make_evt1_image
+
 size=`ls -al u-boot-onenand.bin | awk -F' ' '{printf $5}'`
 if [ "$size" -ge "262144" ]; then
        echo "u-boot-onenand.bin execced the 256KiB 262144 -> $size"
index 77c78a7..1c34a8e 100644 (file)
@@ -21,6 +21,7 @@ TEXT_BASE    = 0xD0034000
 TEXT_BASE2K  = 0xD0034800
 TEXT_BASE4K  = 0xD0035000
 TEXT_BASE16K = 0xD0038000
+TEXT_BASE16K1= 0xD0037ff0
 
 LDSCRIPT= $(TOPDIR)/onenand_ipl/board/$(BOARDDIR)/u-boot-onenand.lds
 LDFLAGS        = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
@@ -46,8 +47,11 @@ ALL  = $(onenandobj)onenand-ipl $(onenandobj)onenand-ipl.bin $(onenandobj)onenand
 all:   $(obj).depend $(ALL)
 
 $(onenandobj)onenand-ipl-16k.bin:      $(onenandobj)onenand-ipl checksum
+       $(OBJCOPY) ${OBJCFLAGS} --pad-to=$(TEXT_BASE16K1) -O binary $< $@
+       $(onenandobj)/board/$(BOARDDIR)/checksum $(onenandobj)onenand-ipl-16k.bin 1
+       cat $(onenandobj)/board/$(BOARDDIR)/header.bin $(onenandobj)onenand-ipl-16k.bin > $(onenandobj)onenand-ipl-16k-1.bin
        $(OBJCOPY) ${OBJCFLAGS} --pad-to=$(TEXT_BASE16K) -O binary $< $@
-       $(onenandobj)/board/$(BOARDDIR)/checksum $(onenandobj)onenand-ipl-16k.bin
+       $(onenandobj)/board/$(BOARDDIR)/checksum $(onenandobj)onenand-ipl-16k.bin 0
 
 $(onenandobj)onenand-ipl.bin:  $(onenandobj)onenand-ipl
        $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
index 7844f3e..36f86a3 100644 (file)
@@ -35,9 +35,17 @@ int main(int argc, char *argv[])
        int i, j;
        char buf;
        int fd;
+       int fd0;
        unsigned int sum = 0;
        struct stat stat;
        off_t size;
+       unsigned int header[4];
+       int evt;
+
+       if (argc != 3)
+               evt = 0;
+       else
+               evt = atoi(argv[2]);
 
        fd = open(argv[1], O_RDWR);
 
@@ -99,7 +107,8 @@ int main(int argc, char *argv[])
 #endif
        }
 
-       ret = write(fd, &sum, 4);
+       if (evt == 0)
+               ret = write(fd, &sum, 4);
 
        if (ret < 0)
                printf("read err: %s\n", ret);
@@ -108,5 +117,26 @@ int main(int argc, char *argv[])
 
        printf("checksum = %x\n", sum);
 
+       if (evt == 1) {
+               fd0 = open("header.bin", O_RDWR | O_CREAT | O_TRUNC,
+                                       S_IRUSR | S_IWUSR);
+
+               if (fd0 < 0) {
+                       printf("open err: header.bin\n");
+                       return 1;
+               }
+
+               if (size == CHECKSUM_16K)
+                       header[0] = 0x10000;
+               else
+                       header[0] = 0x1000;
+               header[1] = 0;
+               header[2] = sum;
+               header[3] = 0;
+
+               ret = write(fd0, header, 16);
+               close(fd0);
+       }
+
        return 0;
 }