Add support for BOOT_TABLE_PATH -v parm

Change-Id: I99d7210c77fe44043420d75fadc107d3c444a72c
Signed-off-by: Michael Walsh <micwalsh@us.ibm.com>
diff --git a/extended/obmc_boot_test_resource.robot b/extended/obmc_boot_test_resource.robot
index 45b655d..063d47d 100644
--- a/extended/obmc_boot_test_resource.robot
+++ b/extended/obmc_boot_test_resource.robot
@@ -20,7 +20,7 @@
 ...  status_file_path  openbmc_model  boot_pass  boot_fail  ffdc_dir_path_style
 ...  ffdc_check  ffdc_only  ffdc_function_list  state_change_timeout
 ...  power_on_timeout  power_off_timeout  boot_fail_threshold  delete_errlogs
-...  call_post_stack_plug  do_pre_boot_plug_in_setup  test_mode  quiet  debug
+...  call_post_stack_plug  do_pre_boot_plug_in_setup  boot_table_path  test_mode  quiet  debug
 
 # Initialize each program parameter.
 ${openbmc_host}               ${EMPTY}
@@ -71,6 +71,9 @@
 # choose whether to run pre_boot_plug_in_setup which clears existing FFDC file
 # lists and sets new ffdc_prefix value.
 ${do_pre_boot_plug_in_setup}  ${1}
+# The path to the boot_table.json file which defines the boot requirements.  This defaults to the value of
+# the BOOT_TABLE_PATH environment variable or to data/boot_table.json.
+${boot_table_path}            ${None}
 ${test_mode}                  0
 ${quiet}                      0
 ${debug}                      0
diff --git a/lib/obmc_boot_test.py b/lib/obmc_boot_test.py
index c31b053..780b8a07 100755
--- a/lib/obmc_boot_test.py
+++ b/lib/obmc_boot_test.py
@@ -46,8 +46,6 @@
 
 # Set up boot data structures.
 os_host = BuiltIn().get_variable_value("${OS_HOST}", default="")
-boot_table = create_boot_table(os_host=os_host)
-valid_boot_types = create_valid_boot_list(boot_table)
 
 boot_lists = read_boot_lists()
 
@@ -191,6 +189,8 @@
     global ffdc_list_file_path
     global ffdc_report_list_path
     global ffdc_summary_list_path
+    global boot_table
+    global valid_boot_types
 
     if ffdc_dir_path_style == "":
         ffdc_dir_path_style = int(os.environ.get('FFDC_DIR_PATH_STYLE', '0'))
@@ -199,6 +199,9 @@
     boot_list = list(filter(None, boot_list.split(":")))
     boot_stack = list(filter(None, boot_stack.split(":")))
 
+    boot_table = create_boot_table(boot_table_path, os_host=os_host)
+    valid_boot_types = create_valid_boot_list(boot_table)
+
     cleanup_boot_results_file()
     boot_results_file_path = create_boot_results_file_path(pgm_name,
                                                            openbmc_nickname,