diff --git a/lib/gen_misc.py b/lib/gen_misc.py
index 0dc0d64..ef0710d 100755
--- a/lib/gen_misc.py
+++ b/lib/gen_misc.py
@@ -592,23 +592,3 @@
     """
 
     return [str(stack_frame[3]) for stack_frame in inspect.stack()]
-
-
-def username():
-    r"""
-    Return the username for the current process.
-    """
-
-    username = os.environ.get("USER", "")
-    if username != "":
-        return username
-    user_num = str(os.geteuid())
-    try:
-        username = os.getlogin()
-    except OSError:
-        if user_num == "0":
-            username = "root"
-        else:
-            username = "?"
-
-    return username
diff --git a/lib/gen_plug_in_utils.py b/lib/gen_plug_in_utils.py
index 9af1be3..769e73e 100755
--- a/lib/gen_plug_in_utils.py
+++ b/lib/gen_plug_in_utils.py
@@ -45,7 +45,7 @@
     Example excerpt of resulting dictionary:
 
     plug_var_dict:
-      [AUTOBOOT_BASE_TOOL_DIR_PATH]:  /tmp/
+      [AUTOBOOT_BASE_TOOL_DIR_PATH]:  /fspmount/
       [AUTOBOOT_BB_LEVEL]:            <blank>
       [AUTOBOOT_BOOT_FAIL]:           0
       ...
@@ -146,7 +146,7 @@
     package_name>_ in upper case letters.).
 
     Example excerpt of output:
-    AUTOBOOT_BASE_TOOL_DIR_PATH=/tmp/
+    AUTOBOOT_BASE_TOOL_DIR_PATH=/fspmount/
     AUTOBOOT_BB_LEVEL=
     AUTOBOOT_BOOT_FAIL=0
     AUTOBOOT_BOOT_FAIL_THRESHOLD=1000000
@@ -385,15 +385,14 @@
 
     BASE_TOOL_DIR_PATH = \
         gm.add_trailing_slash(os.environ.get(PLUG_VAR_PREFIX
-                                             + "_BASE_TOOL_DIR_PATH",
-                                             "/tmp/"))
+                                             + "BASE_TOOL_DIR_PATH",
+                                             "/fspmount/"))
     NICKNAME = os.environ.get("AUTOBOOT_OPENBMC_NICKNAME", "")
     if NICKNAME == "":
         NICKNAME = os.environ["AUTOIPL_FSP1_NICKNAME"]
     MASTER_PID = os.environ[PLUG_VAR_PREFIX + "_MASTER_PID"]
-    gp.pvars(BASE_TOOL_DIR_PATH, NICKNAME, plug_in_package_name, MASTER_PID)
-    return BASE_TOOL_DIR_PATH + gm.username() + "/" + NICKNAME + "/" +\
-        plug_in_package_name + "/" + str(MASTER_PID) + "/"
+    return BASE_TOOL_DIR_PATH + os.environ["USER"] + "/" + NICKNAME + "/" +\
+        plug_in_package_name + "/" + MASTER_PID + "/"
 
 
 def create_plug_in_save_dir(plug_in_package_name=None):
