summaryrefslogtreecommitdiffstats
path: root/meta-facebook/meta-yosemite/recipes-yosemite/fblibs
diff options
context:
space:
mode:
Diffstat (limited to 'meta-facebook/meta-yosemite/recipes-yosemite/fblibs')
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/bic/Makefile11
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/bic/bic.c755
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/bic/bic.h181
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/pal/Makefile11
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/pal/pal.c1953
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/pal/pal.h149
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_common/Makefile11
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_common/yosemite_common.c150
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_common/yosemite_common.h47
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_fruid/Makefile27
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_fruid/yosemite_fruid.c117
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_fruid/yosemite_fruid.h38
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_gpio/Makefile27
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_gpio/yosemite_gpio.c120
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_gpio/yosemite_gpio.h39
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_sensor/Makefile11
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_sensor/yosemite_sensor.c883
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_sensor/yosemite_sensor.h175
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libbic_0.1.bb25
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libpal_0.1.bb28
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libyosemite-common_0.1.bb25
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libyosemite-fruid_0.1.bb43
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libyosemite-gpio_0.1.bb43
-rw-r--r--meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libyosemite-sensor_0.1.bb25
24 files changed, 0 insertions, 4894 deletions
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/bic/Makefile b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/bic/Makefile
deleted file mode 100644
index 12cb085..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/bic/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-# Copyright 2015-present Facebook. All Rights Reserved.
-lib: libbic.so
-
-libbic.so: bic.c
- $(CC) $(CFLAGS) -fPIC -c -o bic.o bic.c
- $(CC) -lipmb -shared -o libbic.so bic.o -lc
-
-.PHONY: clean
-
-clean:
- rm -rf *.o libbic.so
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/bic/bic.c b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/bic/bic.c
deleted file mode 100644
index 4139b44..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/bic/bic.c
+++ /dev/null
@@ -1,755 +0,0 @@
-/*
- *
- * Copyright 2015-present Facebook. All Rights Reserved.
- *
- * This file contains code to support IPMI2.0 Specificaton available @
- * http://www.intel.com/content/www/us/en/servers/ipmi/ipmi-specifications.html
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-#include <stdio.h>
-#include <stdint.h>
-#include <fcntl.h>
-#include <syslog.h>
-#include "bic.h"
-
-#define FRUID_READ_COUNT_MAX 0x30
-#define FRUID_WRITE_COUNT_MAX 0x30
-#define CPLD_WRITE_COUNT_MAX 0x50
-#define SDR_READ_COUNT_MAX 0x1A
-#define SIZE_SYS_GUID 16
-#define SIZE_IANA_ID 3
-
-enum {
- IPMB_BUS_SLOT1 = 3,
- IPMB_BUS_SLOT2 = 1,
- IPMB_BUS_SLOT3 = 7,
- IPMB_BUS_SLOT4 = 5,
-};
-
-#pragma pack(push, 1)
-typedef struct _sdr_rec_hdr_t {
- uint16_t rec_id;
- uint8_t ver;
- uint8_t type;
- uint8_t len;
-} sdr_rec_hdr_t;
-#pragma pack(pop)
-
-// Common IPMB Wrapper function
-
-static int
-get_ipmb_bus_id(uint8_t slot_id) {
- int bus_id;
-
- switch(slot_id) {
- case 1:
- bus_id = IPMB_BUS_SLOT1;
- break;
- case 2:
- bus_id = IPMB_BUS_SLOT2;
- break;
- case 3:
- bus_id = IPMB_BUS_SLOT3;
- break;
- case 4:
- bus_id = IPMB_BUS_SLOT4;
- break;
- default:
- bus_id = -1;
- break;
- }
-
- return bus_id;
-}
-
-static int
-bic_ipmb_wrapper(uint8_t slot_id, uint8_t netfn, uint8_t cmd,
- uint8_t *txbuf, uint8_t txlen,
- uint8_t *rxbuf, uint8_t *rxlen) {
- ipmb_req_t *req;
- ipmb_res_t *res;
- uint8_t rbuf[MAX_IPMB_RES_LEN] = {0};
- uint8_t tbuf[MAX_IPMB_RES_LEN] = {0};
- uint8_t tlen = 0;
- uint8_t rlen = 0;
- int count = 0;
- int i = 0;
- int ret;
- uint8_t bus_id;
-
- ret = get_ipmb_bus_id(slot_id);
- if (ret < 0) {
-#ifdef DEBUG
- syslog(LOG_ERR, "bic_ipmb_wrapper: Wrong Slot ID %d\n", slot_id);
-#endif
- return ret;
- }
-
- bus_id = (uint8_t) ret;
-
- req = (ipmb_req_t*)tbuf;
-
- req->res_slave_addr = BRIDGE_SLAVE_ADDR << 1;
- req->netfn_lun = netfn << LUN_OFFSET;
- req->hdr_cksum = req->res_slave_addr +
- req->netfn_lun;
- req->hdr_cksum = ZERO_CKSUM_CONST - req->hdr_cksum;
-
- req->req_slave_addr = BMC_SLAVE_ADDR << 1;
- req->seq_lun = 0x00;
- req->cmd = cmd;
-
- //copy the data to be send
- if (txlen) {
- memcpy(req->data, txbuf, txlen);
- }
-
- tlen = IPMB_HDR_SIZE + IPMI_REQ_HDR_SIZE + txlen;
-
- // Invoke IPMB library handler
- lib_ipmb_handle(bus_id, tbuf, tlen, &rbuf, &rlen);
-
- if (rlen == 0) {
-#ifdef DEBUG
- syslog(LOG_DEBUG, "bic_ipmb_wrapper: Zero bytes received\n");
-#endif
- return -1;
- }
-
- // Handle IPMB response
- res = (ipmb_res_t*) rbuf;
-
- if (res->cc) {
-#ifdef DEBUG
- syslog(LOG_ERR, "bic_ipmb_wrapper: Completion Code: 0x%X\n", res->cc);
-#endif
- return -1;
- }
-
- // copy the received data back to caller
- *rxlen = rlen - IPMB_HDR_SIZE - IPMI_RESP_HDR_SIZE;
- memcpy(rxbuf, res->data, *rxlen);
-
- return 0;
-}
-
-// Get Device ID
-int
-bic_get_dev_id(uint8_t slot_id, ipmi_dev_id_t *dev_id) {
- uint8_t rlen = 0;
- int ret;
-
- ret = bic_ipmb_wrapper(slot_id, NETFN_APP_REQ, CMD_APP_GET_DEVICE_ID, NULL, 0, (uint8_t *) dev_id, &rlen);
-
- return ret;
-}
-
-// Get GPIO value and configuration
-int
-bic_get_gpio(uint8_t slot_id, bic_gpio_t *gpio) {
- uint8_t tbuf[3] = {0x15, 0xA0, 0x00}; // IANA ID
- uint8_t rbuf[7] = {0x00};
- uint8_t rlen = 0;
- int ret;
-
- ret = bic_ipmb_wrapper(slot_id, NETFN_OEM_1S_REQ, CMD_OEM_1S_GET_GPIO, tbuf, 0x03, rbuf, &rlen);
-
- // Ignore first 3 bytes of IANA ID
- memcpy((uint8_t*) gpio, &rbuf[3], 4);
-
- return ret;
-}
-
-int
-bic_get_gpio_config(uint8_t slot_id, uint8_t gpio, bic_gpio_config_t *gpio_config) {
- uint8_t tbuf[7] = {0x15, 0xA0, 0x00}; // IANA ID
- uint8_t rbuf[4] = {0x00};
- uint8_t rlen = 0;
- uint8_t tlen = 0;
- uint32_t pin;
- int ret;
-
- pin = 1 << gpio;
-
- tbuf[3] = pin & 0xFF;
- tbuf[4] = (pin >> 8) & 0xFF;
- tbuf[5] = (pin >> 16) & 0xFF;
- tbuf[6] = (pin >> 24) & 0xFF;
-
- tlen = 7;
-
- ret = bic_ipmb_wrapper(slot_id, NETFN_OEM_1S_REQ, CMD_OEM_1S_GET_GPIO_CONFIG, tbuf, tlen, rbuf, &rlen);
-
- // Ignore IANA ID
- *(uint8_t *) gpio_config = rbuf[3];
-
- return ret;
-}
-
-int
-bic_set_gpio_config(uint8_t slot_id, uint8_t gpio, bic_gpio_config_t *gpio_config) {
- uint8_t tbuf[8] = {0x15, 0xA0, 0x00}; // IANA ID
- uint8_t rbuf[4] = {0x00};
- uint8_t rlen = 0;
- uint8_t tlen = 0;
- uint32_t pin;
- int ret;
-
- pin = 1 << gpio;
-
- tbuf[3] = pin & 0xFF;
- tbuf[4] = (pin >> 8) & 0xFF;
- tbuf[5] = (pin >> 16) & 0xFF;
- tbuf[6] = (pin >> 24) & 0xFF;
- tbuf[7] = (*(uint8_t *) gpio_config) & 0x1F;
-
- tlen = 8;
-
- ret = bic_ipmb_wrapper(slot_id, NETFN_OEM_1S_REQ, CMD_OEM_1S_SET_GPIO_CONFIG,
- tbuf, tlen, rbuf, &rlen);
- return ret;
-}
-
-// Get BIC Configuration
-int
-bic_get_config(uint8_t slot_id, bic_config_t *cfg) {
- uint8_t tbuf[3] = {0x15, 0xA0, 0x00}; // IANA ID
- uint8_t rbuf[4] = {0x00};
- uint8_t rlen = 0;
- int ret;
-
- ret = bic_ipmb_wrapper(slot_id, NETFN_OEM_1S_REQ, CMD_OEM_1S_GET_CONFIG,
- tbuf, 0x03, rbuf, &rlen);
- // Ignore IANA ID
- *(uint8_t *) cfg = rbuf[3];
-
- return ret;
-}
-
-// Set BIC Configuration
-int
-bic_set_config(uint8_t slot_id, bic_config_t *cfg) {
- uint8_t tbuf[4] = {0x15, 0xA0, 0x00}; // IANA ID
- uint8_t rlen = 0;
- uint8_t rbuf[4] = {0};
- int ret;
-
- tbuf[3] = *(uint8_t *) cfg;
-
- ret = bic_ipmb_wrapper(slot_id, NETFN_OEM_1S_REQ, CMD_OEM_1S_SET_CONFIG,
- tbuf, 0x04, rbuf, &rlen);
- return ret;
-}
-
-// Read POST Buffer
-int
-bic_get_post_buf(uint8_t slot_id, uint8_t *buf, uint8_t *len) {
- uint8_t tbuf[3] = {0x15, 0xA0, 0x00}; // IANA ID
- uint8_t rbuf[255] = {0x00};
- uint8_t rlen = 0;
- int ret;
-
- ret = bic_ipmb_wrapper(slot_id, NETFN_OEM_1S_REQ, CMD_OEM_1S_GET_POST_BUF, tbuf, 0x03, rbuf, &rlen);
-
- //Ignore IANA ID
- memcpy(buf, &rbuf[3], rlen-3);
-
- *len = rlen - 3;
-
- return ret;
-}
-
-// Read Firwmare Versions of various components
-int
-bic_get_fw_ver(uint8_t slot_id, uint8_t comp, uint8_t *ver) {
- uint8_t tbuf[4] = {0x15, 0xA0, 0x00}; // IANA ID
- uint8_t rbuf[16] = {0x00};
- uint8_t rlen = 0;
- int ret;
-
- // Fill the component for which firmware is requested
- tbuf[3] = comp;
-
- ret = bic_ipmb_wrapper(slot_id, NETFN_OEM_1S_REQ, CMD_OEM_1S_GET_FW_VER, tbuf, 0x04, rbuf, &rlen);
- // fw version has to be between 2 and 5 bytes based on component
- if (ret || (rlen < 2+SIZE_IANA_ID) || (rlen > 5+SIZE_IANA_ID)) {
-#ifdef DEBUG
- syslog(LOG_ERR, "bic_get_fw_ver: ret: %d, rlen: %d\n", ret, rlen);
-#endif
- return -1;
- }
-
- //Ignore IANA ID
- memcpy(ver, &rbuf[3], rlen-3);
-
- return ret;
-}
-
-// Update firmware for various components
-static int
-_update_fw(uint8_t slot_id, uint8_t target, uint32_t offset, uint16_t len, uint8_t *buf) {
- uint8_t tbuf[256] = {0x15, 0xA0, 0x00}; // IANA ID
- uint8_t rbuf[16] = {0x00};
- uint8_t tlen = 0;
- uint8_t rlen = 0;
- int ret;
- int retries = 3;
-
- // Fill the component for which firmware is requested
- tbuf[3] = target;
-
- tbuf[4] = (offset) & 0xFF;
- tbuf[5] = (offset >> 8) & 0xFF;
- tbuf[6] = (offset >> 16) & 0xFF;
- tbuf[7] = (offset >> 24) & 0xFF;
-
- tbuf[8] = len & 0xFF;
- tbuf[9] = (len >> 8) & 0xFF;
-
- memcpy(&tbuf[10], buf, len);
-
- printf("_update_fw: target: %d, offset: %d, len: %d\n", target, offset, len);
-
- tlen = len + 10;
-
-bic_send:
- ret = bic_ipmb_wrapper(slot_id, NETFN_OEM_1S_REQ, CMD_OEM_1S_UPDATE_FW, tbuf, tlen, rbuf, &rlen);
- if ((ret) && (retries--)) {
- sleep(1);
- printf("_update_fw: retrying..\n");
- goto bic_send;
- }
-
- return ret;
-}
-
-int
-bic_update_fw(uint8_t slot_id, uint8_t comp, char *path) {
- int ret;
- uint32_t offset;
- uint16_t count;
- uint8_t buf[256] = {0};
- uint8_t len = 0;
- uint8_t target;
- int fd;
-
- // Open the file exclusively for read
- fd = open(path, O_RDONLY, 0666);
- if (fd < 0) {
-#ifdef DEBUG
- syslog(LOG_ERR, "bic_update_fw: open fails for path: %s\n", path);
-#endif
- goto error_exit;
- }
-
- // Write chunks of CPLD binary data in a loop
- offset = 0;
- while (1) {
- // Read from file
- count = read(fd, buf, CPLD_WRITE_COUNT_MAX);
- if (count <= 0) {
- break;
- }
-
- if (count == CPLD_WRITE_COUNT_MAX) {
- target = comp;
- } else {
- target = comp | 0x80;
- }
-
- // Write to the CPLD
- ret = _update_fw(slot_id, target, offset, count, buf);
- if (ret) {
- break;
- }
-
- // Update counter
- offset += count;
- }
-
-error_exit:
- if (fd > 0 ) {
- close(fd);
- }
-
- return ret;
-}
-
-int
-bic_me_xmit(uint8_t slot_id, uint8_t *txbuf, uint8_t txlen, uint8_t *rxbuf, uint8_t *rxlen) {
- uint8_t tbuf[256] = {0x15, 0xA0, 0x00}; // IANA ID
- uint8_t rbuf[256] = {0x00};
- uint8_t rlen = 0;
- uint8_t tlen = 0;
- int ret;
-
- // Fill the interface number as ME
- tbuf[3] = BIC_INTF_ME;
-
- // Fill the data to be sent
- memcpy(&tbuf[4], txbuf, txlen);
-
- // Send data length includes IANA ID and interface number
- tlen = txlen + 4;
-
- ret = bic_ipmb_wrapper(slot_id, NETFN_OEM_1S_REQ, CMD_OEM_1S_MSG_OUT, tbuf, tlen, rbuf, &rlen);
- if (ret ) {
- return -1;
- }
-
- // Make sure the received interface number is same
- if (rbuf[3] != tbuf[3]) {
- return -1;
- }
-
- // Copy the received data to caller skipping header
- memcpy(rxbuf, &rbuf[7], rlen-7);
-
- *rxlen = rlen-7;
-
- return 0;
-}
-
-// Read 1S server's FRUID
-int
-bic_get_fruid_info(uint8_t slot_id, uint8_t fru_id, ipmi_fruid_info_t *info) {
- int ret;
- uint8_t rlen = 0;
-
- ret = bic_ipmb_wrapper(slot_id, NETFN_STORAGE_REQ, CMD_STORAGE_GET_FRUID_INFO, &fru_id, 1, (uint8_t *) info, &rlen);
-
- return ret;
-}
-
-static int
-_read_fruid(uint8_t slot_id, uint8_t fru_id, uint32_t offset, uint8_t count, uint8_t *rbuf, uint8_t *rlen) {
- int ret;
- uint8_t tbuf[4] = {0};
- uint8_t tlen = 0;
-
- tbuf[0] = fru_id;
- tbuf[1] = offset & 0xFF;
- tbuf[2] = (offset >> 8) & 0xFF;
- tbuf[3] = count;
-
- ret = bic_ipmb_wrapper(slot_id, NETFN_STORAGE_REQ, CMD_STORAGE_READ_FRUID_DATA, tbuf, 4, rbuf, rlen);
-
- return ret;
-}
-
-int
-bic_read_fruid(uint8_t slot_id, uint8_t fru_id, const char *path) {
- int ret;
- uint32_t nread;
- uint32_t offset;
- uint8_t count;
- uint8_t rbuf[256] = {0};
- uint8_t rlen = 0;
- int fd;
- ipmi_fruid_info_t info;
-
- // Remove the file if exists already
- unlink(path);
-
- // Open the file exclusively for write
- fd = open(path, O_WRONLY | O_CREAT | O_EXCL, 0666);
- if (fd < 0) {
-#ifdef DEBUG
- syslog(LOG_ERR, "bic_read_fruid: open fails for path: %s\n", path);
-#endif
- goto error_exit;
- }
-
- // Read the FRUID information
- ret = bic_get_fruid_info(slot_id, fru_id, &info);
- if (ret) {
-#ifdef DEBUG
- syslog(LOG_ERR, "bic_read_fruid: bic_read_fruid_info returns %d\n", ret);
-#endif
- goto error_exit;
- }
-
- // Indicates the size of the FRUID
- nread = (info.size_msb << 6) + (info.size_lsb);
-
- // Read chunks of FRUID binary data in a loop
- offset = 0;
- while (nread > 0) {
- if (nread > FRUID_READ_COUNT_MAX) {
- count = FRUID_READ_COUNT_MAX;
- } else {
- count = nread;
- }
-
- ret = _read_fruid(slot_id, fru_id, offset, count, rbuf, &rlen);
- if (ret) {
-#ifdef DEBUG
- syslog(LOG_ERR, "bic_read_fruid: ipmb_wrapper fails\n");
-#endif
- goto error_exit;
- }
-
- // Ignore the first byte as it indicates length of response
- write(fd, &rbuf[1], rlen-1);
-
- // Update offset
- offset += (rlen-1);
- nread -= (rlen-1);
- }
-
-error_exit:
- if (fd > 0 ) {
- close(fd);
- }
-
- return ret;
-}
-
-static int
-_write_fruid(uint8_t slot_id, uint8_t fru_id, uint32_t offset, uint8_t count, uint8_t *buf) {
- int ret;
- uint8_t tbuf[64] = {0};
- uint8_t rbuf[4] = {0};
- uint8_t tlen = 0;
- uint8_t rlen = 0;
-
- tbuf[0] = fru_id;
- tbuf[1] = offset & 0xFF;
- tbuf[2] = (offset >> 8) & 0xFF;
-
- memcpy(&tbuf[3], buf, count);
- tlen = count + 3;
-
- ret = bic_ipmb_wrapper(slot_id, NETFN_STORAGE_REQ, CMD_STORAGE_WRITE_FRUID_DATA, tbuf, tlen, rbuf, &rlen);
-
- if (ret) {
- return ret;
- }
-
- if (rbuf[0] != count) {
- return -1;
- }
-
- return ret;
-}
-
-int
-bic_write_fruid(uint8_t slot_id, uint8_t fru_id, const char *path) {
- int ret;
- uint32_t offset;
- uint8_t count;
- uint8_t buf[64] = {0};
- uint8_t len = 0;
- int fd;
-
- // Open the file exclusively for read
- fd = open(path, O_RDONLY, 0666);
- if (fd < 0) {
-#ifdef DEBUG
- syslog(LOG_ERR, "bic_write_fruid: open fails for path: %s\n", path);
-#endif
- goto error_exit;
- }
-
- // Write chunks of FRUID binary data in a loop
- offset = 0;
- while (1) {
- // Read from file
- count = read(fd, buf, FRUID_WRITE_COUNT_MAX);
- if (count <= 0) {
- break;
- }
-
- // Write to the FRUID
- ret = _write_fruid(slot_id, fru_id, offset, count, buf);
- if (ret) {
- break;
- }
-
- // Update counter
- offset += count;
- }
-
-error_exit:
- if (fd > 0 ) {
- close(fd);
- }
-
- return ret;
-}
-
-// Read System Event Log (SEL)
-int
-bic_get_sel_info(uint8_t slot_id, ipmi_sel_sdr_info_t *info) {
- int ret;
- uint8_t rlen = 0;
-
- ret = bic_ipmb_wrapper(slot_id, NETFN_STORAGE_REQ, CMD_STORAGE_GET_SEL_INFO, NULL, 0, (uint8_t *)info, &rlen);
-
- return ret;
-}
-
-static int
-_get_sel_rsv(uint8_t slot_id, uint16_t *rsv) {
- int ret;
- uint8_t rlen = 0;
-
- ret = bic_ipmb_wrapper(slot_id, NETFN_STORAGE_REQ, CMD_STORAGE_RSV_SEL, NULL, 0, (uint8_t *) rsv, &rlen);
- return ret;
-}
-
-int
-bic_get_sel(uint8_t slot_id, ipmi_sel_sdr_req_t *req, ipmi_sel_sdr_res_t *res, uint8_t *rlen) {
-
- int ret;
-
- ret = bic_ipmb_wrapper(slot_id, NETFN_STORAGE_REQ, CMD_STORAGE_GET_SEL, (uint8_t *)req, sizeof(ipmi_sel_sdr_req_t), (uint8_t*)res, rlen);
-
- return ret;
-}
-
-// Read Sensor Data Records (SDR)
-int
-bic_get_sdr_info(uint8_t slot_id, ipmi_sel_sdr_info_t *info) {
- int ret;
- uint8_t rlen = 0;
-
- ret = bic_ipmb_wrapper(slot_id, NETFN_STORAGE_REQ, CMD_STORAGE_GET_SDR_INFO, NULL, 0, (uint8_t *) info, &rlen);
-
- return ret;
-}
-
-static int
-_get_sdr_rsv(uint8_t slot_id, uint16_t *rsv) {
- int ret;
- uint8_t rlen = 0;
-
- ret = bic_ipmb_wrapper(slot_id, NETFN_STORAGE_REQ, CMD_STORAGE_RSV_SDR, NULL, 0, (uint8_t *) rsv, &rlen);
-
- return ret;
-}
-
-static int
-_get_sdr(uint8_t slot_id, ipmi_sel_sdr_req_t *req, ipmi_sel_sdr_res_t *res, uint8_t *rlen) {
- int ret;
-
- ret = bic_ipmb_wrapper(slot_id, NETFN_STORAGE_REQ, CMD_STORAGE_GET_SDR, (uint8_t *)req, sizeof(ipmi_sel_sdr_req_t), (uint8_t*)res, rlen);
-
- return ret;
-}
-
-int
-bic_get_sdr(uint8_t slot_id, ipmi_sel_sdr_req_t *req, ipmi_sel_sdr_res_t *res, uint8_t *rlen) {
- int ret;
- uint8_t tbuf[MAX_IPMB_RES_LEN] = {0};
- uint8_t tlen;
- uint8_t len;
- ipmi_sel_sdr_res_t *tres;
- sdr_rec_hdr_t *hdr;
-
- tres = (ipmi_sel_sdr_res_t *) tbuf;
-
- // Get SDR reservation ID for the given record
- ret = _get_sdr_rsv(slot_id, &req->rsv_id);
- if (ret) {
-#ifdef DEBUG
- syslog(LOG_ERR, "bic_read_sdr: _get_sdr_rsv returns %d\n", ret);
-#endif
- return ret;
- }
-
- // Initialize the response length to zero
- *rlen = 0;
-
- // Read SDR Record Header
- req->offset = 0;
- req->nbytes = sizeof(sdr_rec_hdr_t);
-
- ret = _get_sdr(slot_id, req, tbuf, &tlen);
- if (ret) {
-#ifdef DEBUG
- syslog(LOG_ERR, "bic_read_sdr: _get_sdr returns %d\n", ret);
-#endif
- return ret;
- }
-
- // Copy the next record id to response
- res->next_rec_id = tres->next_rec_id;
-
- // Copy the header excluding first two bytes(next_rec_id)
- memcpy(res->data, tres->data, tlen-2);
-
- // Update response length and offset for next request
- *rlen += tlen-2;
- req->offset = tlen-2;
-
- // Find length of data from header info
- hdr = (sdr_rec_hdr_t *) tres->data;
- len = hdr->len;
-
- // Keep reading chunks of SDR record in a loop
- while (len > 0) {
- if (len > SDR_READ_COUNT_MAX) {
- req->nbytes = SDR_READ_COUNT_MAX;
- } else {
- req->nbytes = len;
- }
-
- ret = _get_sdr(slot_id, req, tbuf, &tlen);
- if (ret) {
-#ifdef DEBUG
- syslog(LOG_ERR, "bic_read_sdr: _get_sdr returns %d\n", ret);
-#endif
- return ret;
- }
-
- // Copy the data excluding the first two bytes(next_rec_id)
- memcpy(&res->data[req->offset], tres->data, tlen-2);
-
- // Update response length, offset for next request, and remaining length
- *rlen += tlen-2;
- req->offset += tlen-2;
- len -= tlen-2;
- }
-
- return 0;
-}
-
-int
-bic_read_sensor(uint8_t slot_id, uint8_t sensor_num, ipmi_sensor_reading_t *sensor) {
- int ret;
- int rlen = 0;
-
- ret = bic_ipmb_wrapper(slot_id, NETFN_SENSOR_REQ, CMD_SENSOR_GET_SENSOR_READING, (uint8_t *)&sensor_num, 1, (uint8_t *)sensor, &rlen);
-
- return ret;
-}
-
-int
-bic_get_sys_guid(uint8_t slot_id, uint8_t *guid) {
- int ret;
- int rlen = 0;
-
- ret = bic_ipmb_wrapper(slot_id, NETFN_APP_REQ, CMD_APP_GET_SYSTEM_GUID, NULL, 0, guid, &rlen);
- if (rlen != SIZE_SYS_GUID) {
-#ifdef DEBUG
- syslog(LOG_ERR, "bic_get_sys_guid: returned rlen of %d\n");
-#endif
- return -1;
- }
-
- return ret;
-}
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/bic/bic.h b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/bic/bic.h
deleted file mode 100644
index 7110574..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/bic/bic.h
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- *
- * Copyright 2015-present Facebook. All Rights Reserved.
- *
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef __BIC_H__
-#define __BIC_H__
-
-#include <openbmc/ipmi.h>
-#include <openbmc/ipmb.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define MAX_GPIO_PINS 32
-
-// GPIO PINS
-enum {
- PWRGOOD_CPU = 0x0,
- PWRGD_PCH_PWROK,
- PVDDR_VRHOT_N,
- PVCCIN_VRHOT_N,
- FM_FAST_PROCHOT_N,
- PCHHOT_CPU_N,
- FM_CPLD_CPU_DIMM_EVENT_CO_N,
- FM_CPLD_BDXDE_THERMTRIP_N,
- THERMTRIP_PCH_N,
- FM_CPLD_FIVR_FAULT,
- FM_BDXDE_CATERR_LVT3_N,
- FM_BDXDE_ERR2_LVT3_N,
- FM_BDXDE_ERR1_LVT3_N,
- FM_BDXDE_ERR0_LVT3_N,
- SLP_S4_N,
- FM_NMI_EVENT_BMC_N,
- FM_SMI_BMC_N,
- RST_PLTRST_BMC_N,
- FP_RST_BTN_BUF_N,
- BMC_RST_BTN_OUT_N,
- FM_BDE_POST_CMPLT_N,
- FM_BDXDE_SLP3_N,
- FM_PWR_LED_N,
- PWRGD_PVCCIN,
- SVR_ID0,
- SVR_ID1,
- SVR_ID2,
- SVR_ID3,
- BMC_READY_N,
- RESERVED_29,
- RESERVED_30,
- RESERVED_31,
-};
-
-enum {
- FW_CPLD = 1,
- FW_BIC,
- FW_ME,
- FW_PVCCIN_VR,
- FW_DDRAB_VR,
- FW_P1V05_VR,
- FW_PVCCGBE_VR,
- FW_PVCCSCSUS_VR,
-};
-
-enum {
- UPDATE_BIOS = 0,
- UPDATE_CPLD,
- UPDATE_BIC_BOOT
-};
-
-// Bridge IC Spec
-typedef struct _bic_gpio_t {
- uint32_t pwrgood_cpu:1;
- uint32_t pwrgd_pch_pwrok:1;
- uint32_t pvddr_vrhot_n:1;
- uint32_t pvccin_vrhot_n:1;
- uint32_t fm_fast_prochot_n:1;
- uint32_t pchhot_cpu_n:1;
- uint32_t fm_cpld_cpu_dimm_event_c0_n:1;
- uint32_t fm_cpld_bdxde_thermtrip_n:1;
- uint32_t thermtrip_pch_n:1;
- uint32_t fm_cpld_fivr_fault:1;
- uint32_t fm_bdxde_caterr_lvt3_n:1;
- uint32_t fm_bdxde_err_lvt3_n:3;
- uint32_t slp_s4_n:1;
- uint32_t fm_nmi_event_bmc_n:1;
- uint32_t fm_smi_bmc_n:1;
- uint32_t rst_pltrst_bmc_n:1;
- uint32_t fp_rst_btn_buf_n:1;
- uint32_t bmc_rst_btn_out_n:1;
- uint32_t fm_bde_post_cmplt_n:1;
- uint32_t fm_bdxde_slp3_n:1;
- uint32_t fm_pwr_led_n:1;
- uint32_t pwrgd_pvccin:1;
- uint32_t svr_id:4;
- uint32_t bmc_ready_n:1;
- uint32_t bmc_com_sw_n:1;
- uint32_t rsvd:2;
-} bic_gpio_t;
-
-typedef union _bic_gpio_u {
- uint8_t gpio[4];
- bic_gpio_t bits;
-} bic_gpio_u;
-
-typedef struct _bic_gpio_config_t {
- uint8_t dir:1;
- uint8_t ie:1;
- uint8_t edge:1;
- uint8_t trig:2;
-} bic_gpio_config_t;
-
-typedef union _bic_gpio_config_u {
- uint8_t config;
- bic_gpio_config_t bits;
-} bic_gpio_config_u;
-
-typedef struct _bic_config_t {
- uint8_t sol:1;
- uint8_t post:1;
- uint8_t kcs:1;
- uint8_t ipmb:1;
- uint8_t rsvd:4;
-} bic_config_t;
-
-typedef union _bic_config_u {
- uint8_t config;
- bic_config_t bits;
-} bic_config_u;
-
-int bic_get_dev_id(uint8_t slot_id, ipmi_dev_id_t *id);
-
-int bic_get_bic_config(uint8_t slot_id, bic_config_t *cfg);
-int bic_set_bic_config(uint8_t slot_id, bic_config_t *cfg);
-
-int bic_get_gpio(uint8_t slot_id, bic_gpio_t *gpio);
-int bic_get_gpio_config(uint8_t slot_id, uint8_t gpio, bic_gpio_config_t *gpio_config);
-int bic_set_gpio_config(uint8_t slot_id, uint8_t gpio, bic_gpio_config_t *gpio_config);
-int bic_get_post_buf(uint8_t slot_id, uint8_t *buf, uint8_t *len);
-
-int bic_get_fruid_info(uint8_t slot_id, uint8_t fru_id, ipmi_fruid_info_t *info);
-int bic_read_fruid(uint8_t slot_id, uint8_t fru_id, const char *path);
-int bic_write_fruid(uint8_t slot_id, uint8_t fru_id, const char *path);
-
-int bic_get_sel_info(uint8_t slot_id, ipmi_sel_sdr_info_t *info);
-int bic_get_sel_rsv(uint8_t slot_id, uint16_t *rsv);
-int bic_get_sel(uint8_t slot_id, ipmi_sel_sdr_req_t *req, ipmi_sel_sdr_res_t *res, uint8_t *rlen);
-
-int bic_get_sdr_info(uint8_t slot_id, ipmi_sel_sdr_info_t *info);
-int bic_get_sdr_rsv(uint8_t slot_id, uint16_t *rsv);
-int bic_get_sdr(uint8_t slot_id, ipmi_sel_sdr_req_t *req, ipmi_sel_sdr_res_t *res, uint8_t *rlen);
-
-int bic_read_sensor(uint8_t slot_id, uint8_t sensor_num, ipmi_sensor_reading_t *sensor);
-
-int bic_get_sys_guid(uint8_t slot_id, uint8_t *guid);
-
-int bic_get_fw_ver(uint8_t slot_id, uint8_t comp, uint8_t *ver);
-
-int bic_update_fw(uint8_t slot_id, uint8_t comp, char *path);
-int bic_me_xmit(uint8_t slot_id, uint8_t *txbuf, uint8_t txlen, uint8_t *rxbuf, uint8_t *rxlen);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif /* __BIC_H__ */
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/pal/Makefile b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/pal/Makefile
deleted file mode 100644
index c207a7d..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/pal/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-# Copyright 2015-present Facebook. All Rights Reserved.
-lib: libpal.so
-
-libpal.so: pal.c
- $(CC) $(CFLAGS) -fPIC -c -pthread -o pal.o pal.c
- $(CC) -lbic -lyosemite_common -lyosemite_fruid -lyosemite_sensor -shared -o libpal.so pal.o -lc
-
-.PHONY: clean
-
-clean:
- rm -rf *.o libpal.so
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/pal/pal.c b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/pal/pal.c
deleted file mode 100644
index ec0be12..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/pal/pal.c
+++ /dev/null
@@ -1,1953 +0,0 @@
-/*
- *
- * Copyright 2015-present Facebook. All Rights Reserved.
- *
- * This file contains code to support IPMI2.0 Specificaton available @
- * http://www.intel.com/content/www/us/en/servers/ipmi/ipmi-specifications.html
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-#include <stdio.h>
-#include <stdint.h>
-#include <stdbool.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <syslog.h>
-#include <sys/mman.h>
-#include <string.h>
-#include <pthread.h>
-#include "pal.h"
-
-#define BIT(value, index) ((value >> index) & 1)
-
-#define YOSEMITE_PLATFORM_NAME "Yosemite"
-#define LAST_KEY "last_key"
-#define YOSEMITE_MAX_NUM_SLOTS 4
-#define GPIO_VAL "/sys/class/gpio/gpio%d/value"
-#define GPIO_DIR "/sys/class/gpio/gpio%d/direction"
-
-#define GPIO_HAND_SW_ID1 138
-#define GPIO_HAND_SW_ID2 139
-#define GPIO_HAND_SW_ID4 140
-#define GPIO_HAND_SW_ID8 141
-
-#define GPIO_RST_BTN 144
-#define GPIO_PWR_BTN 24
-
-#define GPIO_HB_LED 135
-
-#define GPIO_USB_SW0 36
-#define GPIO_USB_SW1 37
-#define GPIO_USB_MUX_EN_N 147
-
-#define GPIO_UART_SEL0 32
-#define GPIO_UART_SEL1 33
-#define GPIO_UART_SEL2 34
-#define GPIO_UART_RX 35
-
-#define GPIO_POSTCODE_0 48
-#define GPIO_POSTCODE_1 49
-#define GPIO_POSTCODE_2 50
-#define GPIO_POSTCODE_3 51
-#define GPIO_POSTCODE_4 124
-#define GPIO_POSTCODE_5 125
-#define GPIO_POSTCODE_6 126
-#define GPIO_POSTCODE_7 127
-
-#define GPIO_DBG_CARD_PRSNT 137
-
-#define PAGE_SIZE 0x1000
-#define AST_SCU_BASE 0x1e6e2000
-#define PIN_CTRL1_OFFSET 0x80
-#define PIN_CTRL2_OFFSET 0x84
-#define AST_WDT_BASE 0x1e785000
-#define WDT_OFFSET 0x10
-
-#define UART1_TXD (1 << 22)
-#define UART2_TXD (1 << 30)
-#define UART3_TXD (1 << 22)
-#define UART4_TXD (1 << 30)
-
-#define DELAY_GRACEFUL_SHUTDOWN 1
-#define DELAY_POWER_OFF 6
-#define DELAY_POWER_CYCLE 10
-#define DELAY_12V_CYCLE 5
-
-#define CRASHDUMP_BIN "/usr/local/bin/dump.sh"
-#define CRASHDUMP_FILE "/mnt/data/crashdump_"
-const static uint8_t gpio_rst_btn[] = { 0, 57, 56, 59, 58 };
-const static uint8_t gpio_led[] = { 0, 97, 96, 99, 98 };
-const static uint8_t gpio_id_led[] = { 0, 41, 40, 43, 42 };
-const static uint8_t gpio_prsnt[] = { 0, 61, 60, 63, 62 };
-const static uint8_t gpio_power[] = { 0, 27, 25, 31, 29 };
-const static uint8_t gpio_12v[] = { 0, 117, 116, 119, 118 };
-const char pal_fru_list[] = "all, slot1, slot2, slot3, slot4, spb, nic";
-const char pal_server_list[] = "slot1, slot2, slot3, slot4";
-
-char * key_list[] = {
-"pwr_server1_last_state",
-"pwr_server2_last_state",
-"pwr_server3_last_state",
-"pwr_server4_last_state",
-"sysfw_ver_slot1",
-"sysfw_ver_slot2",
-"sysfw_ver_slot3",
-"sysfw_ver_slot4",
-"identify_sled",
-"identify_slot1",
-"identify_slot2",
-"identify_slot3",
-"identify_slot4",
-"timestamp_sled",
-"slot1_por_cfg",
-"slot2_por_cfg",
-"slot3_por_cfg",
-"slot4_por_cfg",
-/* Add more Keys here */
-LAST_KEY /* This is the last key of the list */
-};
-
-char * def_val_list[] = {
- "on", /* pwr_server1_last_state */
- "on", /* pwr_server2_last_state */
- "on", /* pwr_server3_last_state */
- "on", /* pwr_server4_last_state */
- "0", /* sysfw_ver_slot1 */
- "0", /* sysfw_ver_slot2 */
- "0", /* sysfw_ver_slot3 */
- "0", /* sysfw_ver_slot4 */
- "off", /* identify_sled */
- "off", /* identify_slot1 */
- "off", /* identify_slot2 */
- "off", /* identify_slot3 */
- "off", /* identify_slot4 */
- "0", /* timestamp_sled */
- "on", /* slot1_por_cfg */
- "on", /* slot2_por_cfg */
- "on", /* slot3_por_cfg */
- "on", /* slot4_por_cfg */
- /* Add more def values for the correspoding keys*/
- LAST_KEY /* Same as last entry of the key_list */
-};
-
-// Helper Functions
-static int
-read_device(const char *device, int *value) {
- FILE *fp;
- int rc;
-
- fp = fopen(device, "r");
- if (!fp) {
- int err = errno;
-#ifdef DEBUG
- syslog(LOG_INFO, "failed to open device %s", device);
-#endif
- return err;
- }
-
- rc = fscanf(fp, "%d", value);
- fclose(fp);
- if (rc != 1) {
-#ifdef DEBUG
- syslog(LOG_INFO, "failed to read device %s", device);
-#endif
- return ENOENT;
- } else {
- return 0;
- }
-}
-
-static int
-write_device(const char *device, const char *value) {
- FILE *fp;
- int rc;
-
- fp = fopen(device, "w");
- if (!fp) {
- int err = errno;
-#ifdef DEBUG
- syslog(LOG_INFO, "failed to open device for write %s", device);
-#endif
- return err;
- }
-
- rc = fputs(value, fp);
- fclose(fp);
-
- if (rc < 0) {
-#ifdef DEBUG
- syslog(LOG_INFO, "failed to write device %s", device);
-#endif
- return ENOENT;
- } else {
- return 0;
- }
-}
-
-// Power On the server in a given slot
-static int
-server_power_on(uint8_t slot_id) {
- char vpath[64] = {0};
-
- sprintf(vpath, GPIO_VAL, gpio_power[slot_id]);
-
- if (write_device(vpath, "1")) {
- return -1;
- }
-
- if (write_device(vpath, "0")) {
- return -1;
- }
-
- sleep(1);
-
- if (write_device(vpath, "1")) {
- return -1;
- }
-
- return 0;
-}
-
-// Power Off the server in given slot
-static int
-server_power_off(uint8_t slot_id, bool gs_flag) {
- char vpath[64] = {0};
-
- if (slot_id < 1 || slot_id > 4) {
- return -1;
- }
-
- sprintf(vpath, GPIO_VAL, gpio_power[slot_id]);
-
- if (write_device(vpath, "1")) {
- return -1;
- }
-
- sleep(1);
-
- if (write_device(vpath, "0")) {
- return -1;
- }
-
- if (gs_flag) {
- sleep(DELAY_GRACEFUL_SHUTDOWN);
- } else {
- sleep(DELAY_POWER_OFF);
- }
-
- if (write_device(vpath, "1")) {
- return -1;
- }
-
- return 0;
-}
-
-// Control 12V to the server in a given slot
-static int
-server_12v_on(uint8_t slot_id) {
- char vpath[64] = {0};
-
- if (slot_id < 1 || slot_id > 4) {
- return -1;
- }
-
- sprintf(vpath, GPIO_VAL, gpio_12v[slot_id]);
-
- if (write_device(vpath, "1")) {
- return -1;
- }
-
- return 0;
-}
-
-// Turn off 12V for the server in given slot
-static int
-server_12v_off(uint8_t slot_id) {
- char vpath[64] = {0};
-
- if (slot_id < 1 || slot_id > 4) {
- return -1;
- }
-
- sprintf(vpath, GPIO_VAL, gpio_12v[slot_id]);
-
- if (write_device(vpath, "0")) {
- return -1;
- }
-
- return 0;
-}
-
-// Debug Card's UART and BMC/SoL port share UART port and need to enable only
-// one TXD i.e. either BMC's TXD or Debug Port's TXD.
-static int
-control_sol_txd(uint8_t slot) {
- uint32_t scu_fd;
- uint32_t ctrl;
- void *scu_reg;
- void *scu_pin_ctrl1;
- void *scu_pin_ctrl2;
-
- scu_fd = open("/dev/mem", O_RDWR | O_SYNC );
- if (scu_fd < 0) {
-#ifdef DEBUG
- syslog(LOG_WARNING, "control_sol_txd: open fails\n");
-#endif
- return -1;
- }
-
- scu_reg = mmap(NULL, PAGE_SIZE, PROT_READ|PROT_WRITE, MAP_SHARED, scu_fd,
- AST_SCU_BASE);
- scu_pin_ctrl1 = (char*)scu_reg + PIN_CTRL1_OFFSET;
- scu_pin_ctrl2 = (char*)scu_reg + PIN_CTRL2_OFFSET;
-
- switch(slot) {
- case 1:
- // Disable UART2's TXD and enable others
- ctrl = *(volatile uint32_t*) scu_pin_ctrl2;
- ctrl |= UART1_TXD;
- ctrl &= (~UART2_TXD); //Disable
- *(volatile uint32_t*) scu_pin_ctrl2 = ctrl;
-
- ctrl = *(volatile uint32_t*) scu_pin_ctrl1;
- ctrl |= UART3_TXD | UART4_TXD;
- *(volatile uint32_t*) scu_pin_ctrl1 = ctrl;
- break;
- case 2:
- // Disable UART1's TXD and enable others
- ctrl = *(volatile uint32_t*) scu_pin_ctrl2;
- ctrl &= (~UART1_TXD); // Disable
- ctrl |= UART2_TXD;
- *(volatile uint32_t*) scu_pin_ctrl2 = ctrl;
-
- ctrl = *(volatile uint32_t*) scu_pin_ctrl1;
- ctrl |= UART3_TXD | UART4_TXD;
- *(volatile uint32_t*) scu_pin_ctrl1 = ctrl;
- break;
- case 3:
- // Disable UART4's TXD and enable others
- ctrl = *(volatile uint32_t*) scu_pin_ctrl2;
- ctrl |= UART1_TXD | UART2_TXD;
- *(volatile uint32_t*) scu_pin_ctrl2 = ctrl;
-
- ctrl = *(volatile uint32_t*) scu_pin_ctrl1;
- ctrl |= UART3_TXD;
- ctrl &= (~UART4_TXD); // Disable
- *(volatile uint32_t*) scu_pin_ctrl1 = ctrl;
- break;
- case 4:
- // Disable UART3's TXD and enable others
- ctrl = *(volatile uint32_t*) scu_pin_ctrl2;
- ctrl |= UART1_TXD | UART2_TXD;
- *(volatile uint32_t*) scu_pin_ctrl2 = ctrl;
-
- ctrl = *(volatile uint32_t*) scu_pin_ctrl1;
- ctrl &= (~UART3_TXD); // Disable
- ctrl |= UART4_TXD;
- *(volatile uint32_t*) scu_pin_ctrl1 = ctrl;
- break;
- default:
- // Any other slots we need to enable all TXDs
- ctrl = *(volatile uint32_t*) scu_pin_ctrl2;
- ctrl |= UART1_TXD | UART2_TXD;
- *(volatile uint32_t*) scu_pin_ctrl2 = ctrl;
-
- ctrl = *(volatile uint32_t*) scu_pin_ctrl1;
- ctrl |= UART3_TXD | UART4_TXD;
- *(volatile uint32_t*) scu_pin_ctrl1 = ctrl;
- break;
- }
-
- munmap(scu_reg, PAGE_SIZE);
- close(scu_fd);
-
- return 0;
-}
-
-// Display the given POST code using GPIO port
-static int
-pal_post_display(uint8_t status) {
- char path[64] = {0};
- int ret;
- char *val;
-
-#ifdef DEBUG
- syslog(LOG_WARNING, "pal_post_display: status is %d\n", status);
-#endif
-
- sprintf(path, GPIO_VAL, GPIO_POSTCODE_0);
-
- if (BIT(status, 0)) {
- val = "1";
- } else {
- val = "0";
- }
-
- ret = write_device(path, val);
- if (ret) {
- goto post_exit;
- }
-
- sprintf(path, GPIO_VAL, GPIO_POSTCODE_1);
- if (BIT(status, 1)) {
- val = "1";
- } else {
- val = "0";
- }
-
- ret = write_device(path, val);
- if (ret) {
- goto post_exit;
- }
-
- sprintf(path, GPIO_VAL, GPIO_POSTCODE_2);
- if (BIT(status, 2)) {
- val = "1";
- } else {
- val = "0";
- }
-
- ret = write_device(path, val);
- if (ret) {
- goto post_exit;
- }
-
- sprintf(path, GPIO_VAL, GPIO_POSTCODE_3);
- if (BIT(status, 3)) {
- val = "1";
- } else {
- val = "0";
- }
-
- ret = write_device(path, val);
- if (ret) {
- goto post_exit;
- }
-
- sprintf(path, GPIO_VAL, GPIO_POSTCODE_4);
- if (BIT(status, 4)) {
- val = "1";
- } else {
- val = "0";
- }
-
- ret = write_device(path, val);
- if (ret) {
- goto post_exit;
- }
-
- sprintf(path, GPIO_VAL, GPIO_POSTCODE_5);
- if (BIT(status, 5)) {
- val = "1";
- } else {
- val = "0";
- }
-
- ret = write_device(path, val);
- if (ret) {
- goto post_exit;
- }
-
- sprintf(path, GPIO_VAL, GPIO_POSTCODE_6);
- if (BIT(status, 6)) {
- val = "1";
- } else {
- val = "0";
- }
-
- ret = write_device(path, val);
- if (ret) {
- goto post_exit;
- }
-
- sprintf(path, GPIO_VAL, GPIO_POSTCODE_7);
- if (BIT(status, 7)) {
- val = "1";
- } else {
- val = "0";
- }
-
- ret = write_device(path, val);
- if (ret) {
- goto post_exit;
- }
-
-post_exit:
- if (ret) {
-#ifdef DEBUG
- syslog(LOG_WARNING, "write_device failed for %s\n", path);
-#endif
- return -1;
- } else {
- return 0;
- }
-}
-
-// Platform Abstraction Layer (PAL) Functions
-int
-pal_get_platform_name(char *name) {
- strcpy(name, YOSEMITE_PLATFORM_NAME);
-
- return 0;
-}
-
-int
-pal_get_num_slots(uint8_t *num) {
- *num = YOSEMITE_MAX_NUM_SLOTS;
-
- return 0;
-}
-
-int
-pal_is_server_prsnt(uint8_t slot_id, uint8_t *status) {
- int val;
- char path[64] = {0};
-
- if (slot_id < 1 || slot_id > 4) {
- return -1;
- }
-
- sprintf(path, GPIO_VAL, gpio_prsnt[slot_id]);
-
- if (read_device(path, &val)) {
- return -1;
- }
-
- if (val == 0x0) {
- *status = 1;
- } else {
- *status = 0;
- }
-
- return 0;
-}
-
-int
-pal_is_debug_card_prsnt(uint8_t *status) {
- int val;
- char path[64] = {0};
-
- sprintf(path, GPIO_VAL, GPIO_DBG_CARD_PRSNT);
-
- if (read_device(path, &val)) {
- return -1;
- }
-
- if (val == 0x0) {
- *status = 1;
- } else {
- *status = 0;
- }
-
- return 0;
-}
-
-int
-pal_get_server_power(uint8_t slot_id, uint8_t *status) {
- int ret;
- char value[MAX_VALUE_LEN];
- bic_gpio_t gpio;
-
- ret = bic_get_gpio(slot_id, &gpio);
- if (ret) {
- // Check for if the BIC is irresponsive due to 12V_OFF or 12V_CYCLE
- pal_get_last_pwr_state(slot_id, value);
- if (!(strcmp(value, "off"))) {
- *status = SERVER_POWER_OFF;
- return 0;
- } else {
- return ret;
- }
- }
-
- if (gpio.pwrgood_cpu) {
- *status = SERVER_POWER_ON;
- } else {
- *status = SERVER_POWER_OFF;
- }
-
- return 0;
-}
-
-// Power Off, Power On, or Power Reset the server in given slot
-int
-pal_set_server_power(uint8_t slot_id, uint8_t cmd) {
- uint8_t status;
- bool gs_flag = false;
-
- if (slot_id < 1 || slot_id > 4) {
- return -1;
- }
-
- if (pal_get_server_power(slot_id, &status) < 0) {
- return -1;
- }
-
- switch(cmd) {
- case SERVER_POWER_ON:
- if (status == SERVER_POWER_ON)
- return 1;
- else
- return server_power_on(slot_id);
- break;
-
- case SERVER_POWER_OFF:
- if (status == SERVER_POWER_OFF)
- return 1;
- else
- return server_power_off(slot_id, gs_flag);
- break;
-
- case SERVER_POWER_CYCLE:
- if (status == SERVER_POWER_ON) {
- if (server_power_off(slot_id, gs_flag))
- return -1;
-
- sleep(DELAY_POWER_CYCLE);
-
- return server_power_on(slot_id);
-
- } else if (status == SERVER_POWER_OFF) {
-
- return (server_power_on(slot_id));
- }
- break;
-
- case SERVER_GRACEFUL_SHUTDOWN:
- if (status == SERVER_POWER_OFF)
- return 1;
- else
- gs_flag = true;
- return server_power_off(slot_id, gs_flag);
- break;
-
- case SERVER_12V_ON:
- return server_12v_on(slot_id);
- break;
-
- case SERVER_12V_OFF:
- return server_12v_off(slot_id);
- break;
-
- case SERVER_12V_CYCLE:
- if (server_12v_off(slot_id)) {
- return -1;
- }
-
- sleep(DELAY_12V_CYCLE);
-
- return (server_12v_on(slot_id));
- default:
- return -1;
- }
-
- return 0;
-}
-
-int
-pal_sled_cycle(void) {
- // Remove the adm1275 module as the HSC device is busy
- system("rmmod adm1275");
-
- // Send command to HSC power cycle
- system("i2cset -y 10 0x40 0xd9 c");
-
- return 0;
-}
-
-// Read the Front Panel Hand Switch and return the position
-int
-pal_get_hand_sw(uint8_t *pos) {
- char path[64] = {0};
- int id1, id2, id4, id8;
- uint8_t loc;
- // Read 4 GPIOs to read the current position
- // id1: GPIOR2(138)
- // id2: GPIOR3(139)
- // id4: GPIOR4(140)
- // id8: GPIOR5(141)
-
- // Read ID1
- sprintf(path, GPIO_VAL, GPIO_HAND_SW_ID1);
- if (read_device(path, &id1)) {
- return -1;
- }
-
- // Read ID2
- sprintf(path, GPIO_VAL, GPIO_HAND_SW_ID2);
- if (read_device(path, &id2)) {
- return -1;
- }
-
- // Read ID4
- sprintf(path, GPIO_VAL, GPIO_HAND_SW_ID4);
- if (read_device(path, &id4)) {
- return -1;
- }
-
- // Read ID8
- sprintf(path, GPIO_VAL, GPIO_HAND_SW_ID8);
- if (read_device(path, &id8)) {
- return -1;
- }
-
- loc = ((id8 << 3) | (id4 << 2) | (id2 << 1) | (id1));
-
- switch(loc) {
- case 0:
- case 5:
- *pos = HAND_SW_SERVER1;
- break;
- case 1:
- case 6:
- *pos = HAND_SW_SERVER2;
- break;
- case 2:
- case 7:
- *pos = HAND_SW_SERVER3;
- break;
- case 3:
- case 8:
- *pos = HAND_SW_SERVER4;
- break;
- default:
- *pos = HAND_SW_BMC;
- break;
- }
-
- return 0;
-}
-
-// Return the Front panel Power Button
-int
-pal_get_pwr_btn(uint8_t *status) {
- char path[64] = {0};
- int val;
-
- sprintf(path, GPIO_VAL, GPIO_PWR_BTN);
- if (read_device(path, &val)) {
- return -1;
- }
-
- if (val) {
- *status = 0x0;
- } else {
- *status = 0x1;
- }
-
- return 0;
-}
-
-// Return the front panel's Reset Button status
-int
-pal_get_rst_btn(uint8_t *status) {
- char path[64] = {0};
- int val;
-
- sprintf(path, GPIO_VAL, GPIO_RST_BTN);
- if (read_device(path, &val)) {
- return -1;
- }
-
- if (val) {
- *status = 0x0;
- } else {
- *status = 0x1;
- }
-
- return 0;
-}
-
-// Update the Reset button input to the server at given slot
-int
-pal_set_rst_btn(uint8_t slot, uint8_t status) {
- char path[64] = {0};
- char *val;
-
- if (slot < 1 || slot > 4) {
- return -1;
- }
-
- if (status) {
- val = "1";
- } else {
- val = "0";
- }
-
- sprintf(path, GPIO_VAL, gpio_rst_btn[slot]);
- if (write_device(path, val)) {
- return -1;
- }
-
- return 0;
-}
-
-// Update the LED for the given slot with the status
-int
-pal_set_led(uint8_t slot, uint8_t status) {
- char path[64] = {0};
- char *val;
-
- if (slot < 1 || slot > 4) {
- return -1;
- }
-
- if (status) {
- val = "1";
- } else {
- val = "0";
- }
-
- sprintf(path, GPIO_VAL, gpio_led[slot]);
- if (write_device(path, val)) {
- return -1;
- }
-
- return 0;
-}
-
-// Update Heartbeet LED
-int
-pal_set_hb_led(uint8_t status) {
- char path[64] = {0};
- char *val;
-
- if (status) {
- val = "1";
- } else {
- val = "0";
- }
-
- sprintf(path, GPIO_VAL, GPIO_HB_LED);
- if (write_device(path, val)) {
- return -1;
- }
-
- return 0;
-}
-
-// Update the Identification LED for the given slot with the status
-int
-pal_set_id_led(uint8_t slot, uint8_t status) {
- char path[64] = {0};
- char *val;
-
- if (slot < 1 || slot > 4) {
- return -1;
- }
-
- if (status) {
- val = "1";
- } else {
- val = "0";
- }
-
- sprintf(path, GPIO_VAL, gpio_id_led[slot]);
- if (write_device(path, val)) {
- return -1;
- }
-
- return 0;
-}
-
-static int
-set_usb_mux(uint8_t state) {
- int val;
- char *new_state;
- char path[64] = {0};
-
- sprintf(path, GPIO_VAL, GPIO_USB_MUX_EN_N);
-
- if (read_device(path, &val)) {
- return -1;
- }
-
- // This GPIO Pin is active low
- if (!val == state)
- return 0;
-
- if (state)
- new_state = "0";
- else
- new_state = "1";
-
- if (write_device(path, new_state) < 0) {
-#ifdef DEBUG
- syslog(LOG_WARNING, "write_device failed for %s\n", path);
-#endif
- return -1;
- }
-
- return 0;
-}
-
-// Update the USB Mux to the server at given slot
-int
-pal_switch_usb_mux(uint8_t slot) {
- char *gpio_sw0, *gpio_sw1;
- char path[64] = {0};
-
- // Based on the USB mux table in Schematics
- switch(slot) {
- case HAND_SW_SERVER1:
- gpio_sw0 = "1";
- gpio_sw1 = "0";
- break;
- case HAND_SW_SERVER2:
- gpio_sw0 = "0";
- gpio_sw1 = "0";
- break;
- case HAND_SW_SERVER3:
- gpio_sw0 = "1";
- gpio_sw1 = "1";
- break;
- case HAND_SW_SERVER4:
- gpio_sw0 = "0";
- gpio_sw1 = "1";
- break;
- case HAND_SW_BMC:
- // Disable the USB MUX
- if (set_usb_mux(USB_MUX_OFF) < 0)
- return -1;
- else
- return 0;
- default:
- return 0;
- }
-
- // Enable the USB MUX
- if (set_usb_mux(USB_MUX_ON) < 0)
- return -1;
-
- sprintf(path, GPIO_VAL, GPIO_USB_SW0);
- if (write_device(path, gpio_sw0) < 0) {
-#ifdef DEBUG
- syslog(LOG_WARNING, "write_device failed for %s\n", path);
-#endif
- return -1;
- }
-
- sprintf(path, GPIO_VAL, GPIO_USB_SW1);
- if (write_device(path, gpio_sw1) < 0) {
-#ifdef DEBUG
- syslog(LOG_WARNING, "write_device failed for %s\n", path);
-#endif
- return -1;
- }
-
- return 0;
-}
-
-// Switch the UART mux to the given slot
-int
-pal_switch_uart_mux(uint8_t slot) {
- char * gpio_uart_sel0;
- char * gpio_uart_sel1;
- char * gpio_uart_sel2;
- char * gpio_uart_rx;
- char path[64] = {0};
- int ret;
-
- // Refer the UART select table in schematic
- switch(slot) {
- case HAND_SW_SERVER1:
- gpio_uart_sel2 = "0";
- gpio_uart_sel1 = "0";
- gpio_uart_sel0 = "1";
- gpio_uart_rx = "0";
- break;
- case HAND_SW_SERVER2:
- gpio_uart_sel2 = "0";
- gpio_uart_sel1 = "0";
- gpio_uart_sel0 = "0";
- gpio_uart_rx = "0";
- break;
- case HAND_SW_SERVER3:
- gpio_uart_sel2 = "0";
- gpio_uart_sel1 = "1";
- gpio_uart_sel0 = "1";
- gpio_uart_rx = "0";
- break;
- case HAND_SW_SERVER4:
- gpio_uart_sel2 = "0";
- gpio_uart_sel1 = "1";
- gpio_uart_sel0 = "0";
- gpio_uart_rx = "0";
- break;
- default:
- // for all other cases, assume BMC
- gpio_uart_sel2 = "1";
- gpio_uart_sel1 = "0";
- gpio_uart_sel0 = "0";
- gpio_uart_rx = "1";
- break;
- }
-
- // Diable TXD path from BMC to avoid conflict with SoL
- ret = control_sol_txd(slot);
- if (ret) {
- goto uart_exit;
- }
-
- // Enable Debug card path
- sprintf(path, GPIO_VAL, GPIO_UART_SEL2);
- ret = write_device(path, gpio_uart_sel2);
- if (ret) {
- goto uart_exit;
- }
-
- sprintf(path, GPIO_VAL, GPIO_UART_SEL1);
- ret = write_device(path, gpio_uart_sel1);
- if (ret) {
- goto uart_exit;
- }
-
- sprintf(path, GPIO_VAL, GPIO_UART_SEL0);
- ret = write_device(path, gpio_uart_sel0);
- if (ret) {
- goto uart_exit;
- }
-
- sprintf(path, GPIO_VAL, GPIO_UART_RX);
- ret = write_device(path, gpio_uart_rx);
- if (ret) {
- goto uart_exit;
- }
-
-uart_exit:
- if (ret) {
-#ifdef DEBUG
- syslog(LOG_WARNING, "pal_switch_uart_mux: write_device failed: %s\n", path);
-#endif
- return ret;
- } else {
- return 0;
- }
-}
-
-// Enable POST buffer for the server in given slot
-int
-pal_post_enable(uint8_t slot) {
- int ret;
- int i;
- bic_config_t config = {0};
- bic_config_u *t = (bic_config_u *) &config;
-
- ret = bic_get_config(slot, &config);
- if (ret) {
-#ifdef DEBUG
- syslog(LOG_WARNING, "post_enable: bic_get_config failed for fru: %d\n", slot);
-#endif
- return ret;
- }
-
- t->bits.post = 1;
-
- ret = bic_set_config(slot, &config);
- if (ret) {
-#ifdef DEBUG
- syslog(LOG_WARNING, "post_enable: bic_set_config failed\n");
-#endif
- return ret;
- }
-
- return 0;
-}
-
-// Disable POST buffer for the server in given slot
-int
-pal_post_disable(uint8_t slot) {
- int ret;
- int i;
- bic_config_t config = {0};
- bic_config_u *t = (bic_config_u *) &config;
-
- ret = bic_get_config(slot, &config);
- if (ret) {
- return ret;
- }
-
- t->bits.post = 0;
-
- ret = bic_set_config(slot, &config);
- if (ret) {
- return ret;
- }
-
- return 0;
-}
-
-// Get the last post code of the given slot
-int
-pal_post_get_last(uint8_t slot, uint8_t *status) {
- int ret;
- uint8_t buf[MAX_IPMB_RES_LEN] = {0x0};
- uint8_t len;
- int i;
-
- ret = bic_get_post_buf(slot, buf, &len);
- if (ret) {
- return ret;
- }
-
- // The post buffer is LIFO and the first byte gives the latest post code
- *status = buf[0];
-
- return 0;
-}
-
-// Handle the received post code, for now display it on debug card
-int
-pal_post_handle(uint8_t slot, uint8_t status) {
- uint8_t prsnt, pos;
- int ret;
-
- // Check for debug card presence
- ret = pal_is_debug_card_prsnt(&prsnt);
- if (ret) {
- return ret;
- }
-
- // No debug card present, return
- if (!prsnt) {
- return 0;
- }
-
- // Get the hand switch position
- ret = pal_get_hand_sw(&pos);
- if (ret) {
- return ret;
- }
-
- // If the give server is not selected, return
- if (pos != slot) {
- return 0;
- }
-
- // Display the post code in the debug card
- ret = pal_post_display(status);
- if (ret) {
- return ret;
- }
-
- return 0;
-}
-
-
-static int
-read_kv(char *key, char *value) {
-
- FILE *fp;
- int rc;
-
- fp = fopen(key, "r");
- if (!fp) {
- int err = errno;
-#ifdef DEBUG
- syslog(LOG_WARNING, "read_kv: failed to open %s", key);
-#endif
- return err;
- }
-
- rc = (int) fread(value, 1, MAX_VALUE_LEN, fp);
- fclose(fp);
- if (rc <= 0) {
-#ifdef DEBUG
- syslog(LOG_INFO, "read_kv: failed to read %s", key);
-#endif
- return ENOENT;
- } else {
- return 0;
- }
-}
-
-static int
-write_kv(char *key, char *value) {
-
- FILE *fp;
- int rc;
-
- fp = fopen(key, "w");
- if (!fp) {
- int err = errno;
-#ifdef DEBUG
- syslog(LOG_WARNING, "write_kv: failed to open %s", key);
-#endif
- return err;
- }
-
- rc = fwrite(value, 1, strlen(value), fp);
- fclose(fp);
-
- if (rc < 0) {
-#ifdef DEBUG
- syslog(LOG_WARNING, "write_kv: failed to write to %s", key);
-#endif
- return ENOENT;
- } else {
- return 0;
- }
-}
-
-int
-pal_get_fru_id(char *str, uint8_t *fru) {
-
- return yosemite_common_fru_id(str, fru);
-}
-
-int
-pal_get_fru_name(uint8_t fru, char *name) {
-
- return yosemite_common_fru_name(fru, name);
-}
-
-int
-pal_get_fru_sdr_path(uint8_t fru, char *path) {
- return yosemite_sensor_sdr_path(fru, path);
-}
-
-int
-pal_get_fru_sensor_list(uint8_t fru, uint8_t **sensor_list, int *cnt) {
-
- switch(fru) {
- case FRU_SLOT1:
- case FRU_SLOT2:
- case FRU_SLOT3:
- case FRU_SLOT4:
- *sensor_list = (uint8_t *) bic_sensor_list;
- *cnt = bic_sensor_cnt;
- break;
- case FRU_SPB:
- *sensor_list = (uint8_t *) spb_sensor_list;
- *cnt = spb_sensor_cnt;
- break;
- case FRU_NIC:
- *sensor_list = (uint8_t *) nic_sensor_list;
- *cnt = nic_sensor_cnt;
- break;
- default:
-#ifdef DEBUG
- syslog(LOG_WARNING, "pal_get_fru_sensor_list: Wrong fru id %u", fru);
-#endif
- return -1;
- }
- return 0;
-}
-
-int
-pal_fruid_write(uint8_t fru, char *path) {
- return bic_write_fruid(fru, 0, path);
-}
-
-int
-pal_sensor_sdr_init(uint8_t fru, sensor_info_t *sinfo) {
- return yosemite_sensor_sdr_init(fru, sinfo);
-}
-
-int
-pal_sensor_read(uint8_t fru, uint8_t sensor_num, void *value) {
- return yosemite_sensor_read(fru, sensor_num, value);
-}
-
-int
-pal_get_sensor_threshold(uint8_t fru, uint8_t sensor_num, uint8_t thresh, void *value) {
- return yosemite_sensor_threshold(fru, sensor_num, thresh, value);
-}
-
-int
-pal_get_sensor_name(uint8_t fru, uint8_t sensor_num, char *name) {
- return yosemite_sensor_name(fru, sensor_num, name);
-}
-
-int
-pal_get_sensor_units(uint8_t fru, uint8_t sensor_num, char *units) {
- return yosemite_sensor_units(fru, sensor_num, units);
-}
-
-int
-pal_get_fruid_path(uint8_t fru, char *path) {
- return yosemite_get_fruid_path(fru, path);
-}
-
-int
-pal_get_fruid_eeprom_path(uint8_t fru, char *path) {
- return yosemite_get_fruid_eeprom_path(fru, path);
-}
-
-int
-pal_get_fruid_name(uint8_t fru, char *name) {
- return yosemite_get_fruid_name(fru, name);
-}
-
-
-static int
-get_key_value(char* key, char *value) {
-
- char kpath[64] = {0};
-
- sprintf(kpath, KV_STORE, key);
-
- if (access(KV_STORE_PATH, F_OK) == -1) {
- mkdir(KV_STORE_PATH, 0777);
- }
-
- return read_kv(kpath, value);
-}
-
-static int
-set_key_value(char *key, char *value) {
-
- char kpath[64] = {0};
-
- sprintf(kpath, KV_STORE, key);
-
- if (access(KV_STORE_PATH, F_OK) == -1) {
- mkdir(KV_STORE_PATH, 0777);
- }
-
- return write_kv(kpath, value);
-}
-
-int
-pal_get_key_value(char *key, char *value) {
-
- int ret;
- int i;
-
- i = 0;
- while(strcmp(key_list[i], LAST_KEY)) {
-
- if (!strcmp(key, key_list[i])) {
- // Key is valid
- if ((ret = get_key_value(key, value)) < 0 ) {
-#ifdef DEBUG
- syslog(LOG_WARNING, "pal_get_key_value: get_key_value failed. %d", ret);
-#endif
- return ret;
- }
- return ret;
- }
- i++;
- }
-
- return -1;
-}
-
-int
-pal_set_def_key_value() {
-
- int ret;
- int i;
- char kpath[64] = {0};
-
- i = 0;
- while(strcmp(key_list[i], LAST_KEY)) {
-
- sprintf(kpath, KV_STORE, key_list[i]);
-
- if (access(kpath, F_OK) == -1) {
- if ((ret = set_key_value(key_list[i], def_val_list[i])) < 0) {
-#ifdef DEBUG
- syslog(LOG_WARNING, "pal_set_def_key_value: set_key_value failed. %d", ret);
-#endif
- }
- }
- i++;
- }
-
- return 0;
-}
-
-int
-pal_set_key_value(char *key, char *value) {
-
- int ret;
- int i;
-
- i = 0;
- while(strcmp(key_list[i], LAST_KEY)) {
-
- if (!strcmp(key, key_list[i])) {
- // Key is valid
- if ((ret = set_key_value(key, value)) < 0) {
-#ifdef DEBUG
- syslog(LOG_WARNING, "pal_set_key_value: set_key_value failed. %d", ret);
-#endif
- return ret;
- }
- return ret;
- }
- i++;
- }
-
- return -1;
-}
-
-int
-pal_get_fru_devtty(uint8_t fru, char *devtty) {
-
- switch(fru) {
- case FRU_SLOT1:
- sprintf(devtty, "/dev/ttyS2");
- break;
- case FRU_SLOT2:
- sprintf(devtty, "/dev/ttyS1");
- break;
- case FRU_SLOT3:
- sprintf(devtty, "/dev/ttyS4");
- break;
- case FRU_SLOT4:
- sprintf(devtty, "/dev/ttyS3");
- break;
- default:
-#ifdef DEBUG
- syslog(LOG_WARNING, "pal_get_fru_devtty: Wrong fru id %u", fru);
-#endif
- return -1;
- }
- return 0;
-}
-
-void
-pal_dump_key_value(void) {
- int i;
- int ret;
-
- char value[MAX_VALUE_LEN] = {0x0};
-
- while (strcmp(key_list[i], LAST_KEY)) {
- printf("%s:", key_list[i]);
- if (ret = get_key_value(key_list[i], value) < 0) {
- printf("\n");
- } else {
- printf("%s\n", value);
- }
- i++;
- memset(value, 0, MAX_VALUE_LEN);
- }
-}
-
-int
-pal_set_last_pwr_state(uint8_t fru, char *state) {
-
- int ret;
- char key[MAX_KEY_LEN] = {0};
-
- sprintf(key, "pwr_server%d_last_state", (int) fru);
-
- ret = pal_set_key_value(key, state);
- if (ret < 0) {
-#ifdef DEBUG
- syslog(LOG_WARNING, "pal_set_last_pwr_state: pal_set_key_value failed for "
- "fru %u", fru);
-#endif
- }
- return ret;
-}
-
-int
-pal_get_last_pwr_state(uint8_t fru, char *state) {
- int ret;
- char key[MAX_KEY_LEN] = {0};
-
- switch(fru) {
- case FRU_SLOT1:
- case FRU_SLOT2:
- case FRU_SLOT3:
- case FRU_SLOT4:
-
- sprintf(key, "pwr_server%d_last_state", (int) fru);
-
- ret = pal_get_key_value(key, state);
- if (ret < 0) {
-#ifdef DEBUG
- syslog(LOG_WARNING, "pal_get_last_pwr_state: pal_get_key_value failed for "
- "fru %u", fru);
-#endif
- }
- return ret;
- case FRU_SPB:
- case FRU_NIC:
- sprintf(state, "on");
- return 0;
- }
-}
-
-int
-pal_get_sys_guid(uint8_t slot, char *guid) {
- int ret;
-
- return bic_get_sys_guid(slot, guid);
-}
-
-int
-pal_set_sysfw_ver(uint8_t slot, uint8_t *ver) {
- int i;
- char key[MAX_KEY_LEN] = {0};
- char str[MAX_VALUE_LEN] = {0};
- char tstr[10] = {0};
-
- sprintf(key, "sysfw_ver_slot%d", (int) slot);
-
- for (i = 0; i < SIZE_SYSFW_VER; i++) {
- sprintf(tstr, "%02x", ver[i]);
- strcat(str, tstr);
- }
-
- return pal_set_key_value(key, str);
-}
-
-int
-pal_get_sysfw_ver(uint8_t slot, uint8_t *ver) {
- int i;
- int j = 0;
- int ret;
- int msb, lsb;
- char key[MAX_KEY_LEN] = {0};
- char str[MAX_VALUE_LEN] = {0};
- char tstr[4] = {0};
-
- sprintf(key, "sysfw_ver_slot%d", (int) slot);
-
- ret = pal_get_key_value(key, str);
- if (ret) {
- return ret;
- }
-
- for (i = 0; i < 2*SIZE_SYSFW_VER; i += 2) {
- sprintf(tstr, "%c\n", str[i]);
- msb = strtol(tstr, NULL, 16);
-
- sprintf(tstr, "%c\n", str[i+1]);
- lsb = strtol(tstr, NULL, 16);
- ver[j++] = (msb << 4) | lsb;
- }
-
- return 0;
-}
-
-int
-pal_is_bmc_por(void) {
- uint32_t scu_fd;
- uint32_t wdt;
- void *scu_reg;
- void *scu_wdt;
-
- scu_fd = open("/dev/mem", O_RDWR | O_SYNC );
- if (scu_fd < 0) {
- return 0;
- }
-
- scu_reg = mmap(NULL, PAGE_SIZE, PROT_READ|PROT_WRITE, MAP_SHARED, scu_fd,
- AST_WDT_BASE);
- scu_wdt = (char*)scu_reg + WDT_OFFSET;
-
- wdt = *(volatile uint32_t*) scu_wdt;
-
- munmap(scu_reg, PAGE_SIZE);
- close(scu_fd);
-
- if (wdt & 0xff00) {
- return 0;
- } else {
- return 1;
- }
-}
-
-int
-pal_get_fru_discrete_list(uint8_t fru, uint8_t **sensor_list, int *cnt) {
-
- switch(fru) {
- case FRU_SLOT1:
- case FRU_SLOT2:
- case FRU_SLOT3:
- case FRU_SLOT4:
- *sensor_list = (uint8_t *) bic_discrete_list;
- *cnt = bic_discrete_cnt;
- break;
- case FRU_SPB:
- case FRU_NIC:
- return -1;
- default:
-#ifdef DEBUG
- syslog(LOG_WARNING, "pal_get_fru_discrete_list: Wrong fru id %u", fru);
-#endif
- return -1;
- }
- return 0;
-}
-
-static void
-_print_sensor_discrete_log(uint8_t fru, uint8_t snr_num, char *snr_name,
- uint8_t val, char *event) {
- if (val) {
- syslog(LOG_CRIT, "ASSERT: %s discrete - raised - FRU: %d, num: 0x%X,"
- " snr: %-16s val: %d", event, fru, snr_num, snr_name, val);
- } else {
- syslog(LOG_CRIT, "DEASSERT: %s discrete - settled - FRU: %d, num: 0x%X,"
- " snr: %-16s val: %d", event, fru, snr_num, snr_name, val);
- }
-}
-
-int
-pal_sensor_discrete_check(uint8_t fru, uint8_t snr_num, char *snr_name,
- uint8_t o_val, uint8_t n_val) {
-
- char name[32];
- bool valid = false;
- uint8_t diff = o_val ^ n_val;
-
- if (GETBIT(diff, 0)) {
- switch(snr_num) {
- case BIC_SENSOR_SYSTEM_STATUS:
- sprintf(name, "SOC_Thermal_Trip");
- valid = true;
- break;
- case BIC_SENSOR_VR_HOT:
- sprintf(name, "SOC_VR_Hot");
- valid = true;
- break;
- case BIC_SENSOR_CPU_DIMM_HOT:
- sprintf(name, "SOC_Hot");
- valid = true;
- break;
- }
- if (valid) {
- _print_sensor_discrete_log( fru, snr_num, snr_name, GETBIT(n_val, 0), name);
- valid = false;
- }
- }
-
- if (GETBIT(diff, 1)) {
- switch(snr_num) {
- case BIC_SENSOR_SYSTEM_STATUS:
- sprintf(name, "SOC_FIVR_Fault");
- valid = true;
- break;
- case BIC_SENSOR_VR_HOT:
- sprintf(name, "SOC_DIMM_VR_Hot");
- valid = true;
- break;
- case BIC_SENSOR_CPU_DIMM_HOT:
- sprintf(name, "SOC_MEMHOT");
- valid = true;
- break;
- }
- if (valid) {
- _print_sensor_discrete_log( fru, snr_num, snr_name, GETBIT(n_val, 1), name);
- valid = false;
- }
- }
-
- if (GETBIT(diff, 2)) {
- switch(snr_num) {
- case BIC_SENSOR_SYSTEM_STATUS:
- sprintf(name, "SOC_Throttle");
- valid = true;
- break;
- }
- if (valid) {
- _print_sensor_discrete_log( fru, snr_num, snr_name, GETBIT(n_val, 2), name);
- valid = false;
- }
- }
-}
-
-static int
-pal_store_crashdump(uint8_t fru) {
-
- return yosemite_common_crashdump(fru);
-}
-
-int
-pal_sel_handler(uint8_t fru, uint8_t snr_num) {
-
- switch(snr_num) {
- case CATERR:
- pal_store_crashdump(fru);
- break;
- }
-
- return 0;
-}
-
-int
-pal_get_event_sensor_name(uint8_t fru, uint8_t snr_num, char *name) {
-
- switch(snr_num) {
- case SYSTEM_EVENT:
- sprintf(name, "SYSTEM_EVENT");
- break;
- case THERM_THRESH_EVT:
- sprintf(name, "THERM_THRESH_EVT");
- break;
- case BUTTON:
- sprintf(name, "BUTTON");
- break;
- case POWER_STATE:
- sprintf(name, "POWER_STATE");
- break;
- case CRITICAL_IRQ:
- sprintf(name, "CRITICAL_IRQ");
- break;
- case POST_ERROR:
- sprintf(name, "POST_ERROR");
- break;
- case MACHINE_CHK_ERR:
- sprintf(name, "MACHINE_CHK_ERR");
- break;
- case PCIE_ERR:
- sprintf(name, "PCIE_ERR");
- break;
- case IIO_ERR:
- sprintf(name, "IIO_ERR");
- break;
- case MEMORY_ECC_ERR:
- sprintf(name, "MEMORY_ECC_ERR");
- break;
- case PROCHOT_EXT:
- sprintf(name, "PROCHOT_EXT");
- break;
- case PWR_ERR:
- sprintf(name, "PWR_ERR");
- break;
- case CATERR:
- sprintf(name, "CATERR");
- break;
- default:
- sprintf(name, "unknown");
- break;
- }
-
- return 0;
-}
-
-int
-pal_parse_sel(uint8_t fru, uint8_t snr_num, uint8_t *event_data,
- char *error_log) {
-
- char *ed = event_data;
- char temp_log[128] = {0};
- uint8_t temp;
-
- switch(snr_num) {
- case SYSTEM_EVENT:
- sprintf(error_log, "SYSTEM_EVENT");
- if (ed[0] == 0xE5) {
- strcat(error_log, ": Cause of Time change");
-
- if (ed[2] == 0x00)
- strcat(error_log, ": NTP");
- else if (ed[2] == 0x01)
- strcat(error_log, ": Host RTL");
- else if (ed[2] == 0x02)
- strcat(error_log, ": Set SEL time cmd ");
- else if (ed[2] == 0x03)
- strcat(error_log, ": Set SEL time UTC offset cmd");
- else
- strcat(error_log, ": Unknown");
-
- if (ed[1] == 0x00)
- strcat(error_log, ": First Time");
- else if(ed[1] == 0x80)
- strcat(error_log, ": Second Time");
-
- }
- break;
-
- case THERM_THRESH_EVT:
- sprintf(error_log, "THERM_THRESH_EVT");
- if (ed[0] == 0x1)
- strcat(error_log, ": Limit Exceeded");
- else
- strcat(error_log, ": Unknown");
- break;
-
- case BUTTON:
- sprintf(error_log, "BUTTON");
- if (ed[0] == 0x0)
- strcat(error_log, ": Power button pressed");
- else if (ed[0] == 0x2)
- strcat(error_log, ": Reset button pressed");
- else
- strcat(error_log, ": Unknown");
- break;
-
- case POWER_STATE:
- sprintf(error_log, "POWER_STATE");
- if (ed[0] == 0x0)
- strcat(error_log, ": Transition to Running");
- else if (ed[0] == 0x2)
- strcat(error_log, ": Transition to Power Off");
- else
- strcat(error_log, ": Unknown");
- break;
-
- case CRITICAL_IRQ:
- sprintf(error_log, "CRITICAL_IRQ");
- if (ed[0] == 0x0)
- strcat(error_log, ": Diagnostic Interrupt");
- else
- strcat(error_log, ": Unknown");
- break;
-
- case POST_ERROR:
- sprintf(error_log, "POST_ERROR");
- if ((ed[0] & 0x0F) == 0x0)
- strcat(error_log, ": System Firmware Error");
- else
- strcat(error_log, ": Unknown");
- if (((ed[0] >> 6) & 0x03) == 0x3) {
- // TODO: Need to implement IPMI spec based Post Code
- strcat(error_log, ": IPMI Post Code");
- } else if (((ed[0] >> 6) & 0x03) == 0x2) {
- sprintf(temp_log, "OEM Post Code: 0x%X 0x%X", ed[2], ed[1]);
- strcat(error_log, temp_log);
- }
- break;
-
- case MACHINE_CHK_ERR:
- sprintf(error_log, "MACHINE_CHK_ERR");
- if ((ed[0] & 0x0F) == 0x0B) {
- strcat(error_log, ": Uncorrectable");
- } else if ((ed[0] & 0x0F) == 0x0C) {
- strcat(error_log, ": Correctable");
- } else {
- strcat(error_log, ": Unknown");
- }
-
- sprintf(temp_log, "Machine Check bank Number - %d ", ed[1]);
- strcat(error_log, temp_log);
- sprintf(temp_log, "CPU - %d, Core - %d ", ed[2] >> 5, ed[2] & 0x1F);
- strcat(error_log, temp_log);
-
- break;
-
- case PCIE_ERR:
- sprintf(error_log, "PCIE_ERR");
- if ((ed[0] & 0xF) == 0x4)
- strcat(error_log, ": PCI PERR");
- else if ((ed[0] & 0xF) == 0x5)
- strcat(error_log, ": PCI SERR");
- else if ((ed[0] & 0xF) == 0x7)
- strcat(error_log, ": Correctable");
- else if ((ed[0] & 0xF) == 0x8)
- strcat(error_log, ": Uncorrectable");
- else if ((ed[0] & 0xF) == 0xA)
- strcat(error_log, ": Bus Fatal");
- else
- strcat(error_log, ": Unknown");
- break;
-
- case IIO_ERR:
- sprintf(error_log, "IIO_ERR");
- if ((ed[0] & 0xF) == 0) {
-
- sprintf(temp_log, ": CPU - %d, Error ID - 0x%X", (ed[2] & 0xE0) >> 5,
- ed[1]);
- strcat(error_log, temp_log);
-
- temp = ed[2] & 0x7;
- if (temp == 0x0)
- strcat(error_log, ": IRP0");
- else if (temp == 0x1)
- strcat(error_log, ": IRP1");
- else if (temp == 0x2)
- strcat(error_log, ": IIO-Core");
- else if (temp == 0x3)
- strcat(error_log, ": VT-d");
- else if (temp == 0x4)
- strcat(error_log, ": Intel Quick Data");
- else if (temp == 0x5)
- strcat(error_log, ": Misc");
- else
- strcat(error_log, ": Reserved");
- }
- break;
-
- case MEMORY_ECC_ERR:
- sprintf(error_log, "MEMORY_ECC_ERR");
- if ((ed[0] & 0x0F) == 0x0)
- strcat(error_log, ": Correctable");
- else if ((ed[0] & 0x0F) == 0x1)
- strcat(error_log, ": Uncorrectable");
- else if ((ed[0] & 0x0F) == 0x5)
- strcat(error_log, ": Correctable ECC error Logging Limit Reached");
- else
- strcat(error_log, ": Unknown");
-
- if (((ed[1] & 0xC) >> 2) == 0x0) {
- /* All Info Valid */
- sprintf(temp_log, ": CPU# - %d, CHN# - %d, DIMM# - %d ",
- (ed[2] & 0xE0) >> 5, (ed[2] & 0x18) >> 3, ed[2] & 0x7);
- } else if (((ed[1] & 0xC) >> 2) == 0x1) {
- /* DIMM info not valid */
- sprintf(temp_log, ": CPU# - %d, CHN# - %d",
- (ed[2] & 0xE0) >> 5, (ed[2] & 0x18) >> 3);
- } else if (((ed[1] & 0xC) >> 2) == 0x2) {
- /* CHN info not valid */
- sprintf(temp_log, ": CPU# - %d, DIMM# - %d ",
- (ed[2] & 0xE0) >> 5, ed[2] & 0x7);
- } else if (((ed[1] & 0xC) >> 2) == 0x3) {
- /* CPU info not valid */
- sprintf(temp_log, ": CHN# - %d, DIMM# - %d ",
- (ed[2] & 0x18) >> 3, ed[2] & 0x7);
- }
- strcat(error_log, temp_log);
-
- break;
-
- case PROCHOT_EXT:
- sprintf(error_log, "PROCHOT_EXT");
- if ((ed[0] & 0xF) == 0xA)
- strcat(error_log, ": Processor Thermal Throttling Offset");
- else
- strcat(error_log, ": Unknown");
- break;
-
- if ((ed[1] & 0x3) == 0x1)
- strcat(error_log, ": External (VR)");
- else if ((ed[1] & 0x3) == 0x0)
- strcat(error_log, ": Native");
- break;
-
- sprintf(temp_log, ": SOC ID - %d", (ed[2] & 0xE0) >> 5);
- strcat(error_log, temp_log);
-
- case PWR_ERR:
- sprintf(error_log, "PWR_ERR");
- if (ed[0] == 0x2)
- strcat(error_log, ": PCH_PWROK failure");
- else
- strcat(error_log, ": Unknown");
- break;
-
- case CATERR:
- sprintf(error_log, "CATERR");
- if (ed[0] == 0x0)
- strcat(error_log, ": IERR");
- else if (ed[0] == 0xB)
- strcat(error_log, ": MCERR");
- else
- strcat(error_log, ": Unknown");
- break;
-
- default:
- sprintf(error_log, "unknown");
- break;
- }
-
- return 0;
-}
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/pal/pal.h b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/pal/pal.h
deleted file mode 100644
index b3f542a..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/pal/pal.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- *
- * Copyright 2015-present Facebook. All Rights Reserved.
- *
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef __PAL_H__
-#define __PAL_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <facebook/bic.h>
-#include <facebook/yosemite_common.h>
-#include <facebook/yosemite_fruid.h>
-#include <facebook/yosemite_sensor.h>
-
-#define MAX_KEY_LEN 64
-#define MAX_VALUE_LEN 64
-
-#define KV_STORE "/mnt/data/kv_store/%s"
-#define KV_STORE_PATH "/mnt/data/kv_store"
-
-#define SETBIT(x, y) (x | (1 << y))
-#define GETBIT(x, y) ((x & (1 << y)) > y)
-#define CLEARBIT(x, y) (x & (~(1 << y)))
-#define GETMASK(y) (1 << y)
-
-extern char * key_list[];
-extern const char pal_fru_list[];
-extern const char pal_server_list[];
-
-enum {
- LED_STATE_OFF,
- LED_STATE_ON,
-};
-
-enum {
- USB_MUX_OFF,
- USB_MUX_ON,
-};
-
-enum {
- SERVER_POWER_OFF,
- SERVER_POWER_ON,
- SERVER_POWER_CYCLE,
- SERVER_GRACEFUL_SHUTDOWN,
- SERVER_12V_OFF,
- SERVER_12V_ON,
- SERVER_12V_CYCLE,
-};
-
-enum {
- HAND_SW_SERVER1 = 1,
- HAND_SW_SERVER2,
- HAND_SW_SERVER3,
- HAND_SW_SERVER4,
- HAND_SW_BMC
-};
-
-enum {
- SYSTEM_EVENT = 0xE9,
- THERM_THRESH_EVT = 0x7D,
- BUTTON = 0xAA,
- POWER_STATE = 0xAB,
- CRITICAL_IRQ = 0xEA,
- POST_ERROR = 0x2B,
- MACHINE_CHK_ERR = 0x40,
- PCIE_ERR = 0x41,
- IIO_ERR = 0x43,
- MEMORY_ECC_ERR = 0X63,
- PROCHOT_EXT = 0X51,
- PWR_ERR = 0X56,
- CATERR= 0xEB,
-};
-
-int pal_get_platform_name(char *name);
-int pal_get_num_slots(uint8_t *num);
-int pal_is_server_prsnt(uint8_t slot_id, uint8_t *status);
-int pal_get_server_power(uint8_t slot_id, uint8_t *status);
-int pal_set_server_power(uint8_t slot_id, uint8_t cmd);
-int pal_sled_cycle(void);
-int pal_is_debug_card_prsnt(uint8_t *status);
-int pal_get_hand_sw(uint8_t *pos);
-int pal_switch_usb_mux(uint8_t slot);
-int pal_switch_uart_mux(uint8_t slot);
-int pal_post_enable(uint8_t slot);
-int pal_post_disable(uint8_t slot);
-int pal_post_get_last(uint8_t slot, uint8_t *post);
-int pal_post_handle(uint8_t slot, uint8_t status);
-int pal_get_pwr_btn(uint8_t *status);
-int pal_get_rst_btn(uint8_t *status);
-int pal_set_rst_btn(uint8_t slot, uint8_t status);
-int pal_set_led(uint8_t slot, uint8_t status);
-int pal_set_hb_led(uint8_t status);
-int pal_set_id_led(uint8_t slot, uint8_t status);
-int pal_get_fru_id(char *fru_str, uint8_t *fru);
-int pal_get_fru_name(uint8_t fru, char *name);
-int pal_get_fruid_path(uint8_t fru, char *path);
-int pal_get_fruid_eeprom_path(uint8_t fru, char *path);
-int pal_get_fruid_name(uint8_t fru, char *name);
-int pal_get_fru_sdr_path(uint8_t fru, char *path);
-int pal_get_sensor_units(uint8_t fru, uint8_t sensor_num, char *units);
-int pal_get_fru_sensor_list(uint8_t fru, uint8_t **sensor_list, int *cnt);
-int pal_get_fru_discrete_list(uint8_t fru, uint8_t **sensor_list, int *cnt);
-int pal_sensor_sdr_init(uint8_t fru, sensor_info_t *sinfo);
-int pal_sensor_read(uint8_t fru, uint8_t sensor_num, void *value);
-int pal_get_sensor_name(uint8_t fru, uint8_t sensor_num, char *name);
-int pal_get_sensor_threshold(uint8_t fru, uint8_t sensor_num, uint8_t thresh,
- void *value);
-int pal_get_key_value(char *key, char *value);
-int pal_set_key_value(char *key, char *value);
-int pal_set_def_key_value();
-void pal_dump_key_value(void);
-int pal_get_fru_devtty(uint8_t fru, char *devtty);
-int pal_get_last_pwr_state(uint8_t fru, char *state);
-int pal_set_last_pwr_state(uint8_t fru, char *state);
-int pal_get_sys_guid(uint8_t slot, char *guid);
-int pal_set_sysfw_ver(uint8_t slot, uint8_t *ver);
-int pal_get_sysfw_ver(uint8_t slot, uint8_t *ver);
-int pal_fruid_write(uint8_t slot, char *path);
-int pal_is_bmc_por(void);
-int pal_sensor_discrete_check(uint8_t fru, uint8_t snr_num, char *snr_name,
- uint8_t o_val, uint8_t n_val);
-int pal_get_event_sensor_name(uint8_t fru, uint8_t snr_num, char *name);
-int pal_parse_sel(uint8_t fru, uint8_t snr_num, uint8_t *event_data,
- char *error_log);
-int pal_sel_handler(uint8_t fru, uint8_t snr_num);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif /* __PAL_H__ */
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_common/Makefile b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_common/Makefile
deleted file mode 100644
index 40ea2a8..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_common/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-# Copyright 2015-present Facebook. All Rights Reserved.
-lib: libyosemite_common.so
-
-libyosemite_common.so: yosemite_common.c
- $(CC) $(CFLAGS) -fPIC -pthread -c -o yosemite_common.o yosemite_common.c
- $(CC) -lpthread -shared -o libyosemite_common.so yosemite_common.o -lc
-
-.PHONY: clean
-
-clean:
- rm -rf *.o libyosemite_common.so
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_common/yosemite_common.c b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_common/yosemite_common.c
deleted file mode 100644
index c638809..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_common/yosemite_common.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- *
- * Copyright 2015-present Facebook. All Rights Reserved.
- *
- * This file contains code to support IPMI2.0 Specificaton available @
- * http://www.intel.com/content/www/us/en/servers/ipmi/ipmi-specifications.html
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <stdbool.h>
-#include <math.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <syslog.h>
-#include <pthread.h>
-#include <string.h>
-#include "yosemite_common.h"
-
-#define CRASHDUMP_BIN "/usr/local/bin/dump.sh"
-#define CRASHDUMP_FILE "/mnt/data/crashdump_"
-
-int
-yosemite_common_fru_name(uint8_t fru, char *str) {
-
- switch(fru) {
- case FRU_SLOT1:
- sprintf(str, "slot1");
- break;
-
- case FRU_SLOT2:
- sprintf(str, "slot2");
- break;
-
- case FRU_SLOT3:
- sprintf(str, "slot3");
- break;
-
- case FRU_SLOT4:
- sprintf(str, "slot4");
- break;
-
- case FRU_SPB:
- sprintf(str, "spb");
- break;
-
- case FRU_NIC:
- sprintf(str, "nic");
- break;
-
- default:
-#ifdef DEBUG
- syslog(LOG_WARNING, "yosemite_common_fru_id: Wrong fru id");
-#endif
- return -1;
- }
-
- return 0;
-}
-
-int
-yosemite_common_fru_id(char *str, uint8_t *fru) {
-
- if (!strcmp(str, "all")) {
- *fru = FRU_ALL;
- } else if (!strcmp(str, "slot1")) {
- *fru = FRU_SLOT1;
- } else if (!strcmp(str, "slot2")) {
- *fru = FRU_SLOT2;
- } else if (!strcmp(str, "slot3")) {
- *fru = FRU_SLOT3;
- } else if (!strcmp(str, "slot4")) {
- *fru = FRU_SLOT4;
- } else if (!strcmp(str, "spb")) {
- *fru = FRU_SPB;
- } else if (!strcmp(str, "nic")) {
- *fru = FRU_NIC;
- } else {
-#ifdef DEBUG
- syslog(LOG_WARNING, "yosemite_common_fru_id: Wrong fru id");
-#endif
- return -1;
- }
-
- return 0;
-}
-
-void *
-generate_dump(void *arg) {
-
- uint8_t fru = *(uint8_t *) arg;
- char cmd[128];
- char fruname[16];
-
- yosemite_common_fru_name(fru, fruname);
-
- // HEADER LINE for the dump
- memset(cmd, 0, 128);
- sprintf(cmd, "%s time > %s%s", CRASHDUMP_BIN, CRASHDUMP_FILE, fruname);
- system(cmd);
-
- // COREID dump
- memset(cmd, 0, 128);
- sprintf(cmd, "%s %s 48 coreid >> %s%s", CRASHDUMP_BIN, fruname,
- CRASHDUMP_FILE, fruname);
- system(cmd);
-
- // MSR dump
- memset(cmd, 0, 128);
- sprintf(cmd, "%s %s 48 msr >> %s%s", CRASHDUMP_BIN, fruname,
- CRASHDUMP_FILE, fruname);
- system(cmd);
-
- syslog(LOG_CRIT, "Crashdump for FRU: %d is generated.", fru);
-}
-
-int
-yosemite_common_crashdump(uint8_t fru) {
-
- if (access(CRASHDUMP_BIN, F_OK) == -1) {
- syslog(LOG_CRIT, "Crashdump for FRU: %d failed : "
- "crashdump binary is not preset", fru);
- return 0;
- }
-
- pthread_t t_dump;
-
- if (pthread_create(&t_dump, NULL, generate_dump, (void*) &fru) < 0) {
- syslog(LOG_WARNING, "pal_store_crashdump: pthread_create for"
- " FRU %d failed\n", fru);
- }
-
- syslog(LOG_INFO, "Crashdump for FRU: %d is being generated.", fru);
-
- return 0;
-}
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_common/yosemite_common.h b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_common/yosemite_common.h
deleted file mode 100644
index f2128ef..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_common/yosemite_common.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- *
- * Copyright 2015-present Facebook. All Rights Reserved.
- *
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef __YOSEMITE_COMMON_H__
-#define __YOSEMITE_COMMON_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define MAX_NUM_FRUS 6
-enum {
- FRU_ALL = 0,
- FRU_SLOT1 = 1,
- FRU_SLOT2 = 2,
- FRU_SLOT3 = 3,
- FRU_SLOT4 = 4,
- FRU_SPB = 5,
- FRU_NIC = 6,
-};
-
-int yosemite_common_fru_name(uint8_t fru, char *str);
-int yosemite_common_fru_id(char *str, uint8_t *fru);
-int yosemite_common_crashdump(uint8_t fru);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif /* __YOSEMITE_COMMON_H__ */
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_fruid/Makefile b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_fruid/Makefile
deleted file mode 100644
index eda01dc..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_fruid/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2015-present Facebook. All Rights Reserved.
-#
-# This program file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the
-# Free Software Foundation; version 2 of the License.
-#
-# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program in a file named COPYING; if not, write to the
-# Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor,
-# Boston, MA 02110-1301 USA
-
-lib: libyosemite_fruid.so
-
-libyosemite_fruid.so: yosemite_fruid.c
- $(CC) $(CFLAGS) -fPIC -c -o yosemite_fruid.o yosemite_fruid.c
- $(CC) -lyosemite_common -shared -o libyosemite_fruid.so yosemite_fruid.o -lc
-
-.PHONY: clean
-
-clean:
- rm -rf *.o libyosemite_fruid.so
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_fruid/yosemite_fruid.c b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_fruid/yosemite_fruid.c
deleted file mode 100644
index d431d34..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_fruid/yosemite_fruid.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Copyright 2015-present Facebook. All Rights Reserved.
- *
- * This file contains code to support IPMI2.0 Specificaton available @
- * http://www.intel.com/content/www/us/en/servers/ipmi/ipmi-specifications.html
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <syslog.h>
-#include "yosemite_fruid.h"
-
-/* Populate char path[] with the path to the fru's fruid binary dump */
-int
-yosemite_get_fruid_path(uint8_t fru, char *path) {
- char fname[16] = {0};
-
- switch(fru) {
- case FRU_SLOT1:
- sprintf(fname, "slot1");
- break;
- case FRU_SLOT2:
- sprintf(fname, "slot2");
- break;
- case FRU_SLOT3:
- sprintf(fname, "slot3");
- break;
- case FRU_SLOT4:
- sprintf(fname, "slot4");
- break;
- case FRU_SPB:
- sprintf(fname, "spb");
- break;
- case FRU_NIC:
- sprintf(fname, "nic");
- break;
- default:
-#ifdef DEBUG
- syslog(LOG_WARNING, "yosemite_get_fruid_path: wrong fruid");
-#endif
- return -1;
- }
-
- sprintf(path, YOSEMITE_FRU_PATH, fname);
- return 0;
-}
-
-int
-yosemite_get_fruid_eeprom_path(uint8_t fru, char *path) {
- char fname[16] = {0};
-
- switch(fru) {
- case FRU_SLOT1:
- case FRU_SLOT2:
- case FRU_SLOT3:
- case FRU_SLOT4:
- return -1;
- case FRU_SPB:
- sprintf(path, "/sys/class/i2c-adapter/i2c-8/8-0051/eeprom");
- break;
- case FRU_NIC:
- sprintf(path, "/sys/class/i2c-adapter/i2c-12/12-0051/eeprom");
- break;
- default:
-#ifdef DEBUG
- syslog(LOG_WARNING, "yosemite_get_fruid_eeprom_path: wrong fruid");
-#endif
- return -1;
- }
-
- return 0;
-}
-
-/* Populate char name[] with the path to the fru's name */
-int
-yosemite_get_fruid_name(uint8_t fru, char *name) {
-
- switch(fru) {
- case FRU_SLOT1:
- sprintf(name, "MonoLake Board 1");
- break;
- case FRU_SLOT2:
- sprintf(name, "MonoLake Board 2");
- break;
- case FRU_SLOT3:
- sprintf(name, "MonoLake Board 3");
- break;
- case FRU_SLOT4:
- sprintf(name, "MonoLake Board 4");
- break;
- case FRU_SPB:
- sprintf(name, "Side Plane Board");
- break;
- case FRU_NIC:
- sprintf(name, "CX4 NIC");
- break;
- default:
-#ifdef DEBUG
- syslog(LOG_WARNING, "yosemite_get_fruid_name: wrong fruid");
-#endif
- return -1;
- }
- return 0;
-}
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_fruid/yosemite_fruid.h b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_fruid/yosemite_fruid.h
deleted file mode 100644
index 78cdbe4..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_fruid/yosemite_fruid.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2015-present Facebook. All Rights Reserved.
- *
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef __YOSEMITE_FRUID_H__
-#define __YOSEMITE_FRUID_H__
-
-#include <facebook/yosemite_common.h>
-
-#define YOSEMITE_FRU_PATH "/tmp/fruid_%s.bin"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int yosemite_get_fruid_path(uint8_t fru, char *path);
-int yosemite_get_fruid_eeprom_path(uint8_t fru, char *path);
-int yosemite_get_fruid_name(uint8_t fru, char *name);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif /* __YOSEMITE_FRUID_H__ */
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_gpio/Makefile b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_gpio/Makefile
deleted file mode 100644
index 66c0005..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_gpio/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2015-present Facebook. All Rights Reserved.
-#
-# This program file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the
-# Free Software Foundation; version 2 of the License.
-#
-# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program in a file named COPYING; if not, write to the
-# Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor,
-# Boston, MA 02110-1301 USA
-
-lib: libyosemite_gpio.so
-
-libyosemite_gpio.so: yosemite_gpio.c
- $(CC) $(CFLAGS) -fPIC -c -o yosemite_gpio.o yosemite_gpio.c
- $(CC) -shared -o libyosemite_gpio.so yosemite_gpio.o -lc
-
-.PHONY: clean
-
-clean:
- rm -rf *.o libyosemite_gpio.so
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_gpio/yosemite_gpio.c b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_gpio/yosemite_gpio.c
deleted file mode 100644
index 4f22500..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_gpio/yosemite_gpio.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Copyright 2015-present Facebook. All Rights Reserved.
- *
- * This file contains code to support IPMI2.0 Specificaton available @
- * http://www.intel.com/content/www/us/en/servers/ipmi/ipmi-specifications.html
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <syslog.h>
-#include "yosemite_gpio.h"
-
-// List of GPIO pins to be monitored
-const uint8_t gpio_pin_list[] = {
- PWRGOOD_CPU,
- PWRGD_PCH_PWROK,
- PVDDR_VRHOT_N,
- PVCCIN_VRHOT_N,
- FM_FAST_PROCHOT_N,
- PCHHOT_CPU_N,
- FM_CPLD_CPU_DIMM_EVENT_CO_N,
- FM_CPLD_BDXDE_THERMTRIP_N,
- THERMTRIP_PCH_N,
- FM_CPLD_FIVR_FAULT,
- FM_BDXDE_CATERR_LVT3_N,
- FM_BDXDE_ERR2_LVT3_N,
- FM_BDXDE_ERR1_LVT3_N,
- FM_BDXDE_ERR0_LVT3_N,
- //SLP_S4_N,
- FM_NMI_EVENT_BMC_N,
- FM_SMI_BMC_N,
- RST_PLTRST_BMC_N,
- FP_RST_BTN_BUF_N,
- BMC_RST_BTN_OUT_N,
- FM_BDE_POST_CMPLT_N,
- //FM_BDXDE_SLP3_N,
- //FM_PWR_LED_N,
- PWRGD_PVCCIN,
- //SVR_ID0,
- //SVR_ID1,
- //SVR_ID2,
- //SVR_ID3,
- //BMC_READY_N,
- //RESERVED_29,
- //RESERVED_30,
- //RESERVED_31,
-};
-
-size_t gpio_pin_cnt = sizeof(gpio_pin_list)/sizeof(uint8_t);
-const uint32_t gpio_ass_val = 0x0 | (1 << FM_CPLD_FIVR_FAULT);
-
-const char *gpio_pin_name[] = {
- "PWRGOOD_CPU",
- "PWRGD_PCH_PWROK",
- "PVDDR_VRHOT_N",
- "PVCCIN_VRHOT_N",
- "FM_FAST_PROCHOT_N",
- "PCHHOT_CPU_N",
- "FM_CPLD_CPU_DIMM_EVENT_CO_N",
- "FM_CPLD_BDXDE_THERMTRIP_N",
- "THERMTRIP_PCH_N",
- "FM_CPLD_FIVR_FAULT",
- "FM_BDXDE_CATERR_LVT3_N",
- "FM_BDXDE_ERR2_LVT3_N",
- "FM_BDXDE_ERR1_LVT3_N",
- "FM_BDXDE_ERR0_LVT3_N",
- "SLP_S4_N",
- "FM_NMI_EVENT_BMC_N",
- "FM_SMI_BMC_N",
- "RST_PLTRST_BMC_N",
- "FP_RST_BTN_BUF_N",
- "BMC_RST_BTN_OUT_N",
- "FM_BDE_POST_CMPLT_N",
- "FM_BDXDE_SLP3_N",
- "FM_PWR_LED_N",
- "PWRGD_PVCCIN",
- "SVR_ID0",
- "SVR_ID1",
- "SVR_ID2",
- "SVR_ID3",
- "BMC_READY_N",
- "RESERVED_29",
- "RESERVED_30",
- "RESERVED_31"
-};
-
-int
-yosemite_get_gpio_name(uint8_t fru, uint8_t gpio, char *name) {
-
- //TODO: Add support for BMC GPIO pins
- if (fru < 1 || fru > 4) {
-#ifdef DEBUG
- syslog(LOG_WARNING, "yosemite_get_gpio_name: Wrong fru %u", fru);
-#endif
- return -1;
- }
-
- if (gpio < 0 || gpio > MAX_GPIO_PINS) {
-#ifdef DEBUG
- syslog(LOG_WARNING, "yosemite_get_gpio_name: Wrong gpio pin %u", gpio);
-#endif
- return -1;
- }
-
- sprintf(name, "%s", gpio_pin_name[gpio]);
- return 0;
-}
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_gpio/yosemite_gpio.h b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_gpio/yosemite_gpio.h
deleted file mode 100644
index 77808a8..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_gpio/yosemite_gpio.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2015-present Facebook. All Rights Reserved.
- *
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef __YOSEMITE_GPIO_H__
-#define __YOSEMITE_GPIO_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <facebook/bic.h>
-
-extern const uint8_t gpio_pin_list[];
-extern const char *gpio_pin_name[];
-extern const uint32_t gpio_ass_val;
-extern size_t gpio_pin_cnt;
-
-int yosemite_get_gpio_name(uint8_t fru, uint8_t gpio, char *name);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif /* __YOSEMITE_GPIO_H__ */
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_sensor/Makefile b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_sensor/Makefile
deleted file mode 100644
index dd013a9..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_sensor/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-# Copyright 2015-present Facebook. All Rights Reserved.
-lib: libyosemite_sensor.so
-
-libyosemite_sensor.so: yosemite_sensor.c
- $(CC) $(CFLAGS) -fPIC -c -o yosemite_sensor.o yosemite_sensor.c
- $(CC) -lm -lbic -lipmi -lipmb -lyosemite_common -shared -o libyosemite_sensor.so yosemite_sensor.o -lc
-
-.PHONY: clean
-
-clean:
- rm -rf *.o libyosemite_sensor.so
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_sensor/yosemite_sensor.c b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_sensor/yosemite_sensor.c
deleted file mode 100644
index 9d075ce..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_sensor/yosemite_sensor.c
+++ /dev/null
@@ -1,883 +0,0 @@
-/*
- *
- * Copyright 2015-present Facebook. All Rights Reserved.
- *
- * This file contains code to support IPMI2.0 Specificaton available @
- * http://www.intel.com/content/www/us/en/servers/ipmi/ipmi-specifications.html
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <stdbool.h>
-#include <math.h>
-#include <string.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <syslog.h>
-#include "yosemite_sensor.h"
-
-#define LARGEST_DEVICE_NAME 120
-
-#define GPIO_VAL "/sys/class/gpio/gpio%d/value"
-
-#define I2C_BUS_9_DIR "/sys/class/i2c-adapter/i2c-9/"
-#define I2C_BUS_10_DIR "/sys/class/i2c-adapter/i2c-10/"
-
-#define TACH_DIR "/sys/devices/platform/ast_pwm_tacho.0"
-#define ADC_DIR "/sys/devices/platform/ast_adc.0"
-
-#define SP_INLET_TEMP_DEVICE I2C_BUS_9_DIR "9-004e"
-#define SP_OUTLET_TEMP_DEVICE I2C_BUS_9_DIR "9-004f"
-#define HSC_DEVICE I2C_BUS_10_DIR "10-0040"
-
-#define FAN_TACH_RPM "tacho%d_rpm"
-#define ADC_VALUE "adc%d_value"
-#define HSC_IN_VOLT "in1_input"
-#define HSC_OUT_CURR "curr1_input"
-#define HSC_TEMP "temp1_input"
-
-#define UNIT_DIV 1000
-
-#define MEZZ_SENSOR_I2CBUS "11"
-#define MEZZ_SENSOR_I2C_BUS_ADDR "0x1f"
-#define MEZZ_SENSOR_TEMP_REGISTER "0x01"
-
-#define BIC_SENSOR_READ_NA 0x20
-
-#define MAX_SENSOR_NUM 0xFF
-#define ALL_BYTES 0xFF
-#define LAST_REC_ID 0xFFFF
-
-#define YOSEMITE_SDR_PATH "/tmp/sdr_%s.bin"
-
-// List of BIC sensors to be monitored
-const uint8_t bic_sensor_list[] = {
- /* Threshold sensors */
- BIC_SENSOR_MB_OUTLET_TEMP,
- BIC_SENSOR_VCCIN_VR_TEMP,
- BIC_SENSOR_VCC_GBE_VR_TEMP,
- BIC_SENSOR_1V05PCH_VR_TEMP,
- BIC_SENSOR_SOC_TEMP,
- BIC_SENSOR_MB_INLET_TEMP,
- BIC_SENSOR_PCH_TEMP,
- BIC_SENSOR_SOC_THERM_MARGIN,
- BIC_SENSOR_VDDR_VR_TEMP,
- BIC_SENSOR_VCC_GBE_VR_CURR,
- BIC_SENSOR_1V05_PCH_VR_CURR,
- BIC_SENSOR_VCCIN_VR_POUT,
- BIC_SENSOR_VCCIN_VR_CURR,
- BIC_SENSOR_VCCIN_VR_VOL,
- BIC_SENSOR_INA230_POWER,
- BIC_SENSOR_INA230_VOL,
- BIC_SENSOR_SOC_PACKAGE_PWR,
- BIC_SENSOR_SOC_TJMAX,
- BIC_SENSOR_VDDR_VR_POUT,
- BIC_SENSOR_VDDR_VR_CURR,
- BIC_SENSOR_VDDR_VR_VOL,
- BIC_SENSOR_VCC_SCSUS_VR_CURR,
- BIC_SENSOR_VCC_SCSUS_VR_VOL,
- BIC_SENSOR_VCC_SCSUS_VR_TEMP,
- BIC_SENSOR_VCC_SCSUS_VR_POUT,
- BIC_SENSOR_VCC_GBE_VR_POUT,
- BIC_SENSOR_VCC_GBE_VR_VOL,
- BIC_SENSOR_1V05_PCH_VR_POUT,
- BIC_SENSOR_1V05_PCH_VR_VOL,
- BIC_SENSOR_SOC_DIMMA0_TEMP,
- BIC_SENSOR_SOC_DIMMA1_TEMP,
- BIC_SENSOR_SOC_DIMMB0_TEMP,
- BIC_SENSOR_SOC_DIMMB1_TEMP,
- BIC_SENSOR_P3V3_MB,
- BIC_SENSOR_P12V_MB,
- BIC_SENSOR_P1V05_PCH,
- BIC_SENSOR_P3V3_STBY_MB,
- BIC_SENSOR_P5V_STBY_MB,
- BIC_SENSOR_PV_BAT,
- BIC_SENSOR_PVDDR,
- BIC_SENSOR_PVCC_GBE,
-};
-
-const uint8_t bic_discrete_list[] = {
- /* Discrete sensors */
- BIC_SENSOR_SYSTEM_STATUS,
- BIC_SENSOR_VR_HOT,
- BIC_SENSOR_CPU_DIMM_HOT,
-};
-
-// List of SPB sensors to be monitored
-const uint8_t spb_sensor_list[] = {
- SP_SENSOR_INLET_TEMP,
- SP_SENSOR_OUTLET_TEMP,
- //SP_SENSOR_MEZZ_TEMP
- SP_SENSOR_FAN0_TACH,
- SP_SENSOR_FAN1_TACH,
- //SP_SENSOR_AIR_FLOW,
- SP_SENSOR_P5V,
- SP_SENSOR_P12V,
- SP_SENSOR_P3V3_STBY,
- SP_SENSOR_P12V_SLOT1,
- SP_SENSOR_P12V_SLOT2,
- SP_SENSOR_P12V_SLOT3,
- SP_SENSOR_P12V_SLOT4,
- SP_SENSOR_P3V3,
- SP_SENSOR_HSC_IN_VOLT,
- SP_SENSOR_HSC_OUT_CURR,
- SP_SENSOR_HSC_TEMP,
- SP_SENSOR_HSC_IN_POWER,
-};
-
-// List of NIC sensors to be monitored
-const uint8_t nic_sensor_list[] = {
- MEZZ_SENSOR_TEMP,
-};
-
-float spb_sensor_threshold[MAX_SENSOR_NUM][MAX_SENSOR_THRESHOLD + 1] = {0};
-float nic_sensor_threshold[MAX_SENSOR_NUM][MAX_SENSOR_THRESHOLD + 1] = {0};
-
-static void
-sensor_thresh_array_init() {
- static bool init_done = false;
-
- if (init_done)
- return;
-
- spb_sensor_threshold[SP_SENSOR_INLET_TEMP][UCR_THRESH] = 40;
- spb_sensor_threshold[SP_SENSOR_OUTLET_TEMP][UCR_THRESH] = 70;
- spb_sensor_threshold[SP_SENSOR_FAN0_TACH][UCR_THRESH] = 10000;
- spb_sensor_threshold[SP_SENSOR_FAN0_TACH][LCR_THRESH] = 500;
- spb_sensor_threshold[SP_SENSOR_FAN1_TACH][UCR_THRESH] = 10000;
- spb_sensor_threshold[SP_SENSOR_FAN1_TACH][LCR_THRESH] = 500;
- //spb_sensor_threshold[SP_SENSOR_AIR_FLOW][UCR_THRESH] = {75.0, 0, 0, 0, 0, 0, 0, 0};
- spb_sensor_threshold[SP_SENSOR_P5V][UCR_THRESH] = 5.493;
- spb_sensor_threshold[SP_SENSOR_P5V][LCR_THRESH] = 4.501;
- spb_sensor_threshold[SP_SENSOR_P12V][UCR_THRESH] = 13.216;
- spb_sensor_threshold[SP_SENSOR_P12V][LCR_THRESH] = 11.269;
- spb_sensor_threshold[SP_SENSOR_P3V3_STBY][UCR_THRESH] = 3.625;
- spb_sensor_threshold[SP_SENSOR_P3V3_STBY][LCR_THRESH] = 2.973;
- spb_sensor_threshold[SP_SENSOR_P12V_SLOT1][UCR_THRESH] = 13.216;
- spb_sensor_threshold[SP_SENSOR_P12V_SLOT1][LCR_THRESH] = 11.269;
- spb_sensor_threshold[SP_SENSOR_P12V_SLOT2][UCR_THRESH] = 13.216;
- spb_sensor_threshold[SP_SENSOR_P12V_SLOT2][LCR_THRESH] = 11.269;
- spb_sensor_threshold[SP_SENSOR_P12V_SLOT3][UCR_THRESH] = 13.216;
- spb_sensor_threshold[SP_SENSOR_P12V_SLOT3][LCR_THRESH] = 11.269;
- spb_sensor_threshold[SP_SENSOR_P12V_SLOT4][UCR_THRESH] = 13.216;
- spb_sensor_threshold[SP_SENSOR_P12V_SLOT4][LCR_THRESH] = 11.269;
- spb_sensor_threshold[SP_SENSOR_P3V3][UCR_THRESH] = 3.625;
- spb_sensor_threshold[SP_SENSOR_P3V3][LCR_THRESH] = 2.973;
- spb_sensor_threshold[SP_SENSOR_HSC_IN_VOLT][UCR_THRESH] = 13.2;
- spb_sensor_threshold[SP_SENSOR_HSC_IN_VOLT][LCR_THRESH] = 10.8;
- spb_sensor_threshold[SP_SENSOR_HSC_OUT_CURR][UCR_THRESH] = 47.705;
- spb_sensor_threshold[SP_SENSOR_HSC_TEMP][UCR_THRESH] = 120;
- spb_sensor_threshold[SP_SENSOR_HSC_IN_POWER][UCR_THRESH] = 525;
-
- nic_sensor_threshold[MEZZ_SENSOR_TEMP][UCR_THRESH] = 80;
-
- init_done = true;
-}
-
-size_t bic_sensor_cnt = sizeof(bic_sensor_list)/sizeof(uint8_t);
-
-size_t bic_discrete_cnt = sizeof(bic_discrete_list)/sizeof(uint8_t);
-
-size_t spb_sensor_cnt = sizeof(spb_sensor_list)/sizeof(uint8_t);
-
-size_t nic_sensor_cnt = sizeof(nic_sensor_list)/sizeof(uint8_t);
-
-enum {
- FAN0 = 0,
- FAN1,
-};
-
-enum {
- ADC_PIN0 = 0,
- ADC_PIN1,
- ADC_PIN2,
- ADC_PIN3,
- ADC_PIN4,
- ADC_PIN5,
- ADC_PIN6,
- ADC_PIN7,
-};
-
-static sensor_info_t g_sinfo[MAX_NUM_FRUS][MAX_SENSOR_NUM] = {0};
-
-static int
-read_device(const char *device, int *value) {
- FILE *fp;
- int rc;
-
- fp = fopen(device, "r");
- if (!fp) {
- int err = errno;
-
-#ifdef DEBUG
- syslog(LOG_INFO, "failed to open device %s", device);
-#endif
- return err;
- }
-
- rc = fscanf(fp, "%d", value);
- fclose(fp);
-
- if (rc != 1) {
-#ifdef DEBUG
- syslog(LOG_INFO, "failed to read device %s", device);
-#endif
- return ENOENT;
- } else {
- return 0;
- }
-}
-
-static int
-read_device_float(const char *device, float *value) {
- FILE *fp;
- int rc;
- char tmp[10];
-
- fp = fopen(device, "r");
- if (!fp) {
- int err = errno;
-#ifdef DEBUG
- syslog(LOG_INFO, "failed to open device %s", device);
-#endif
- return err;
- }
-
- rc = fscanf(fp, "%s", tmp);
- fclose(fp);
-
- if (rc != 1) {
-#ifdef DEBUG
- syslog(LOG_INFO, "failed to read device %s", device);
-#endif
- return ENOENT;
- }
-
- *value = atof(tmp);
-
- return 0;
-}
-
-static int
-read_temp(const char *device, float *value) {
- char full_name[LARGEST_DEVICE_NAME + 1];
- int tmp;
-
- snprintf(
- full_name, LARGEST_DEVICE_NAME, "%s/temp1_input", device);
- if (read_device(full_name, &tmp)) {
- return -1;
- }
-
- *value = ((float)tmp)/UNIT_DIV;
-
- return 0;
-}
-
-static int
-read_fan_value(const int fan, const char *device, float *value) {
- char device_name[LARGEST_DEVICE_NAME];
- char full_name[LARGEST_DEVICE_NAME];
-
- snprintf(device_name, LARGEST_DEVICE_NAME, device, fan);
- snprintf(full_name, LARGEST_DEVICE_NAME, "%s/%s", TACH_DIR, device_name);
- return read_device_float(full_name, value);
-}
-
-static int
-read_adc_value(const int pin, const char *device, float *value) {
- char device_name[LARGEST_DEVICE_NAME];
- char full_name[LARGEST_DEVICE_NAME];
-
- snprintf(device_name, LARGEST_DEVICE_NAME, device, pin);
- snprintf(full_name, LARGEST_DEVICE_NAME, "%s/%s", ADC_DIR, device_name);
- return read_device_float(full_name, value);
-}
-
-static int
-read_hsc_value(const char *device, float *value) {
- char full_name[LARGEST_DEVICE_NAME];
- int tmp;
-
- snprintf(full_name, LARGEST_DEVICE_NAME, "%s/%s", HSC_DEVICE, device);
- if(read_device(full_name, &tmp)) {
- return -1;
- }
-
- *value = ((float) tmp)/UNIT_DIV;
-
- return 0;
-}
-
-static int
-read_nic_temp(uint8_t snr_num, float *value) {
- char command[64];
- char tmp[8];
-
- if (snr_num == MEZZ_SENSOR_TEMP) {
- sprintf(command, "i2cget -y %s %s %s b", MEZZ_SENSOR_I2CBUS,
- MEZZ_SENSOR_I2C_BUS_ADDR, MEZZ_SENSOR_TEMP_REGISTER);
-
- FILE *fp = popen(command, "r");
- fscanf(fp, "%s", tmp);
- pclose(fp);
-
- *value = (float) strtol(tmp, NULL, 16);
- }
-
- return 0;
-}
-
-static int
-bic_read_sensor_wrapper(uint8_t fru, uint8_t sensor_num, bool discrete,
- void *value) {
-
- int ret;
- sdr_full_t *sdr;
- ipmi_sensor_reading_t sensor;
-
- ret = bic_read_sensor(fru, sensor_num, &sensor);
- if (ret) {
- return ret;
- }
-
- if (sensor.flags & BIC_SENSOR_READ_NA) {
-#ifdef DEBUG
- syslog(LOG_ERR, "bic_read_sensor_wrapper: Reading Not Available");
- syslog(LOG_ERR, "bic_read_sensor_wrapper: sensor_num: 0x%X, flag: 0x%X",
- sensor_num, sensor.flags);
-#endif
- return -1;
- }
-
- if (discrete) {
- *(float *) value = (float) sensor.status;
- return 0;
- }
-
- sdr = &g_sinfo[fru-1][sensor_num].sdr;
-
- // If the SDR is not type1, no need for conversion
- if (sdr->type !=1) {
- *(float *) value = sensor.value;
- return 0;
- }
-
- // y = (mx + b * 10^b_exp) * 10^r_exp
- uint8_t x;
- uint8_t m_lsb, m_msb, m;
- uint8_t b_lsb, b_msb, b;
- int8_t b_exp, r_exp;
-
- x = sensor.value;
-
- m_lsb = sdr->m_val;
- m_msb = sdr->m_tolerance >> 6;
- m = (m_msb << 8) | m_lsb;
-
- b_lsb = sdr->b_val;
- b_msb = sdr->b_accuracy >> 6;
- b = (b_msb << 8) | b_lsb;
-
- // exponents are 2's complement 4-bit number
- b_exp = sdr->rb_exp & 0xF;
- if (b_exp > 7) {
- b_exp = (~b_exp + 1) & 0xF;
- b_exp = -b_exp;
- }
- r_exp = (sdr->rb_exp >> 4) & 0xF;
- if (r_exp > 7) {
- r_exp = (~r_exp + 1) & 0xF;
- r_exp = -r_exp;
- }
-
- //printf("m:%d, x:%d, b:%d, b_exp:%d, r_exp:%d\n", m, x, b, b_exp, r_exp);
-
- * (float *) value = ((m * x) + (b * pow(10, b_exp))) * (pow(10, r_exp));
-
- if ((sensor_num == BIC_SENSOR_SOC_THERM_MARGIN) && (* (float *) value > 0)) {
- * (float *) value -= (float) THERMAL_CONSTANT;
- }
-
- return 0;
-}
-
-int
-yosemite_sensor_sdr_path(uint8_t fru, char *path) {
-
-char fru_name[16] = {0};
-
-switch(fru) {
- case FRU_SLOT1:
- sprintf(fru_name, "%s", "slot1");
- break;
- case FRU_SLOT2:
- sprintf(fru_name, "%s", "slot2");
- break;
- case FRU_SLOT3:
- sprintf(fru_name, "%s", "slot3");
- break;
- case FRU_SLOT4:
- sprintf(fru_name, "%s", "slot4");
- break;
- case FRU_SPB:
- sprintf(fru_name, "%s", "spb");
- break;
- case FRU_NIC:
- sprintf(fru_name, "%s", "nic");
- break;
- default:
-#ifdef DEBUG
- syslog(LOG_WARNING, "yosemite_sensor_sdr_path: Wrong Slot ID\n");
-#endif
- return -1;
-}
-
-sprintf(path, YOSEMITE_SDR_PATH, fru_name);
-
-if (access(path, F_OK) == -1) {
- return -1;
-}
-
-return 0;
-}
-
-/* Populates all sensor_info_t struct using the path to SDR dump */
-int
-sdr_init(char *path, sensor_info_t *sinfo) {
-int fd;
-uint8_t buf[MAX_SDR_LEN] = {0};
-uint8_t bytes_rd = 0;
-uint8_t snr_num = 0;
-sdr_full_t *sdr;
-
-while (access(path, F_OK) == -1) {
- sleep(5);
-}
-
-fd = open(path, O_RDONLY);
-if (fd < 0) {
- syslog(LOG_ERR, "sdr_init: open failed for %s\n", path);
- return -1;
-}
-
-while ((bytes_rd = read(fd, buf, sizeof(sdr_full_t))) > 0) {
- if (bytes_rd != sizeof(sdr_full_t)) {
- syslog(LOG_ERR, "sdr_init: read returns %d bytes\n", bytes_rd);
- return -1;
- }
-
- sdr = (sdr_full_t *) buf;
- snr_num = sdr->sensor_num;
- sinfo[snr_num].valid = true;
- memcpy(&sinfo[snr_num].sdr, sdr, sizeof(sdr_full_t));
-}
-
-return 0;
-}
-
-int
-yosemite_sensor_sdr_init(uint8_t fru, sensor_info_t *sinfo) {
- int fd;
- uint8_t buf[MAX_SDR_LEN] = {0};
- uint8_t bytes_rd = 0;
- uint8_t sn = 0;
- char path[64] = {0};
-
- switch(fru) {
- case FRU_SLOT1:
- case FRU_SLOT2:
- case FRU_SLOT3:
- case FRU_SLOT4:
- if (yosemite_sensor_sdr_path(fru, path) < 0) {
-#ifdef DEBUG
- syslog(LOG_WARNING, "yosemite_sensor_sdr_init: get_fru_sdr_path failed\n");
-#endif
- return ERR_NOT_READY;
- }
-
- if (sdr_init(path, sinfo) < 0) {
-#ifdef DEBUG
- syslog(LOG_ERR, "yosemite_sensor_sdr_init: sdr_init failed for FRU %d", fru);
-#endif
- }
- break;
-
- case FRU_SPB:
- case FRU_NIC:
- return -1;
- break;
- }
-
- return 0;
-}
-
-static int
-yosemite_sdr_init(uint8_t fru) {
-
- static bool init_done[MAX_NUM_FRUS] = {false};
-
- if (!init_done[fru - 1]) {
-
- sensor_info_t *sinfo = g_sinfo[fru-1];
-
- if (yosemite_sensor_sdr_init(fru, sinfo) < 0)
- return ERR_NOT_READY;
-
- init_done[fru - 1] = true;
- }
-
- return 0;
-}
-
-static bool
-is_server_prsnt(uint8_t fru) {
- uint8_t gpio;
- int val;
- char path[64] = {0};
-
- switch(fru) {
- case 1:
- gpio = 61;
- break;
- case 2:
- gpio = 60;
- break;
- case 3:
- gpio = 63;
- break;
- case 4:
- gpio = 62;
- break;
- default:
- return 0;
- }
-
- sprintf(path, GPIO_VAL, gpio);
-
- if (read_device(path, &val)) {
- return -1;
- }
-
- if (val == 0x0) {
- return 1;
- } else {
- return 0;
- }
-}
-
-/* Get the units for the sensor */
-int
-yosemite_sensor_units(uint8_t fru, uint8_t sensor_num, char *units) {
- uint8_t op, modifier;
- sensor_info_t *sinfo;
-
- if (is_server_prsnt(fru) && (yosemite_sdr_init(fru) != 0)) {
- return -1;
- }
-
- switch(fru) {
- case FRU_SLOT1:
- case FRU_SLOT2:
- case FRU_SLOT3:
- case FRU_SLOT4:
- sprintf(units, "");
- break;
-
- case FRU_SPB:
- switch(sensor_num) {
- case SP_SENSOR_INLET_TEMP:
- sprintf(units, "C");
- break;
- case SP_SENSOR_OUTLET_TEMP:
- sprintf(units, "C");
- break;
- case SP_SENSOR_MEZZ_TEMP:
- sprintf(units, "C");
- break;
- case SP_SENSOR_FAN0_TACH:
- sprintf(units, "RPM");
- break;
- case SP_SENSOR_FAN1_TACH:
- sprintf(units, "RPM");
- break;
- case SP_SENSOR_AIR_FLOW:
- sprintf(units, "");
- break;
- case SP_SENSOR_P5V:
- sprintf(units, "Volts");
- break;
- case SP_SENSOR_P12V:
- sprintf(units, "Volts");
- break;
- case SP_SENSOR_P3V3_STBY:
- sprintf(units, "Volts");
- break;
- case SP_SENSOR_P12V_SLOT1:
- case SP_SENSOR_P12V_SLOT2:
- case SP_SENSOR_P12V_SLOT3:
- case SP_SENSOR_P12V_SLOT4:
- sprintf(units, "Volts");
- break;
- case SP_SENSOR_P3V3:
- sprintf(units, "Volts");
- break;
- case SP_SENSOR_HSC_IN_VOLT:
- sprintf(units, "Volts");
- break;
- case SP_SENSOR_HSC_OUT_CURR:
- sprintf(units, "Amps");
- break;
- case SP_SENSOR_HSC_TEMP:
- sprintf(units, "C");
- break;
- case SP_SENSOR_HSC_IN_POWER:
- sprintf(units, "Watts");
- break;
- }
- break;
- case FRU_NIC:
- switch(sensor_num) {
- case MEZZ_SENSOR_TEMP:
- sprintf(units, "C");
- break;
- }
- break;
- }
- return 0;
-}
-
-int
-yosemite_sensor_threshold(uint8_t fru, uint8_t sensor_num, uint8_t thresh, float *value) {
-
- sensor_thresh_array_init();
-
- switch(fru) {
- case FRU_SLOT1:
- case FRU_SLOT2:
- case FRU_SLOT3:
- case FRU_SLOT4:
- break;
- case FRU_SPB:
- *value = spb_sensor_threshold[sensor_num][thresh];
- break;
- case FRU_NIC:
- *value = nic_sensor_threshold[sensor_num][thresh];
- break;
- }
- return 0;
-}
-
-/* Get the name for the sensor */
-int
-yosemite_sensor_name(uint8_t fru, uint8_t sensor_num, char *name) {
-
- switch(fru) {
- case FRU_SLOT1:
- case FRU_SLOT2:
- case FRU_SLOT3:
- case FRU_SLOT4:
- switch(sensor_num) {
- case BIC_SENSOR_SYSTEM_STATUS:
- sprintf(name, "SYSTEM_STATUS");
- break;
- case BIC_SENSOR_SYS_BOOT_STAT:
- sprintf(name, "SYS_BOOT_STAT");
- break;
- case BIC_SENSOR_CPU_DIMM_HOT:
- sprintf(name, "CPU_DIMM_HOT");
- break;
- case BIC_SENSOR_PROC_FAIL:
- sprintf(name, "PROC_FAIL");
- break;
- case BIC_SENSOR_VR_HOT:
- sprintf(name, "VR_HOT");
- break;
- default:
- sprintf(name, "");
- break;
- }
- break;
-
- case FRU_SPB:
- switch(sensor_num) {
- case SP_SENSOR_INLET_TEMP:
- sprintf(name, "SP_INLET_TEMP");
- break;
- case SP_SENSOR_OUTLET_TEMP:
- sprintf(name, "SP_OUTLET_TEMP");
- break;
- case SP_SENSOR_MEZZ_TEMP:
- sprintf(name, "SP_MEZZ_TEMP");
- break;
- case SP_SENSOR_FAN0_TACH:
- sprintf(name, "SP_FAN0_TACH");
- break;
- case SP_SENSOR_FAN1_TACH:
- sprintf(name, "SP_FAN1_TACH");
- break;
- case SP_SENSOR_AIR_FLOW:
- sprintf(name, "SP_AIR_FLOW");
- break;
- case SP_SENSOR_P5V:
- sprintf(name, "SP_P5V");
- break;
- case SP_SENSOR_P12V:
- sprintf(name, "SP_P12V");
- break;
- case SP_SENSOR_P3V3_STBY:
- sprintf(name, "SP_P3V3_STBY");
- break;
- case SP_SENSOR_P12V_SLOT1:
- sprintf(name, "SP_P12V_SLOT1");
- break;
- case SP_SENSOR_P12V_SLOT2:
- sprintf(name, "SP_P12V_SLOT2");
- break;
- case SP_SENSOR_P12V_SLOT3:
- sprintf(name, "SP_P12V_SLOT3");
- break;
- case SP_SENSOR_P12V_SLOT4:
- sprintf(name, "SP_P12V_SLOT4");
- break;
- case SP_SENSOR_P3V3:
- sprintf(name, "SP_P3V3");
- break;
- case SP_SENSOR_HSC_IN_VOLT:
- sprintf(name, "SP_HSC_IN_VOLT");
- break;
- case SP_SENSOR_HSC_OUT_CURR:
- sprintf(name, "SP_HSC_OUT_CURR");
- break;
- case SP_SENSOR_HSC_TEMP:
- sprintf(name, "SP_HSC_TEMP");
- break;
- case SP_SENSOR_HSC_IN_POWER:
- sprintf(name, "SP_HSC_IN_POWER");
- break;
- }
- break;
- case FRU_NIC:
- switch(sensor_num) {
- case MEZZ_SENSOR_TEMP:
- sprintf(name, "MEZZ_SENSOR_TEMP");
- break;
- }
- break;
- }
- return 0;
-}
-
-
-int
-yosemite_sensor_read(uint8_t fru, uint8_t sensor_num, void *value) {
-
- float volt;
- float curr;
- int ret;
- bool discrete;
- int i;
-
- switch (fru) {
- case FRU_SLOT1:
- case FRU_SLOT2:
- case FRU_SLOT3:
- case FRU_SLOT4:
-
- if (!(is_server_prsnt(fru))) {
- return -1;
- }
-
- ret = yosemite_sdr_init(fru);
- if (ret < 0) {
- return ret;
- }
-
- discrete = false;
-
- i = 0;
- while (i < bic_discrete_cnt) {
- if (sensor_num == bic_discrete_list[i++]) {
- discrete = true;
- break;
- }
- }
-
- return bic_read_sensor_wrapper(fru, sensor_num, discrete, value);
-
- case FRU_SPB:
- switch(sensor_num) {
-
- // Inlet, Outlet Temp
- case SP_SENSOR_INLET_TEMP:
- return read_temp(SP_INLET_TEMP_DEVICE, (float*) value);
- case SP_SENSOR_OUTLET_TEMP:
- return read_temp(SP_OUTLET_TEMP_DEVICE, (float*) value);
-
- // Fan Tach Values
- case SP_SENSOR_FAN0_TACH:
- return read_fan_value(FAN0, FAN_TACH_RPM, (float*) value);
- case SP_SENSOR_FAN1_TACH:
- return read_fan_value(FAN1, FAN_TACH_RPM, (float*) value);
-
- // Various Voltages
- case SP_SENSOR_P5V:
- return read_adc_value(ADC_PIN0, ADC_VALUE, (float*) value);
- case SP_SENSOR_P12V:
- return read_adc_value(ADC_PIN1, ADC_VALUE, (float*) value);
- case SP_SENSOR_P3V3_STBY:
- return read_adc_value(ADC_PIN2, ADC_VALUE, (float*) value);
- case SP_SENSOR_P12V_SLOT1:
- return read_adc_value(ADC_PIN4, ADC_VALUE, (float*) value);
- case SP_SENSOR_P12V_SLOT2:
- return read_adc_value(ADC_PIN3, ADC_VALUE, (float*) value);
- case SP_SENSOR_P12V_SLOT3:
- return read_adc_value(ADC_PIN6, ADC_VALUE, (float*) value);
- case SP_SENSOR_P12V_SLOT4:
- return read_adc_value(ADC_PIN5, ADC_VALUE, (float*) value);
- case SP_SENSOR_P3V3:
- return read_adc_value(ADC_PIN7, ADC_VALUE, (float*) value);
-
- // Hot Swap Controller
- case SP_SENSOR_HSC_IN_VOLT:
- return read_hsc_value(HSC_IN_VOLT, (float*) value);
- case SP_SENSOR_HSC_OUT_CURR:
- return read_hsc_value(HSC_OUT_CURR, (float*) value);
- case SP_SENSOR_HSC_TEMP:
- return read_hsc_value(HSC_TEMP, (float*) value);
- case SP_SENSOR_HSC_IN_POWER:
- if (read_hsc_value(HSC_IN_VOLT, &volt)) {
- return -1;
- }
- if (read_hsc_value(HSC_OUT_CURR, &curr)) {
- return -1;
- }
- * (float*) value = volt * curr;
- return 0;
- }
- break;
-
- case FRU_NIC:
- switch(sensor_num) {
- // Mezz Temp
- case MEZZ_SENSOR_TEMP:
- return read_nic_temp(MEZZ_SENSOR_TEMP, (float*) value);
- }
- break;
- }
-}
-
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_sensor/yosemite_sensor.h b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_sensor/yosemite_sensor.h
deleted file mode 100644
index 8775f15..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/files/yosemite_sensor/yosemite_sensor.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- *
- * Copyright 2015-present Facebook. All Rights Reserved.
- *
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef __YOSEMITE_SENSOR_H__
-#define __YOSEMITE_SENSOR_H__
-
-#include <stdbool.h>
-#include <openbmc/ipmi.h>
-#include <openbmc/ipmb.h>
-#include <facebook/bic.h>
-#include <facebook/yosemite_common.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define MAX_SDR_LEN 64
-#define MAX_SENSOR_NUM 0xFF
-#define MAX_SENSOR_THRESHOLD 8
-#define MAX_RETRIES_SDR_INIT 30
-#define THERMAL_CONSTANT 255
-#define ERR_NOT_READY -2
-
-typedef struct _sensor_info_t {
- bool valid;
- sdr_full_t sdr;
-} sensor_info_t;
-
-/* Enum for type of Upper and Lower threshold values */
-enum {
- UCR_THRESH = 0x01,
- UNC_THRESH,
- UNR_THRESH,
- LCR_THRESH,
- LNC_THRESH,
- LNR_THRESH,
- POS_HYST,
- NEG_HYST,
-};
-
-// Sensors under Bridge IC
-enum {
- BIC_SENSOR_MB_OUTLET_TEMP = 0x01,
- BIC_SENSOR_VCCIN_VR_TEMP = 0x02,
- BIC_SENSOR_VCC_GBE_VR_TEMP = 0x03,
- BIC_SENSOR_1V05PCH_VR_TEMP = 0x04,
- BIC_SENSOR_SOC_TEMP = 0x05,
- BIC_SENSOR_MB_INLET_TEMP = 0x07,
- BIC_SENSOR_PCH_TEMP = 0x08,
- BIC_SENSOR_SOC_THERM_MARGIN = 0x09,
- BIC_SENSOR_VDDR_VR_TEMP = 0x0B,
- BIC_SENSOR_SYSTEM_STATUS = 0x10, //Discrete
- BIC_SENSOR_SPS_FW_HLTH = 0x17, //Event-only
- BIC_SENSOR_VCC_GBE_VR_CURR = 0x20,
- BIC_SENSOR_1V05_PCH_VR_CURR = 0x21,
- BIC_SENSOR_VCCIN_VR_POUT = 0x22,
- BIC_SENSOR_VCCIN_VR_CURR = 0x23,
- BIC_SENSOR_VCCIN_VR_VOL = 0x24,
- BIC_SENSOR_INA230_POWER = 0x29,
- BIC_SENSOR_INA230_VOL = 0x2A,
- BIC_SENSOR_POST_ERR = 0x2B, //Event-only
- BIC_SENSOR_SOC_PACKAGE_PWR = 0x2C,
- BIC_SENSOR_SOC_TJMAX = 0x30,
- BIC_SENSOR_VDDR_VR_POUT = 0x32,
- BIC_SENSOR_VDDR_VR_CURR = 0x33,
- BIC_SENSOR_VDDR_VR_VOL = 0x34,
- BIC_SENSOR_VCC_SCSUS_VR_CURR = 0x35,
- BIC_SENSOR_VCC_SCSUS_VR_VOL = 0x36,
- BIC_SENSOR_VCC_SCSUS_VR_TEMP = 0x37,
- BIC_SENSOR_VCC_SCSUS_VR_POUT = 0x38,
- BIC_SENSOR_VCC_GBE_VR_POUT = 0x39,
- BIC_SENSOR_POWER_THRESH_EVENT = 0x3B, //Event-only
- BIC_SENSOR_MACHINE_CHK_ERR = 0x40, //Event-only
- BIC_SENSOR_PCIE_ERR = 0x41, //Event-only
- BIC_SENSOR_1V05_PCH_VR_POUT = 0x42,
- BIC_SENSOR_OTHER_IIO_ERR = 0x43, //Event-only
- BIC_SENSOR_PROC_HOT_EXT = 0x51, //Event-only
- BIC_SENSOR_VCC_GBE_VR_VOL = 0x54,
- BIC_SENSOR_1V05_PCH_VR_VOL = 0x55,
- BIC_SENSOR_POWER_ERR = 0x56, //Event-only
- BIC_SENSOR_MEM_ECC_ERR = 0x63, //Event-only
- BIC_SENSOR_PROC_FAIL = 0x65, //Discrete
- BIC_SENSOR_SYS_BOOT_STAT = 0x7E, //Discrete
- BIC_SENSOR_VR_HOT = 0xB2, //Discrete
- BIC_SENSOR_CPU_DIMM_HOT = 0xB3, //Discrete
- BIC_SENSOR_SOC_DIMMA0_TEMP = 0xB4,
- BIC_SENSOR_SOC_DIMMA1_TEMP = 0xB5,
- BIC_SENSOR_SOC_DIMMB0_TEMP = 0xB6,
- BIC_SENSOR_SOC_DIMMB1_TEMP = 0xB7,
- BIC_SENSOR_P3V3_MB = 0xD0,
- BIC_SENSOR_P12V_MB = 0xD2,
- BIC_SENSOR_P1V05_PCH = 0xD3,
- BIC_SENSOR_P3V3_STBY_MB = 0xD5,
- BIC_SENSOR_P5V_STBY_MB = 0xD6,
- BIC_SENSOR_PV_BAT = 0xD7,
- BIC_SENSOR_PVDDR = 0xD8,
- BIC_SENSOR_PVCC_GBE = 0xD9,
- BIC_SENSOR_CAT_ERR = 0xEB, //Event-only
-};
-
-// Sensors Under Side Plane
-enum {
- SP_SENSOR_INLET_TEMP = 0x81,
- SP_SENSOR_OUTLET_TEMP = 0x80,
- SP_SENSOR_MEZZ_TEMP = 0x82,
- SP_SENSOR_FAN0_TACH = 0x46,
- SP_SENSOR_FAN1_TACH = 0x47,
- SP_SENSOR_AIR_FLOW = 0x4A,
- SP_SENSOR_P5V = 0xE0,
- SP_SENSOR_P12V = 0xE1,
- SP_SENSOR_P3V3_STBY = 0xE2,
- SP_SENSOR_P12V_SLOT1 = 0xE3,
- SP_SENSOR_P12V_SLOT2 = 0xE4,
- SP_SENSOR_P12V_SLOT3 = 0xE5,
- SP_SENSOR_P12V_SLOT4 = 0xE6,
- SP_SENSOR_P3V3 = 0xE7,
- SP_SENSOR_HSC_IN_VOLT = 0xC0,
- SP_SENSOR_HSC_OUT_CURR = 0xC1,
- SP_SENSOR_HSC_TEMP = 0xC2,
- SP_SENSOR_HSC_IN_POWER = 0xC3,
-};
-
-enum{
- MEZZ_SENSOR_TEMP = 0x01,
-};
-extern const uint8_t bic_sensor_list[];
-
-extern const uint8_t bic_discrete_list[];
-
-extern const uint8_t spb_sensor_list[];
-
-extern const uint8_t nic_sensor_list[];
-
-//extern float spb_sensor_threshold[MAX_SENSOR_NUM][MAX_SENSOR_THRESHOLD + 1];
-
-//extern float nic_sensor_threshold[MAX_SENSOR_NUM][MAX_SENSOR_THRESHOLD + 1];
-
-extern size_t bic_sensor_cnt;
-
-extern size_t bic_discrete_cnt;
-
-extern size_t spb_sensor_cnt;
-
-extern size_t nic_sensor_cnt;
-
-int yosemite_sensor_read(uint8_t fru, uint8_t sensor_num, void *value);
-int yosemite_sensor_name(uint8_t fru, uint8_t sensor_num, char *name);
-int yosemite_sensor_units(uint8_t fru, uint8_t sensor_num, char *units);
-int yosemite_sensor_sdr_path(uint8_t fru, char *path);
-int yosemite_sensor_threshold(uint8_t fru, uint8_t sensor_num, uint8_t thresh, float *value);
-int yosemite_sensor_sdr_init(uint8_t fru, sensor_info_t *sinfo);
-
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif /* __YOSEMITE_SENSOR_H__ */
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libbic_0.1.bb b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libbic_0.1.bb
deleted file mode 100644
index 6b22366..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libbic_0.1.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright 2015-present Facebook. All Rights Reserved.
-SUMMARY = "Bridge IC Library"
-DESCRIPTION = "library for communicating with Bridge IC"
-SECTION = "base"
-PR = "r1"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://bic.c;beginline=8;endline=20;md5=da35978751a9d71b73679307c4d296ec"
-
-
-SRC_URI = "file://bic \
- "
-DEPENDS += "libipmi libipmb"
-
-S = "${WORKDIR}/bic"
-
-do_install() {
- install -d ${D}${libdir}
- install -m 0644 libbic.so ${D}${libdir}/libbic.so
-
- install -d ${D}${includedir}/facebook
- install -m 0644 bic.h ${D}${includedir}/facebook/bic.h
-}
-
-FILES_${PN} = "${libdir}/libbic.so"
-FILES_${PN}-dev = "${includedir}/facebook/bic.h"
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libpal_0.1.bb b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libpal_0.1.bb
deleted file mode 100644
index bcdd420..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libpal_0.1.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2015-present Facebook. All Rights Reserved.
-SUMMARY = "Platform Abstraction Library"
-DESCRIPTION = "library for communicating with Platform"
-SECTION = "base"
-PR = "r1"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://pal.c;beginline=8;endline=20;md5=da35978751a9d71b73679307c4d296ec"
-
-
-SRC_URI = "file://pal \
- "
-
-DEPENDS += "libbic libyosemite-common libyosemite-fruid libyosemite-sensor "
-
-S = "${WORKDIR}/pal"
-
-do_install() {
- install -d ${D}${libdir}
- install -m 0644 libpal.so ${D}${libdir}/libpal.so
-
- install -d ${D}${includedir}/openbmc
- install -m 0644 pal.h ${D}${includedir}/openbmc/pal.h
-}
-
-FILES_${PN} = "${libdir}/libpal.so"
-FILES_${PN}-dev = "${includedir}/openbmc/pal.h"
-
-RDEPENDS_${PN} += " libyosemite-common"
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libyosemite-common_0.1.bb b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libyosemite-common_0.1.bb
deleted file mode 100644
index bdf8192..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libyosemite-common_0.1.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright 2015-present Facebook. All Rights Reserved.
-SUMMARY = "Yosemite Common Library"
-DESCRIPTION = "library for common Yosemite information"
-SECTION = "base"
-PR = "r1"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://yosemite_common.c;beginline=8;endline=20;md5=da35978751a9d71b73679307c4d296ec"
-
-
-SRC_URI = "file://yosemite_common \
- "
-
-S = "${WORKDIR}/yosemite_common"
-
-do_install() {
- install -d ${D}${libdir}
- install -m 0644 libyosemite_common.so ${D}${libdir}/libyosemite_common.so
-
- install -d ${D}${includedir}
- install -d ${D}${includedir}/facebook
- install -m 0644 yosemite_common.h ${D}${includedir}/facebook/yosemite_common.h
-}
-
-FILES_${PN} = "${libdir}/libyosemite_common.so"
-FILES_${PN}-dev = "${includedir}/facebook/yosemite_common.h"
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libyosemite-fruid_0.1.bb b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libyosemite-fruid_0.1.bb
deleted file mode 100644
index ce9fe7f..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libyosemite-fruid_0.1.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 2015-present Facebook. All Rights Reserved.
-#
-# This program file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the
-# Free Software Foundation; version 2 of the License.
-#
-# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program in a file named COPYING; if not, write to the
-# Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor,
-# Boston, MA 02110-1301 USA
-
-SUMMARY = "Yosemite Fruid Library"
-DESCRIPTION = "library for reading all yosemite fruids"
-SECTION = "base"
-PR = "r1"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://yosemite_fruid.c;beginline=6;endline=18;md5=da35978751a9d71b73679307c4d296ec"
-
-
-SRC_URI = "file://yosemite_fruid \
- "
-
-DEPENDS += " libyosemite-common "
-
-S = "${WORKDIR}/yosemite_fruid"
-
-do_install() {
- install -d ${D}${libdir}
- install -m 0644 libyosemite_fruid.so ${D}${libdir}/libyosemite_fruid.so
-
- install -d ${D}${includedir}
- install -d ${D}${includedir}/facebook
- install -m 0644 yosemite_fruid.h ${D}${includedir}/facebook/yosemite_fruid.h
-}
-
-FILES_${PN} = "${libdir}/libyosemite_fruid.so"
-FILES_${PN}-dev = "${includedir}/facebook/yosemite_fruid.h"
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libyosemite-gpio_0.1.bb b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libyosemite-gpio_0.1.bb
deleted file mode 100644
index 39993d0..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libyosemite-gpio_0.1.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 2015-present Facebook. All Rights Reserved.
-#
-# This program file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the
-# Free Software Foundation; version 2 of the License.
-#
-# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program in a file named COPYING; if not, write to the
-# Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor,
-# Boston, MA 02110-1301 USA
-
-SUMMARY = "Yosemite GPIO Pin Library"
-DESCRIPTION = "library for all gpio pins in yosemite"
-SECTION = "base"
-PR = "r1"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://yosemite_gpio.c;beginline=6;endline=18;md5=da35978751a9d71b73679307c4d296ec"
-
-
-SRC_URI = "file://yosemite_gpio \
- "
-
-DEPENDS += "libbic "
-
-S = "${WORKDIR}/yosemite_gpio"
-
-do_install() {
- install -d ${D}${libdir}
- install -m 0644 libyosemite_gpio.so ${D}${libdir}/libyosemite_gpio.so
-
- install -d ${D}${includedir}
- install -d ${D}${includedir}/facebook
- install -m 0644 yosemite_gpio.h ${D}${includedir}/facebook/yosemite_gpio.h
-}
-
-FILES_${PN} = "${libdir}/libyosemite_gpio.so"
-FILES_${PN}-dev = "${includedir}/facebook/yosemite_gpio.h"
diff --git a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libyosemite-sensor_0.1.bb b/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libyosemite-sensor_0.1.bb
deleted file mode 100644
index 4bbeef1..0000000
--- a/meta-facebook/meta-yosemite/recipes-yosemite/fblibs/libyosemite-sensor_0.1.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright 2015-present Facebook. All Rights Reserved.
-SUMMARY = "Yosemite Sensor Library"
-DESCRIPTION = "library for reading various sensors"
-SECTION = "base"
-PR = "r1"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://yosemite_sensor.c;beginline=8;endline=20;md5=da35978751a9d71b73679307c4d296ec"
-
-
-SRC_URI = "file://yosemite_sensor \
- "
-DEPENDS =+ " libipmi libipmb libbic libyosemite-common "
-
-S = "${WORKDIR}/yosemite_sensor"
-
-do_install() {
- install -d ${D}${libdir}
- install -m 0644 libyosemite_sensor.so ${D}${libdir}/libyosemite_sensor.so
-
- install -d ${D}${includedir}/facebook
- install -m 0644 yosemite_sensor.h ${D}${includedir}/facebook/yosemite_sensor.h
-}
-
-FILES_${PN} = "${libdir}/libyosemite_sensor.so"
-FILES_${PN}-dev = "${includedir}/facebook/yosemite_sensor.h"
OpenPOWER on IntegriCloud