diff --git a/print.c b/print.c
index 1ccfff1bf7fc9445fcc78a51b264582d6cc8bd8a..c3151865749acde5fe3e5b3863196a617cbcaf60 100644
--- a/print.c
+++ b/print.c
@@ -74,8 +74,10 @@ static void print_supported_chips(void)
 
 	/* calculate maximum column widths and by iterating over all chips */
 	for (f = flashchips; f->name != NULL; f++) {
-		/* Ignore "unknown XXXX SPI chip" entries. */
-		if (!strncmp(f->name, "unknown", 7))
+		/* Ignore generic entries. */
+		if (!strncmp(f->vendor, "Unknown", 7) ||
+		    !strncmp(f->vendor, "Programmer", 10) ||
+		    !strncmp(f->name, "unknown", 7))
 			continue;
 		chipcount++;
 
@@ -161,8 +163,10 @@ static void print_supported_chips(void)
 	msg_ginfo("(P = PROBE, R = READ, E = ERASE, W = WRITE)\n\n");
 
 	for (f = flashchips; f->name != NULL; f++) {
-		/* Don't print "unknown XXXX SPI chip" entries. */
-		if (!strncmp(f->name, "unknown", 7))
+		/* Don't print generic entries. */
+		if (!strncmp(f->vendor, "Unknown", 7) ||
+		    !strncmp(f->vendor, "Programmer", 10) ||
+		    !strncmp(f->name, "unknown", 7))
 			continue;
 
 		/* support for multiline vendor names:
diff --git a/print_wiki.c b/print_wiki.c
index 1c9241e3909b9b1e31e4e1397c4d22282d1bffe7..0213c741d3598db699ccdd35e72fd9867d00a5cc 100644
--- a/print_wiki.c
+++ b/print_wiki.c
@@ -216,9 +216,10 @@ static void print_supported_chips_wiki(int cols)
 	char vmin[6];
 
 	for (f = flashchips; f->name != NULL; f++) {
-		/* Don't count "unknown XXXX SPI chip" entries. */
-		if (!strncmp(f->name, "unknown", 7))
-			continue;
+		/* Don't count generic entries. */
+		if (!strncmp(f->vendor, "Unknown", 7) ||
+		    !strncmp(f->vendor, "Programmer", 10) ||
+		    !strncmp(f->name, "unknown", 7))
 		chipcount++;
 	}
 
@@ -227,8 +228,10 @@ static void print_supported_chips_wiki(int cols)
 		"| valign=\"top\"|\n\n%s", chipcount, chip_th);
 
 	for (f = flashchips; f->name != NULL; f++, i++) {
-		/* Don't print "unknown XXXX SPI chip" entries. */
-		if (!strncmp(f->name, "unknown", 7))
+		/* Don't print generic entries. */
+		if (!strncmp(f->vendor, "Unknown", 7) ||
+		    !strncmp(f->vendor, "Programmer", 10) ||
+		    !strncmp(f->name, "unknown", 7))
 			continue;
 
 		/* Alternate colors if the vendor changes. */