X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=common%2Fcmd_vfd.c;h=1429d311675ab46a22b2350597fe3df82f7650cc;hb=4638b21f2ebc3781def51e82fb4e425a468f2e49;hp=ac0224c087e2fae0dc4e34558013e3e9bf20b19e;hpb=82226bf4d2fe87076d7f5d7e2677fdd5d0e35fc2;p=u-boot diff --git a/common/cmd_vfd.c b/common/cmd_vfd.c index ac0224c087..1429d31167 100644 --- a/common/cmd_vfd.c +++ b/common/cmd_vfd.c @@ -35,7 +35,7 @@ #include #include -#if (CONFIG_COMMANDS & CFG_CMD_VFD) +#if defined(CONFIG_CMD_VFD) #include #define VFD_TEST_LOGO_BMPNR 0 @@ -45,43 +45,60 @@ extern int transfer_pic(unsigned char, unsigned char *, int, int); int trab_vfd (ulong bitmap); -int do_vfd (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +int do_vfd (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { ulong bitmap; if (argc != 2) { - printf ("Usage:\n%s\n", cmdtp->usage); + cmd_usage(cmdtp); return 1; } - if (argv[1][0] == '#') { /* select bitmap by number */ + if (argv[1][0] == '/') { /* select bitmap by number */ bitmap = simple_strtoul(argv[1]+1, NULL, 10); return (trab_vfd(bitmap)); } /* display bitmap at given address */ bitmap = simple_strtoul(argv[1], NULL, 16); - transfer_pic(1, (uchar *)bitmap, VFD_LOGO_HEIGHT, VFD_LOGO_WIDTH); + transfer_pic(3, (uchar *)bitmap, VFD_LOGO_HEIGHT, VFD_LOGO_WIDTH); return 0; } -#endif /* CFG_CMD_VFD */ -#ifdef CONFIG_VFD +U_BOOT_CMD( + vfd, 2, 0, do_vfd, + "load a bitmap to the VFDs on TRAB", + "/N\n" + " - load bitmap N to the VFDs (N is _decimal_ !!!)\n" + "vfd ADDR\n" + " - load bitmap at address ADDR" +); +#endif + int trab_vfd (ulong bitmap) { + uchar *addr; + char *s; + switch (bitmap) { case VFD_TEST_LOGO_BMPNR: - transfer_pic(1, &vfd_test_logo_bitmap[0], - VFD_LOGO_HEIGHT, VFD_LOGO_WIDTH); - return 0; + if ((s = getenv ("bitmap0")) != NULL) { + addr = (uchar *)simple_strtoul (s, NULL, 16); + } else { + addr = &vfd_test_logo_bitmap[0]; + } + break; case VFD_REMOTE_LOGO_BMPNR: - transfer_pic(1, &vfd_remote_logo_bitmap[0], - VFD_LOGO_HEIGHT, VFD_LOGO_WIDTH); - return 0; + if ((s = getenv ("bitmap1")) != NULL) { + addr = (uchar *)simple_strtoul (s, NULL, 16); + } else { + addr = &vfd_remote_logo_bitmap[0]; + } + break; default: printf("Unknown bitmap %ld\n", bitmap); return 1; } - /* NOTREACHED */ + transfer_pic(3, addr, VFD_LOGO_HEIGHT, VFD_LOGO_WIDTH); + return 0; } -#endif /* CONFIG_VFD */