diff --git a/src/assets/styles/bmc/custom/_index.scss b/src/assets/styles/bmc/custom/_index.scss
index 9d6218f..74594e3 100644
--- a/src/assets/styles/bmc/custom/_index.scss
+++ b/src/assets/styles/bmc/custom/_index.scss
@@ -12,6 +12,7 @@
 @import "./kvm";
 @import "./modal";
 @import "./pagination";
+@import "./section-divider";
 @import "./sol";
 @import "./tables";
 @import "./toasts";
\ No newline at end of file
diff --git a/src/assets/styles/bmc/custom/_section-divider.scss b/src/assets/styles/bmc/custom/_section-divider.scss
new file mode 100644
index 0000000..620c9e5
--- /dev/null
+++ b/src/assets/styles/bmc/custom/_section-divider.scss
@@ -0,0 +1,3 @@
+.section-divider {
+    border-bottom: 1px solid gray('400');
+  }
\ No newline at end of file
diff --git a/src/assets/styles/bmc/custom/_tables.scss b/src/assets/styles/bmc/custom/_tables.scss
index 6efe2ba..e8b5a83 100644
--- a/src/assets/styles/bmc/custom/_tables.scss
+++ b/src/assets/styles/bmc/custom/_tables.scss
@@ -59,6 +59,7 @@
     background-color: theme-color("light");
     td {
       padding-left: calc(50px + (#{$table-cell-padding} * 2));
+      padding-right: calc(50px + (#{$table-cell-padding} * 2));
     }
     dl {
       margin: 0;
diff --git a/src/locales/en-US.json b/src/locales/en-US.json
index 31b4446..33048f6 100644
--- a/src/locales/en-US.json
+++ b/src/locales/en-US.json
@@ -384,29 +384,40 @@
       "graphicalConsole": "Graphical console",
       "hardwareType": "Hardware type",
       "health": "Health",
+      "healthRollup": "Health rollup",
       "id": "ID",
       "identifyLed": "Identify LED",
       "indicatorLed": "Indicator LED",
       "locationNumber": "Location number",
       "instructionSet": "Instruction set",
+      "locationNumber": "Location number",
       "manufacturer": "Manufacturer",
       "maxConcurrentSessions": "Max concurrent sessions",
+      "maxSpeedMHz": "Max speed MHz",
+      "minSpeedMHz": "Min speed MHz",
       "model": "Model",
       "name": "Name",
       "partNumber": "Part number",
       "powerInputWatts": "Power input watts",
       "powerState": "Power state",
-      "processorArchitecture": "Architecture",
-      "processorType": "Type",
+      "processorArchitecture": "Processor architecture",
+      "processorType": "Processor type",
       "serialConsole": "Serial console",
       "serialNumber": "Serial number",
       "serviceEnabled": "Service enabled",
       "serviceEntryPointUuid": "Service entry point UUID",
+      "sparePartNumber": "Spare part number",
       "statusHealthRollup": "Status (Health rollup)",
       "statusState": "Status (State)",
       "systemType": "System type",
       "totalCores": "Total cores",
-      "uuid": "UUID"
+      "totalThreads": "Total threads",
+      "uuid": "UUID",
+      "version": "Version"
+    },
+    "toast": {
+      "errorDisableIdentifyLed": "Error disabling Identify LED.",
+      "errorEnableIdentifyLed": "Error enabling Identify LED."
     }
   },
   "pageKvm": {
diff --git a/src/store/modules/Health/ProcessorStore.js b/src/store/modules/Health/ProcessorStore.js
index 4a67c6b..1531466 100644
--- a/src/store/modules/Health/ProcessorStore.js
+++ b/src/store/modules/Health/ProcessorStore.js
@@ -1,4 +1,5 @@
 import api from '@/store/api';
+import i18n from '@/i18n';
 
 const ProcessorStore = {
   namespaced: true,
@@ -16,18 +17,28 @@
           Status = {},
           PartNumber,
           SerialNumber,
+          SparePartNumber,
           InstructionSet,
           Manufacturer,
           Model,
           Name,
           ProcessorArchitecture,
           ProcessorType,
+          Version,
+          AssetTag,
+          MinSpeedMHz,
+          MaxSpeedMHz,
           TotalCores,
+          TotalThreads,
+          LocationNumber,
+          LocationIndicatorActive,
         } = processor;
         return {
           id: Id,
           health: Status.Health,
+          healthRollup: Status.HealthRollup,
           partNumber: PartNumber,
+          sparePartNumber: SparePartNumber,
           serialNumber: SerialNumber,
           statusState: Status.State,
           instructionSet: InstructionSet,
@@ -36,7 +47,15 @@
           name: Name,
           processorArchitecture: ProcessorArchitecture,
           processorType: ProcessorType,
+          version: Version,
+          assetTag: AssetTag,
+          minSpeedMHz: MinSpeedMHz,
+          maxSpeedMHz: MaxSpeedMHz,
           totalCores: TotalCores,
+          totalThreads: TotalThreads,
+          locationNumber: LocationNumber,
+          identifyLed: LocationIndicatorActive,
+          uri: processor['@odata.id'],
         };
       });
     },
@@ -55,6 +74,30 @@
         })
         .catch((error) => console.log(error));
     },
+    // Waiting for the following to be merged to test the Identify Led:
+    // https://gerrit.openbmc-project.xyz/c/openbmc/bmcweb/+/37045
+    async updateIdentifyLedValue({ dispatch }, led) {
+      const uri = led.uri;
+      const updatedIdentifyLedValue = {
+        LocationIndicatorActive: led.identifyLed,
+      };
+      return await api
+        .patch(uri, updatedIdentifyLedValue)
+        .then(() => dispatch('getProcessorsInfo'))
+        .catch((error) => {
+          dispatch('getProcessorsInfo');
+          console.log('error', error);
+          if (led.identifyLed) {
+            throw new Error(
+              i18n.t('pageHardwareStatus.toast.errorEnableIdentifyLed')
+            );
+          } else {
+            throw new Error(
+              i18n.t('pageHardwareStatus.toast.errorDisableIdentifyLed')
+            );
+          }
+        });
+    },
   },
 };
 
diff --git a/src/views/Health/HardwareStatus/HardwareStatusTableProcessors.vue b/src/views/Health/HardwareStatus/HardwareStatusTableProcessors.vue
index 27f3bd8..e3b5735 100644
--- a/src/views/Health/HardwareStatus/HardwareStatusTableProcessors.vue
+++ b/src/views/Health/HardwareStatus/HardwareStatusTableProcessors.vue
@@ -47,41 +47,97 @@
         <status-icon :status="statusIcon(value)" />
         {{ value }}
       </template>
+
+      <!-- Toggle identify LED -->
+      <template #cell(identifyLed)="row">
+        <b-form-checkbox
+          v-if="hasIdentifyLed(row.item.identifyLed)"
+          v-model="row.item.identifyLed"
+          name="switch"
+          switch
+          @change="toggleIdentifyLedValue(row.item)"
+        >
+          <span v-if="row.item.identifyLed">
+            {{ $t('global.status.on') }}
+          </span>
+          <span v-else> {{ $t('global.status.off') }} </span>
+        </b-form-checkbox>
+        <div v-else>--</div>
+      </template>
+
       <template #row-details="{ item }">
         <b-container fluid>
           <b-row>
-            <b-col sm="6" xl="4">
+            <b-col class="mt-2" sm="6" xl="6">
               <dl>
                 <!-- Name -->
                 <dt>{{ $t('pageHardwareStatus.table.name') }}:</dt>
                 <dd>{{ tableFormatter(item.name) }}</dd>
+                <!-- Part Number -->
+                <dt>{{ $t('pageHardwareStatus.table.partNumber') }}:</dt>
+                <dd>{{ tableFormatter(item.partNumber) }}</dd>
+                <!-- Serial Number -->
+                <dt>{{ $t('pageHardwareStatus.table.serialNumber') }}:</dt>
+                <dd>{{ tableFormatter(item.serialNumber) }}</dd>
+                <!-- Spare Part Number -->
+                <dt>{{ $t('pageHardwareStatus.table.sparePartNumber') }}:</dt>
+                <dd>{{ tableFormatter(item.sparePartNumber) }}</dd>
                 <!-- Model -->
                 <dt>{{ $t('pageHardwareStatus.table.model') }}:</dt>
                 <dd>{{ tableFormatter(item.model) }}</dd>
-                <!-- Instruction set -->
-                <dt>{{ $t('pageHardwareStatus.table.instructionSet') }}:</dt>
-                <dd>{{ tableFormatter(item.instructionSet) }}</dd>
+                <!-- Asset Tag -->
+                <dt>{{ $t('pageHardwareStatus.table.assetTag') }}:</dt>
+                <dd>{{ tableFormatter(item.assetTag) }}</dd>
+              </dl>
+            </b-col>
+            <b-col class="mt-2" sm="6" xl="6">
+              <dl>
+                <!-- Status state -->
+                <dt>{{ $t('pageHardwareStatus.table.statusState') }}:</dt>
+                <dd>{{ tableFormatter(item.statusState) }}</dd>
+                <!-- Health Rollup -->
+                <dt>{{ $t('pageHardwareStatus.table.healthRollup') }}:</dt>
+                <dd>{{ tableFormatter(item.healthRollup) }}</dd>
+              </dl>
+            </b-col>
+          </b-row>
+          <div class="section-divider mb-3 mt-3"></div>
+          <b-row>
+            <b-col class="mt-1" sm="6" xl="6">
+              <dl>
                 <!-- Manufacturer -->
                 <dt>{{ $t('pageHardwareStatus.table.manufacturer') }}:</dt>
                 <dd>{{ tableFormatter(item.manufacturer) }}</dd>
-              </dl>
-            </b-col>
-            <b-col sm="6" xl="4">
-              <dl>
-                <!-- Architecture -->
+                <!-- Processor Type -->
+                <dt>{{ $t('pageHardwareStatus.table.processorType') }}:</dt>
+                <dd>{{ tableFormatter(item.processorType) }}</dd>
+                <!-- Processor Architecture -->
                 <dt>
                   {{ $t('pageHardwareStatus.table.processorArchitecture') }}:
                 </dt>
                 <dd>{{ tableFormatter(item.processorArchitecture) }}</dd>
-                <!-- Type -->
-                <dt>{{ $t('pageHardwareStatus.table.processorType') }}:</dt>
-                <dd>{{ tableFormatter(item.processorType) }}</dd>
-                <!-- Total cores -->
+                <!-- Instruction Set -->
+                <dt>{{ $t('pageHardwareStatus.table.instructionSet') }}:</dt>
+                <dd>{{ tableFormatter(item.instructionSet) }}</dd>
+                <!-- Version -->
+                <dt>{{ $t('pageHardwareStatus.table.version') }}:</dt>
+                <dd>{{ tableFormatter(item.version) }}</dd>
+              </dl>
+            </b-col>
+            <b-col class="mt-1" sm="6" xl="6">
+              <dl>
+                <!-- Min Speed MHz -->
+                <dt>{{ $t('pageHardwareStatus.table.minSpeedMHz') }}:</dt>
+                <dd>{{ tableFormatter(item.minSpeedMHz) }}</dd>
+                <!-- Max Speed MHz -->
+                <dt>{{ $t('pageHardwareStatus.table.maxSpeedMHz') }}:</dt>
+                <dd>{{ tableFormatter(item.maxSpeedMHz) }}</dd>
+                <!-- Total Cores -->
                 <dt>{{ $t('pageHardwareStatus.table.totalCores') }}:</dt>
                 <dd>{{ tableFormatter(item.totalCores) }}</dd>
-                <!-- Status state -->
-                <dt>{{ $t('pageHardwareStatus.table.statusState') }}:</dt>
-                <dd>{{ tableFormatter(item.statusState) }}</dd>
+                <!-- Total Threads -->
+                <dt>{{ $t('pageHardwareStatus.table.totalThreads') }}:</dt>
+                <dd>{{ tableFormatter(item.totalThreads) }}</dd>
               </dl>
             </b-col>
           </b-row>
@@ -96,7 +152,7 @@
 import IconChevron from '@carbon/icons-vue/es/chevron--down/20';
 import StatusIcon from '@/components/Global/StatusIcon';
 import TableCellCount from '@/components/Global/TableCellCount';
-
+import BVToastMixin from '@/components/Mixins/BVToastMixin';
 import TableSortMixin from '@/components/Mixins/TableSortMixin';
 import TableDataFormatterMixin from '@/components/Mixins/TableDataFormatterMixin';
 import Search from '@/components/Global/Search';
@@ -110,6 +166,7 @@
 export default {
   components: { IconChevron, PageSection, StatusIcon, Search, TableCellCount },
   mixins: [
+    BVToastMixin,
     TableRowExpandMixin,
     TableDataFormatterMixin,
     TableSortMixin,
@@ -138,16 +195,16 @@
           tdClass: 'text-nowrap',
         },
         {
-          key: 'partNumber',
-          label: this.$t('pageHardwareStatus.table.partNumber'),
+          key: 'locationNumber',
+          label: this.$t('pageHardwareStatus.table.locationNumber'),
           formatter: this.tableFormatter,
           sortable: true,
         },
         {
-          key: 'serialNumber',
-          label: this.$t('pageHardwareStatus.table.serialNumber'),
+          key: 'identifyLed',
+          label: this.$t('pageHardwareStatus.table.identifyLed'),
           formatter: this.tableFormatter,
-          sortable: true,
+          sortable: false,
         },
       ],
       searchFilter: searchFilter,
@@ -175,6 +232,19 @@
     onFiltered(filteredItems) {
       this.searchTotalFilteredRows = filteredItems.length;
     },
+    toggleIdentifyLedValue(row) {
+      this.$store
+        .dispatch('processors/updateIdentifyLedValue', {
+          uri: row.uri,
+          identifyLed: row.identifyLed,
+        })
+        .catch(({ message }) => this.errorToast(message));
+    },
+    // TO DO: remove hasIdentifyLed when the following is merged:
+    // https://gerrit.openbmc-project.xyz/c/openbmc/bmcweb/+/37045
+    hasIdentifyLed(identifyLed) {
+      return typeof identifyLed === 'boolean';
+    },
   },
 };
 </script>
