aboutsummaryrefslogtreecommitdiffstats
path: root/x-loader/scripts/signGP.c
diff options
context:
space:
mode:
authorH. Nikolaus Schaller <hns@goldelico.com>2012-04-20 14:10:36 +0200
committerH. Nikolaus Schaller <hns@goldelico.com>2012-04-20 14:10:36 +0200
commit819e36b8ceadb1d67db1ffe91b99c5282bfc6159 (patch)
treecaa2bc25e54f0d41abb61920f29d3bf5eee3d864 /x-loader/scripts/signGP.c
parenta9a9e3f6aed040a12daf64157615f5e9fed974bb (diff)
downloadbootable_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.c300
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;
-}