Sel patch and cpu freq sensor fix
diff --git a/openpower/package/habanero-xml/habanero-xml.mk b/openpower/package/habanero-xml/habanero-xml.mk
index b2e759b..e1abd28 100644
--- a/openpower/package/habanero-xml/habanero-xml.mk
+++ b/openpower/package/habanero-xml/habanero-xml.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-HABANERO_XML_VERSION ?= f98000504ec8fafb4f8547c0427f0a8056e7b8b7
+HABANERO_XML_VERSION ?= 4c1e936c0329384020b126efe69d2148cfe48960
 HABANERO_XML_SITE ?= $(call github,open-power,habanero-xml,$(HABANERO_XML_VERSION))
 
 HABANERO_XML_LICENSE = Apache-2.0
diff --git a/openpower/package/hostboot/hostboot-0008-Sel-instead-of-eSel.patch b/openpower/package/hostboot/hostboot-0008-Sel-instead-of-eSel.patch
new file mode 100644
index 0000000..61f3548
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0008-Sel-instead-of-eSel.patch
@@ -0,0 +1,143 @@
+From d38ee0ae88993dee7b2d703340cf374d107ddfba Mon Sep 17 00:00:00 2001
+From: Brian Horton <brianh@linux.ibm.com>
+Date: Mon, 2 Mar 2015 12:12:28 -0600
+Subject: [PATCH] send down SEL instead of eSEL for hostboot errorlogs
+
+Change-Id: I86ee9766e27548c3f7f72fbdbfd76c8a8be7da73
+RTC: 124971
+---
+ src/include/usr/ipmi/ipmisel.H |  2 ++
+ src/usr/ipmi/ipmisel.C         | 49 +++++++++++++++++++++++++++++++++++-------
+ 2 files changed, 43 insertions(+), 8 deletions(-)
+
+diff --git a/src/include/usr/ipmi/ipmisel.H b/src/include/usr/ipmi/ipmisel.H
+index de2dd32..938cfdb 100644
+--- a/src/include/usr/ipmi/ipmisel.H
++++ b/src/include/usr/ipmi/ipmisel.H
+@@ -85,6 +85,7 @@ namespace IPMISEL
+         format_ipmi_version_2_0 = 0x04,
+     };
+ 
++    // event_type, per section 42.1 of the IPMI spec
+     enum sel_event_dir_type
+     {
+         event_unspecified       = 0x00,
+@@ -93,6 +94,7 @@ namespace IPMISEL
+         event_predictive        = 0x04,
+         event_limit             = 0x05,
+         event_permformance      = 0x06,
++        event_OEM               = 0x70,
+     };
+ 
+     enum sel_event_data
+diff --git a/src/usr/ipmi/ipmisel.C b/src/usr/ipmi/ipmisel.C
+index c05c60f..4eec588 100644
+--- a/src/usr/ipmi/ipmisel.C
++++ b/src/usr/ipmi/ipmisel.C
+@@ -100,7 +100,12 @@ void sendESEL(uint8_t* i_eselData, uint32_t i_dataSize,
+ 
+     // create the sel record of information
+     selRecord l_sel;
++#if 1
++// TODO RTC: 124972 take this out and do the eSEL instead
++    l_sel.record_type = record_type_system_event;
++#else
+     l_sel.record_type = record_type_ami_esel;
++#endif
+     l_sel.generator_id = generator_id_ami;
+     l_sel.evm_format_version = format_ipmi_version_2_0;
+     l_sel.sensor_type = i_sensorType;
+@@ -216,13 +221,40 @@ void send_esel(eselInitData * i_data,
+ {
+     IPMI_TRAC(ENTER_MRK "send_esel");
+     uint8_t* data = NULL;
+-    const size_t l_eSELlen = i_data->dataSize;
+ 
+     size_t len = 0;
+-    uint8_t reserveID[2] = {0,0};
+-    uint8_t esel_recordID[2] = {0,0};
++    uint8_t sel_recordID[2] = {0,0};
+ 
+     do{
++#if 1
++// TODO RTC: 124972 take this out and do the eSEL instead
++// do SEL instead
++        delete [] data;
++        len = sizeof(IPMISEL::selRecord);
++        data = new uint8_t[len];
++
++        // copy in the SEL event record data
++        memcpy(data, i_data->eSel, sizeof(IPMISEL::selRecord));
++
++        o_cc = IPMI::CC_UNKBAD;
++        TRACFBIN( g_trac_ipmi, INFO_MRK"add_sel:", data, len);
++        o_err = IPMI::sendrecv(IPMI::add_sel(),o_cc,len,data);
++        if(o_err)
++        {
++            IPMI_TRAC(ERR_MRK "error from add_sel");
++            break;
++        }
++        if (o_cc != IPMI::CC_OK)
++        {
++            IPMI_TRAC(ERR_MRK "failed add_sel, o_cc %02x", o_cc);
++            break;
++        }
++        sel_recordID[0] = data[0];
++        sel_recordID[1] = data[1];
++#else
++
++        const size_t l_eSELlen = i_data->dataSize;
++        uint8_t reserveID[2] = {0,0};
+         // we need to send down the extended sel data (eSEL), which is
+         // longer than the protocol buffer, so we need to do a reservation and
+         // call the AMI partial_add_esel command multiple times
+@@ -253,7 +285,7 @@ void send_esel(eselInitData * i_data,
+         data = new uint8_t[len];
+ 
+         // fill in the partial_add_esel request (command) data
+-        createPartialAddHeader(reserveID,esel_recordID,eSELindex,l_lastEntry,data);
++        createPartialAddHeader(reserveID,sel_recordID,eSELindex,l_lastEntry,data);
+ 
+         // copy in the SEL event record data
+         memcpy(&data[PARTIAL_ADD_ESEL_REQ], i_data->eSel,
+@@ -280,7 +312,7 @@ void send_esel(eselInitData * i_data,
+         }
+         // BMC returns the recordID, it's always the same (unless
+         // there's a major BMC bug...)
+-        storeReserveRecord(esel_recordID,data);
++        storeReserveRecord(sel_recordID,data);
+ 
+         // now send down the eSEL data in chunks.
+         const size_t l_maxBuffer = IPMI::max_buffer();
+@@ -304,7 +336,7 @@ void send_esel(eselInitData * i_data,
+             data = new uint8_t[len];
+ 
+             // fill in the partial_add_esel request (command) data
+-            createPartialAddHeader(reserveID, esel_recordID,
++            createPartialAddHeader(reserveID, sel_recordID,
+                     eSELindex + sizeof(selRecord),
+                     l_lastEntry, data);
+ 
+@@ -337,8 +369,9 @@ void send_esel(eselInitData * i_data,
+             }
+             // BMC returns the recordID, it's always the same (unless
+             // there's a major BMC bug...)
+-            storeReserveRecord(esel_recordID,data);
++            storeReserveRecord(sel_recordID,data);
+         }
++#endif
+         if(o_err || (o_cc != IPMI::CC_OK))
+         {
+             break;
+@@ -348,7 +381,7 @@ void send_esel(eselInitData * i_data,
+     delete[] data;
+ 
+     IPMI_TRAC(EXIT_MRK "send_esel (o_err %.8X, o_cc x%.2x, recID=x%x%x)",
+-        o_err ? o_err->plid() : NULL, o_cc, esel_recordID[1], esel_recordID[0]);
++        o_err ? o_err->plid() : NULL, o_cc, sel_recordID[1], sel_recordID[0]);
+ 
+     return;
+ } // send_esel
+-- 
+1.8.2.2
+