libtrellis: Add multiboot ctrl0 flag

Signed-off-by: Jens Andersen <jens.andersen@gmail.com>
diff --git a/libtrellis/src/Bitstream.cpp b/libtrellis/src/Bitstream.cpp
index f8100ab..6bcf450 100644
--- a/libtrellis/src/Bitstream.cpp
+++ b/libtrellis/src/Bitstream.cpp
@@ -28,6 +28,8 @@
      {"dual-spi", 0x51},
      {"qspi", 0x59}};
 
+static const uint32_t multiboot_flag = 1 << 20;
+
 // The BitstreamReadWriter class stores state (including CRC16) whilst reading
 // the bitstream
 class BitstreamReadWriter {
@@ -433,6 +435,12 @@
             throw runtime_error("bad frequency option " + options.at("freq"));
         ctrl0 |= freq->second;
     }
+    if (options.count("multiboot")) {
+        if (options.at("multiboot") == "yes")
+            ctrl0 |= multiboot_flag;
+        else
+            ctrl0 &= ~multiboot_flag;
+    }
     wr.write_uint32(ctrl0);
     // Init address
     wr.write_byte(uint8_t(BitstreamCommand::LSC_INIT_ADDRESS));