[util/fpga] Add "save to eeprom" feature

Signed-off-by: Colin O'Flynn <coflynn@newae.com>
diff --git a/util/fpga/cw310_loader.py b/util/fpga/cw310_loader.py
index 3d16747..e43f8a5 100755
--- a/util/fpga/cw310_loader.py
+++ b/util/fpga/cw310_loader.py
@@ -32,6 +32,11 @@
                         help='Path to the software .bin file to load',
                         default=None)
 
+    parser.add_argument('--set-pll-defaults',
+                        action='store_true',
+                        help='Program on-board PLL with defaults',
+                        default=False)
+
     args = parser.parse_args()
 
     print("CW310 Loader: Attemping to find CW310 FPGA Board:")
@@ -41,17 +46,21 @@
         print("    No bitstream specified")
     target = cw.target(None, CW310, bsfile=args.bitstream, slurp=False)
 
-    print("Board found, setting PLL2 to 100 MHz")
+    print("CW310 Board Found:")
 
-    target.pll.pll_enable_set(True)
-    target.pll.pll_outenable_set(False, 0)
-    # Note: 1 and 2 seem to be reversed.
-    target.pll.pll_outenable_set(True, 1)
-    target.pll.pll_outenable_set(False, 2)
+    if args.set_pll_defaults:
+        print("Configuring PLL, setting as default")
+        target.pll.pll_enable_set(True)
+        target.pll.pll_outenable_set(False, 0)
+        # Note: 1 and 2 seem to be reversed.
+        target.pll.pll_outenable_set(True, 1)
+        target.pll.pll_outenable_set(False, 2)
 
-    # Note: both 1 and 2 need to be set, even if only 1 is enabled.
-    target.pll.pll_outfreq_set(100E6, 1)
-    target.pll.pll_outfreq_set(100E6, 2)
+        # Note: both 1 and 2 need to be set, even if only 1 is enabled.
+        target.pll.pll_outfreq_set(100E6, 1)
+        target.pll.pll_outfreq_set(100E6, 2)
+        
+        target.pll.pll_writedefaults()
 
     if args.firmware:
         print("INFO: Programming firmware file: {}".format(args.firmware))