Add support for arbitrary bitmaps for TRAB's VFD command;
allow to pass boot bitmap addresses in environment variables;
allow for zero boot delay
diff --git a/common/cmd_vfd.c b/common/cmd_vfd.c
index ac0224c..3ef1395 100644
--- a/common/cmd_vfd.c
+++ b/common/cmd_vfd.c
@@ -61,7 +61,7 @@
/* 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 */
@@ -69,19 +69,31 @@
#ifdef CONFIG_VFD
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],
+ transfer_pic(3, &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 */