diff --git a/tools/intel_vbt_decode.c b/tools/intel_vbt_decode.c
index cee1d5196a9ada55ac1a8e0dfa34dc441c3881e7..1fb83225357af593a457b4ea7a55c892f26d989d 100644
--- a/tools/intel_vbt_decode.c
+++ b/tools/intel_vbt_decode.c
@@ -316,6 +316,8 @@ static size_t block_min_size(const struct context *context, int section_id)
 		return sizeof(struct bdb_general_features);
 	case BDB_GENERAL_DEFINITIONS:
 		return sizeof(struct bdb_general_definitions);
+	case BDB_DISPLAY_TOGGLE:
+		return sizeof(struct bdb_display_toggle);
 	case BDB_PSR:
 		return sizeof(struct bdb_psr);
 	case BDB_CHILD_DEVICE_TABLE:
@@ -1249,6 +1251,20 @@ static void dump_general_definitions(struct context *context,
 			   child_dev_num, defs->child_dev_size);
 }
 
+static void dump_display_toggle(struct context *context,
+				const struct bdb_block *block)
+{
+	const struct bdb_display_toggle *t = block_data(block);
+
+	printf("\tFeature bits: 0x%02x\n", t->feature_bits);
+	printf("\tNum entries: %d\n", t->num_entries);
+
+	for (int i = 0; i < t->num_entries; i++)
+		printf("\tToggle list #%d: %s (0x%04x)\n",
+		       i+1, child_device_handle(context, t->list[i]),
+		       t->list[i]);
+}
+
 static void dump_legacy_child_devices(struct context *context,
 				      const struct bdb_block *block)
 {
@@ -2727,6 +2743,11 @@ struct dumper dumpers[] = {
 		.name = "General definitions block",
 		.dump = dump_general_definitions,
 	},
+	{
+		.id = BDB_DISPLAY_TOGGLE,
+		.name = "Display toggle option block",
+		.dump = dump_display_toggle,
+	},
 	{
 		.id = BDB_PSR,
 		.min_bdb_version = 165,