diff options
author | H. Nikolaus Schaller <hns@goldelico.com> | 2012-04-20 14:10:36 +0200 |
---|---|---|
committer | H. Nikolaus Schaller <hns@goldelico.com> | 2012-04-20 14:10:36 +0200 |
commit | 819e36b8ceadb1d67db1ffe91b99c5282bfc6159 (patch) | |
tree | caa2bc25e54f0d41abb61920f29d3bf5eee3d864 /x-loader/scripts/signGP.c | |
parent | a9a9e3f6aed040a12daf64157615f5e9fed974bb (diff) | |
download | bootable_bootloader_goldelico_gta04_x-loader-819e36b8ceadb1d67db1ffe91b99c5282bfc6159.zip bootable_bootloader_goldelico_gta04_x-loader-819e36b8ceadb1d67db1ffe91b99c5282bfc6159.tar.gz bootable_bootloader_goldelico_gta04_x-loader-819e36b8ceadb1d67db1ffe91b99c5282bfc6159.tar.bz2 |
tree moved to a better location
Diffstat (limited to 'x-loader/scripts/signGP.c')
-rw-r--r-- | x-loader/scripts/signGP.c | 300 |
1 files changed, 0 insertions, 300 deletions
diff --git a/x-loader/scripts/signGP.c b/x-loader/scripts/signGP.c deleted file mode 100644 index 963a937..0000000 --- a/x-loader/scripts/signGP.c +++ /dev/null @@ -1,300 +0,0 @@ -/** - * signGP.c - Read the x-load.bin file and write out the x-load.bin.ift file - * - * The signed image is the original pre-pended with the size of the image - * and the load address. If not entered on command line, file name is - * assumed to be x-load.bin in current directory and load address is - * 0x40200800. - * - * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 of - * the License as published by the Free Software Foundation. - * - * 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, see <http://www.gnu.org/licenses/>. - */ - -#include <stdio.h> -#include <stdlib.h> -#include <fcntl.h> -#include <sys/stat.h> -#include <string.h> -#include <malloc.h> -#include <linux/types.h> - -#undef CH_WITH_CHRAM -struct chsettings { - __u32 section_key; - __u8 valid; - __u8 version; - __u16 reserved; - __u32 flags; -} __attribute__ ((__packed__)); - -/* __u32 cm_clksel_core; - __u32 reserved1; - __u32 cm_autoidle_dpll_mpu; - __u32 cm_clksel_dpll_mpu; - __u32 cm_div_m2_dpll_mpu; - __u32 cm_autoidle_dpll_core; - __u32 cm_clksel_dpll_core; - __u32 cm_div_m2_dpll_core; - __u32 cm_div_m3_dpll_core; - __u32 cm_div_m4_dpll_core; - __u32 cm_div_m5_dpll_core; - __u32 cm_div_m6_dpll_core; - __u32 cm_div_m7_dpll_core; - __u32 cm_autoidle_dpll_per; - __u32 cm_clksel_dpll_per; - __u32 cm_div_m2_dpll_per; - __u32 cm_div_m3_dpll_per; - __u32 cm_div_m4_dpll_per; - __u32 cm_div_m5_dpll_per; - __u32 cm_div_m6_dpll_per; - __u32 cm_div_m7_dpll_per; - __u32 cm_autoidle_dpll_usb; - __u32 cm_clksel_dpll_usb; - __u32 cm_div_m2_dpll_usb; -}*/ - -struct gp_header { - __u32 size; - __u32 load_addr; -} __attribute__ ((__packed__)); - -struct ch_toc { - __u32 section_offset; - __u32 section_size; - __u8 unused[12]; - __u8 section_name[12]; -} __attribute__ ((__packed__)); - -struct chram { - /* CHRAM */ - __u32 section_key_chr; - __u8 section_disable_chr; - __u8 pad_chr[3]; - /* EMIF1 */ - __u32 config_emif1; - __u32 refresh_emif1; - __u32 tim1_emif1; - __u32 tim2_emif1; - __u32 tim3_emif1; - __u32 pwrControl_emif1; - __u32 phy_cntr1_emif1; - __u32 phy_cntr2_emif1; - __u8 modereg1_emif1; - __u8 modereg2_emif1; - __u8 modereg3_emif1; - __u8 pad_emif1; - /* EMIF2 */ - __u32 config_emif2; - __u32 refresh_emif2; - __u32 tim1_emif2; - __u32 tim2_emif2; - __u32 tim3_emif2; - __u32 pwrControl_emif2; - __u32 phy_cntr1_emif2; - __u32 phy_cntr2_emif2; - __u8 modereg1_emif2; - __u8 modereg2_emif2; - __u8 modereg3_emif2; - __u8 pad_emif2; - - __u32 dmm_lisa_map; - __u8 flags; - __u8 pad[3]; -} __attribute__ ((__packed__)); - - -struct ch_chsettings_chram { - struct ch_toc toc_chsettings; - struct ch_toc toc_chram; - struct ch_toc toc_terminator; - struct chsettings section_chsettings; - struct chram section_chram; - __u8 padding1[512 - - (sizeof(struct ch_toc) * 3 + - sizeof(struct chsettings) + sizeof(struct chram))]; - /* struct gp_header gpheader; */ -} __attribute__ ((__packed__)); - -struct ch_chsettings_nochram { - struct ch_toc toc_chsettings; - struct ch_toc toc_terminator; - struct chsettings section_chsettings; - __u8 padding1[512 - - (sizeof(struct ch_toc) * 2 + - sizeof(struct chsettings))]; - /* struct gp_header gpheader; */ -} __attribute__ ((__packed__)); - - -#ifdef CH_WITH_CHRAM -static const struct ch_chsettings_chram config_header = { - /* CHSETTINGS TOC */ - {sizeof(struct ch_toc) * 4, - sizeof(struct chsettings), - "", - {"CHSETTINGS"} - }, - /* CHRAM TOC */ - {sizeof(struct ch_toc) * 4 + sizeof(struct chsettings), - sizeof(struct chram), - "", - {"CHRAM"} - }, - /* toc terminator */ - {0xFFFFFFFF, - 0xFFFFFFFF, - {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF}, - {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF} - }, - /* CHSETTINGS section */ - { - 0xC0C0C0C1, - 0, - 1, - 0, - 0}, - /* CHRAM section */ - { - 0xc0c0c0c2, - 0x01, - {0x00, 0x00, 0x00}, - - /* EMIF1 */ - 0x80800eb2, - 0x00000010, - 0x110d1624, - 0x3058161b, - 0x030060b2, - 0x00000200, - 0x901ff416, - 0x00000000, - 0x23, - 0x01, - 0x02, - 0x00, - - /* EMIF2 */ - 0x80800eb2, - 0x000002ba, - 0x110d1624, - 0x3058161b, - 0x03006542, - 0x00000200, - 0x901ff416, - 0x00000000, - 0x23, - 0x01, - 0x02, - 0x00, - - /* LISA map */ - 0x80700100, - 0x05, - {0x00, 0x00, 0x00}, - }, - "" -}; -#else -static struct ch_chsettings_nochram config_header - __attribute__((section(".config_header"))) = { - /* CHSETTINGS TOC */ - {(sizeof(struct ch_toc)) * 2, - sizeof(struct chsettings), - "", - {"CHSETTINGS"} - }, - /* toc terminator */ - {0xFFFFFFFF, - 0xFFFFFFFF, - {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF}, - {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF} - }, - /* CHSETTINGS section */ - { - 0xC0C0C0C1, - 0, - 1, - 0, - 0}, - "" -}; -#endif - - -int main(int argc, char *argv[]) -{ - int i; - char ifname[FILENAME_MAX], ofname[FILENAME_MAX], ch; - FILE *ifile, *ofile; - unsigned long loadaddr, len; - struct stat sinfo; - - - /* Default to x-load.bin and 0x40200800. */ - strcpy(ifname, "x-load.bin"); - loadaddr = 0x40200800; - - if ((argc == 2) || (argc == 3)) - strcpy(ifname, argv[1]); - - if (argc == 3) - loadaddr = strtoul(argv[2], NULL, 16); - - /* Form the output file name. */ - strcpy(ofname, ifname); - strcat(ofname, ".ift"); - - /* Open the input file. */ - ifile = fopen(ifname, "rb"); - if (ifile == NULL) { - printf("Cannot open %s\n", ifname); - return 1; - } - - /* Get file length. */ - stat(ifname, &sinfo); - len = sinfo.st_size; - - /* Open the output file and write it. */ - ofile = fopen(ofname, "wb"); - if (ofile == NULL) { - printf("Cannot open %s\n", ofname); - fclose(ifile); - return 1; - } - - /* Pad 1 sector of zeroes. */ -#if 0 - ch = 0x00; - for (i = 0; i < 0x200; i++) - fwrite(&ch, 1, 1, ofile); -#endif - - fwrite(&config_header, 1, 512, ofile); - fwrite(&len, 1, 4, ofile); - fwrite(&loadaddr, 1, 4, ofile); - for (i = 0; i < len; i++) { - fread(&ch, 1, 1, ifile); - fwrite(&ch, 1, 1, ofile); - } - - fclose(ifile); - fclose(ofile); - - return 0; -} |