annotate helpers/mk-flash-script.c @ 72:7bf39f5e834d

backlight control on Luna: switch PWL instead of LEDB This change is preliminary toward upcoming rework of backlight control logic in our UI firmware. LEDB does not exist on Tango-based platforms (it is not brought out on Tango modules), thus turning it on and off produces absolutely no effect beyond making L1 disable deep sleep when LEDB is turned on. However, both iWOW DSK and our upcoming FC Caramel2 boards have a PWL LED, so let's switch that LED on and off to indicate the state of the UI firmware's backlight control. Note that we are NOT switching the actual Luna LCD backlight here, even though it is trivially controlled with a GPIO. The reason for this seemingly strange choice is that we don't want to turn this development board LCD backlight off until we bring the higher-level backlight control logic up to par, including new logic to "swallow" the first keypress that turns on the darkened LCD.
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 24 Oct 2020 07:39:54 +0000
parents 1fb47f5b597a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * This helper program generates the fc-loadtool command script
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 * for flashing the just-built firmware image.
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 */
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 #include <sys/types.h>
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 #include <sys/stat.h>
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 #include <stdio.h>
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 #include <stdlib.h>
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 #include <unistd.h>
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 main(argc, argv)
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 char **argv;
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 {
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 struct stat st;
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 u_long image_size, sector_size;
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 if (argc != 4) {
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 fprintf(stderr,
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 "usage: %s fwimage.bin flash-base flash-sector-size\n",
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 argv[0]);
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 exit(1);
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 }
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 if (stat(argv[1], &st) < 0) {
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 perror(argv[1]);
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 exit(1);
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 }
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 if (!S_ISREG(st.st_mode)) {
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 fprintf(stderr, "error: %s is not a regular file\n", argv[1]);
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 exit(1);
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 }
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 image_size = st.st_size;
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 sector_size = strtoul(argv[3], 0, 16);
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 image_size += sector_size - 1;
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 image_size &= ~(sector_size - 1);
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 printf("flash erase %s 0x%lx\n", argv[2], image_size);
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 printf("flash program-bin %s %s\n", argv[2], argv[1]);
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 exit(0);
1fb47f5b597a helpers: import from Magnetite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 }