diff --git a/sysmgr/peripheral/fan_control_params.tbl b/sysmgr/peripheral/fan_control_params.tbl
index 7566499..912de26 100644
--- a/sysmgr/peripheral/fan_control_params.tbl
+++ b/sysmgr/peripheral/fan_control_params.tbl
@@ -6,3 +6,6 @@
 GFMS100_HDD    57     60    2      25    100   2
 
 GFHD100_SOC    90     100   2      12    40    1
+
+# TODO(jnewlin): Need to update with new values after characterization.
+GFHD254_SOC    90     100   2      12    40    1
diff --git a/sysmgr/peripheral/fancontrol.cc b/sysmgr/peripheral/fancontrol.cc
index d427307..ca72805 100644
--- a/sysmgr/peripheral/fancontrol.cc
+++ b/sysmgr/peripheral/fancontrol.cc
@@ -150,6 +150,16 @@
                           temp_overheat : 120,
                         };
 
+const FanControlParams FanControl::kGFHD254FanCtrlSocDefaults = {
+                          temp_setpt    : 90,
+                          temp_max      : 100,
+                          temp_step     : 2,
+                          duty_cycle_min: 12,
+                          duty_cycle_max: 40,
+                          pwm_step      : 1,
+                          temp_overheat : 120,
+                        };
+
 const FanControlParams FanControl::kGFLT110FanCtrlSocDefaults = {
                           temp_setpt    : 0,  /* No fan */
                           temp_max      : 0,
@@ -233,6 +243,10 @@
       pfan_ctrl_params_[BRUNO_SOC] = kGFHD200FanCtrlSocDefaults;
       max = BRUNO_SOC;
       break;
+    case BRUNO_GFHD254:
+      pfan_ctrl_params_[BRUNO_SOC] = kGFHD254FanCtrlSocDefaults;
+      max = BRUNO_SOC;
+      break;
     case BRUNO_GFRG200:
       /* Set thermal fan policy parameters of GFRG200 */
       pfan_ctrl_params_[BRUNO_SOC] = kGFRG200FanCtrlSocDefaults;
diff --git a/sysmgr/peripheral/fancontrol.h b/sysmgr/peripheral/fancontrol.h
index 7cdcabe..d8fa5b5 100644
--- a/sysmgr/peripheral/fancontrol.h
+++ b/sysmgr/peripheral/fancontrol.h
@@ -71,6 +71,7 @@
 
   static const FanControlParams kGFHD100FanCtrlSocDefaults;
   static const FanControlParams kGFHD200FanCtrlSocDefaults;
+  static const FanControlParams kGFHD254FanCtrlSocDefaults;
 
   static const FanControlParams kGFLT110FanCtrlSocDefaults;
 
diff --git a/sysmgr/peripheral/platform.cc b/sysmgr/peripheral/platform.cc
index 5daf474..f82ec8f 100644
--- a/sysmgr/peripheral/platform.cc
+++ b/sysmgr/peripheral/platform.cc
@@ -21,6 +21,7 @@
   Platform("GFSC100", BRUNO_GFSC100, true,  true),
   Platform("GFLT110", BRUNO_GFLT110, false, false),
   Platform("GFLT120", BRUNO_GFLT110, false, false),
+  Platform("GFHD254", BRUNO_GFHD254, false, true),
   Platform("UNKNOWN PLATFORM", BRUNO_UNKNOWN, false, false),
 };
 
@@ -33,19 +34,20 @@
   GetPlatformType();
 }
 
+#define ARRAYSIZE(a) \
+      ((sizeof(a) / sizeof(*(a))) / \
+          static_cast<size_t>(!(sizeof(a) % sizeof(*(a)))))
+
 void Platform::GetPlatformType(void) {
   std::string result = GetLine((char *)PLATFORM_FILE, NULL);
 
-  if (result.empty() == false) {
-    for (int i = BRUNO_PLATFORM_FIRST; i < BRUNO_PLATFORM_MAX; i++) {
-      if ((result.size() == kPlatformTable[i].name_.size()) &&
-          (result.compare(0, kPlatformTable[i].name_.size(), kPlatformTable[i].name_) == 0)) {
-        name_ = kPlatformTable[i].name_;
-        type_ = kPlatformTable[i].type_;
-        has_hdd_ = kPlatformTable[i].has_hdd_;
-        has_fan_ = kPlatformTable[i].has_fan_;
-        break;
-      }
+  for (int i = 0; i < ARRAYSIZE(Platform::kPlatformTable); i++) {
+    if (result == kPlatformTable[i].name_) {
+      name_ = kPlatformTable[i].name_;
+      type_ = kPlatformTable[i].type_;
+      has_hdd_ = kPlatformTable[i].has_hdd_;
+      has_fan_ = kPlatformTable[i].has_fan_;
+      break;
     }
   }
 
diff --git a/sysmgr/peripheral/platform.h b/sysmgr/peripheral/platform.h
index 9f6ae1b..c5057b0 100644
--- a/sysmgr/peripheral/platform.h
+++ b/sysmgr/peripheral/platform.h
@@ -24,11 +24,11 @@
   BRUNO_GFSC100,          /* Spacecast */
   BRUNO_GFHD200,          /* Camaro */
   BRUNO_GFLT110,          /* Fiber Jack */
-  BRUNO_PLATFORM_MAX
+  BRUNO_GFLT120,          /* Fiber Jack */
+  BRUNO_GFHD254,          /* Lockdown */
+  BRUNO_UNKNOWN
 };
 
-#define BRUNO_UNKNOWN   BRUNO_PLATFORM_MAX
-
 class Platform {
 
  public:
