summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorJan Luebbe <jlu@pengutronix.de>2013-06-10 18:38:45 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2014-05-15 12:45:02 +0200
commit2bea297d30016555ae998ede197f3b153fb180d4 (patch)
treec14150934e71513c15f51eadae6a63f19346e0f2 /scripts
parent4fea2ceb9892e740d9167a5e913f9e2933482656 (diff)
downloadbarebox-2bea297d30016555ae998ede197f3b153fb180d4.tar.gz
barebox-2bea297d30016555ae998ede197f3b153fb180d4.tar.xz
ARM: AM3xxx: Add support for building AM33xx spi images
mk-am35xx-spi-image can only build AM35xx images. Rename the tool to mk-am3xxx-spi-image and add support for the AM33xx. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/Makefile2
-rw-r--r--scripts/mk-am3xxx-spi-image.c (renamed from scripts/mk-am35xx-spi-image.c)52
2 files changed, 45 insertions, 9 deletions
diff --git a/scripts/Makefile b/scripts/Makefile
index 3908c1dcb9..d8925da750 100644
--- a/scripts/Makefile
+++ b/scripts/Makefile
@@ -13,7 +13,7 @@ hostprogs-y += kernel-install
hostprogs-$(CONFIG_KALLSYMS) += kallsyms
hostprogs-$(CONFIG_ARCH_MVEBU) += kwbimage kwboot
hostprogs-$(CONFIG_ARCH_NETX) += gen_netx_image
-hostprogs-$(CONFIG_ARCH_OMAP) += omap_signGP mk-am35xx-spi-image
+hostprogs-$(CONFIG_ARCH_OMAP) += omap_signGP mk-am3xxx-spi-image
hostprogs-$(CONFIG_ARCH_S5PCxx) += s5p_cksum
hostprogs-$(CONFIG_ARCH_DAVINCI) += mkublheader
hostprogs-$(CONFIG_ARCH_ZYNQ) += zynq_mkimage
diff --git a/scripts/mk-am35xx-spi-image.c b/scripts/mk-am3xxx-spi-image.c
index 74e79dbee1..dcb7060d21 100644
--- a/scripts/mk-am35xx-spi-image.c
+++ b/scripts/mk-am3xxx-spi-image.c
@@ -48,32 +48,66 @@
#include <getopt.h>
#include <endian.h>
+enum soc {
+ SOC_AM33XX,
+ SOC_AM35XX,
+ SOC_UNKNOWN,
+};
+
+static char *soc_names[] = {
+ [SOC_AM33XX] = "am33xx",
+ [SOC_AM35XX] = "am35xx",
+};
+
void usage(char *prgname)
{
printf("usage: %s [OPTION] FILE > IMAGE\n"
"\n"
"options:\n"
- " -a <address> memory address for the loaded image in SRAM\n",
+ " -a <address> memory address for the loaded image in SRAM\n"
+ " -s <soc> SoC to use (am33xx, am35xx)\n",
prgname);
}
int main(int argc, char *argv[])
{
FILE *input;
- int opt;
+ int opt, i;
off_t pos;
size_t size;
uint32_t addr = 0x40200000;
uint32_t temp;
+ enum soc soc = SOC_UNKNOWN;
+ char *socname = NULL;
- while((opt = getopt(argc, argv, "a:")) != -1) {
+ while((opt = getopt(argc, argv, "a:s:")) != -1) {
switch (opt) {
case 'a':
addr = strtoul(optarg, NULL, 0);
break;
+ case 's':
+ socname = optarg;
+ break;
+ }
+ }
+
+ if (!socname) {
+ fprintf(stderr, "SoC not specified. Use -s <soc>\n");
+ exit(EXIT_FAILURE);
+ }
+
+ for (i = 0; i < 2; i++) {
+ if (!strcmp(socname, soc_names[i])) {
+ soc = i;
+ break;
}
}
+ if (soc == SOC_UNKNOWN) {
+ fprintf(stderr, "SoC %s unknown\n", socname);
+ exit(EXIT_FAILURE);
+ }
+
if (optind >= argc) {
usage(argv[0]);
exit(1);
@@ -108,12 +142,14 @@ int main(int argc, char *argv[])
pos = (pos + 3) & ~3;
/* image size */
- temp = htobe32((uint32_t)pos);
- fwrite(&temp, sizeof(uint32_t), 1, stdout);
+ if (soc == SOC_AM35XX) {
+ temp = htobe32((uint32_t)pos);
+ fwrite(&temp, sizeof(uint32_t), 1, stdout);
- /* memory address */
- temp = htobe32(addr);
- fwrite(&temp, sizeof(uint32_t), 1, stdout);
+ /* memory address */
+ temp = htobe32(addr);
+ fwrite(&temp, sizeof(uint32_t), 1, stdout);
+ }
for (;;) {
size = fread(&temp, 1, sizeof(uint32_t), input);