annotate helpers/mk-flash-script.c @ 635:baa0a02bc676

niq32.c DTR handling restored for targets that have it TI's original TCS211 fw treated GPIO 3 as the DTR input (wired so on C-Sample and D-Sample boards, also compatible with Leonardo and FCDEV3B which have a fixed pull-down resistor on this GPIO line), and the code in niq32.c called UAF_DTRInterruptHandler() (implemented in uartfax.c) from the IQ_KeypadGPIOHandler() function. But on Openmoko's GTA02 with their official fw this GPIO is a floating input, all of the DTR handling code in uartfax.c including the interrupt logic is still there, but the hobbled TCS211-20070608 semi-src delivery which OM got from TI contained a change in niq32.c (which had been kept in FC until now) that removed the call to UAF_DTRInterruptHandler() as part of those not-quite-understood "CC test" hacks. The present change fixes this bug at a long last: if we are building fw for a target that has TI's "classic" DTR & DCD GPIO arrangement (dsample, fcmodem and gtm900), we bring back all of TI's original code in both uartfax.c and niq32.c, whereas if we are building fw for a target that does not use this classic GPIO arrangement, the code in niq32.c goes back to what we got from OM and all DTR & DCD code in uartfax.c is conditioned out. This change also removes the very last remaining bit of "CC test" bogosity from our FreeCalypso code base.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 19 Jan 2020 01:41:35 +0000
parents d4d07c751e56
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
257
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * This helper program generates the fc-loadtool command script
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 * for flashing the just-built firmware image.
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 */
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 #include <sys/types.h>
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 #include <sys/stat.h>
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 #include <stdio.h>
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 #include <stdlib.h>
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 #include <unistd.h>
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 main(argc, argv)
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 char **argv;
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 {
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 struct stat st;
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 u_long image_size, sector_size;
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 if (argc != 4) {
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 fprintf(stderr,
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 "usage: %s fwimage.bin flash-base flash-sector-size\n",
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 argv[0]);
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 exit(1);
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 }
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 if (stat(argv[1], &st) < 0) {
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 perror(argv[1]);
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 exit(1);
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 }
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 if (!S_ISREG(st.st_mode)) {
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 fprintf(stderr, "error: %s is not a regular file\n", argv[1]);
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 exit(1);
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 }
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 image_size = st.st_size;
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 sector_size = strtoul(argv[3], 0, 16);
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 image_size += sector_size - 1;
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 image_size &= ~(sector_size - 1);
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 printf("flash erase %s 0x%lx\n", argv[2], image_size);
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 printf("flash program-bin %s %s\n", argv[2], argv[1]);
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 exit(0);
d4d07c751e56 helpers: mk-flash-script helper program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 }