diff --git a/app/firmware/controllers/bmc-controller.html b/app/firmware/controllers/bmc-controller.html
deleted file mode 100644
index 61f7493..0000000
--- a/app/firmware/controllers/bmc-controller.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<div id="firmware-bmc">
-    <div class="row column">
-        <h1>Firmware BMC</h1>
-    </div>
-</div>
\ No newline at end of file
diff --git a/app/firmware/controllers/bmc-controller.js b/app/firmware/controllers/bmc-controller.js
deleted file mode 100644
index 3d38672..0000000
--- a/app/firmware/controllers/bmc-controller.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * Controller for bmc
- *
- * @module app/firmware
- * @exports bmcController
- * @name bmcController
- */
-
-window.angular && (function(angular) {
-  'use strict';
-
-  angular.module('app.firmware').controller('bmcController', [
-    '$scope', '$window', 'APIUtils', 'dataService',
-    function($scope, $window, APIUtils, dataService) {
-      $scope.dataService = dataService;
-    }
-  ]);
-
-})(angular);
diff --git a/app/firmware/controllers/server-controller.html b/app/firmware/controllers/server-controller.html
deleted file mode 100644
index a99d17e..0000000
--- a/app/firmware/controllers/server-controller.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<div id=firmware-server">
-    <div class="row column">
-        <h1>Firmware Server</h1>
-    </div>
-</div>
\ No newline at end of file
diff --git a/app/firmware/controllers/server-controller.js b/app/firmware/controllers/server-controller.js
deleted file mode 100644
index b57241b..0000000
--- a/app/firmware/controllers/server-controller.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * Controller for server
- *
- * @module app/firmware
- * @exports serverController
- * @name serverController
- */
-
-window.angular && (function(angular) {
-  'use strict';
-
-  angular.module('app.firmware').controller('serverController', [
-    '$scope', '$window', 'APIUtils', 'dataService',
-    function($scope, $window, APIUtils, dataService) {
-      $scope.dataService = dataService;
-    }
-  ]);
-
-})(angular);
diff --git a/app/firmware/index.js b/app/firmware/index.js
deleted file mode 100644
index f25e18e..0000000
--- a/app/firmware/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * A module for the firmware
- *
- * @module app/firmware/index
- * @exports app/firmware/index
- */
-
-window.angular && (function(angular) {
-  'use strict';
-
-  angular
-      .module(
-          'app.firmware', ['ngRoute', 'app.constants', 'app.common.services'])
-      // Route configuration
-      .config([
-        '$routeProvider',
-        function($routeProvider) {
-          $routeProvider
-              .when('/firmware/bmc', {
-                'template': require('./controllers/bmc-controller.html'),
-                'controller': 'bmcController',
-                authenticated: true
-              })
-              .when('/firmware/server', {
-                'template': require('./controllers/server-controller.html'),
-                'controller': 'serverController',
-                authenticated: true
-              })
-              .when('/firmware', {
-                'template': reqire('./controllers/bmc-controller.html'),
-                'controller': 'bmcController',
-                authenticated: true
-              });
-        }
-      ]);
-
-})(window.angular);
diff --git a/app/firmware/styles/bmc.scss b/app/firmware/styles/bmc.scss
deleted file mode 100644
index e69de29..0000000
--- a/app/firmware/styles/bmc.scss
+++ /dev/null
diff --git a/app/firmware/styles/index.scss b/app/firmware/styles/index.scss
deleted file mode 100644
index 9595341..0000000
--- a/app/firmware/styles/index.scss
+++ /dev/null
@@ -1,2 +0,0 @@
-@import "./bmc.scss";
-@import "./server.scss";
\ No newline at end of file
diff --git a/app/firmware/styles/server.scss b/app/firmware/styles/server.scss
deleted file mode 100644
index e69de29..0000000
--- a/app/firmware/styles/server.scss
+++ /dev/null
diff --git a/app/index.js b/app/index.js
index c3c1630..f9f3051 100644
--- a/app/index.js
+++ b/app/index.js
@@ -82,10 +82,6 @@
 import security_controller from './configuration/controllers/security-controller.js';
 import firmware_controller from './configuration/controllers/firmware-controller.js';
 
-import firmware_index from './firmware/index.js';
-import bmc_controller from './firmware/controllers/bmc-controller.js';
-import server_controller from './firmware/controllers/server-controller.js';
-
 import multi_server_index from './multi-server/index.js';
 import multi_server_controller from './multi-server/controllers/multi-server-controller.js';
 
