diff options
author | Andrew Jeffery <andrewrj@au1.ibm.com> | 2018-09-17 17:23:19 +0930 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-10-10 13:46:36 -0500 |
commit | 9518b4c189c96a26cb80a57aa441e38f33bdc5cf (patch) | |
tree | 3ee47d1136fae625b0ed7a8ccea91e8328682695 /src/usr/pnor/pnorif.H | |
parent | 7c16f3706b3c822e72d369d828939a800acccdd2 (diff) | |
download | talos-hostboot-9518b4c189c96a26cb80a57aa441e38f33bdc5cf.tar.gz talos-hostboot-9518b4c189c96a26cb80a57aa441e38f33bdc5cf.zip |
pnor: Fall back to AST mbox transport if IPMI is unavailable
Avoid a flag-day transition by allowing for old BMC releases. Eventually
support for the AST mailbox will be removed and the indirection with it.
Change-Id: Ic62ee6a0f2132583cba290098a52417d32eb772d
Signed-off-by: Andrew Jeffery <andrewrj@au1.ibm.com>
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/66122
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/pnor/pnorif.H')
-rw-r--r-- | src/usr/pnor/pnorif.H | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/src/usr/pnor/pnorif.H b/src/usr/pnor/pnorif.H new file mode 100644 index 000000000..598ea2555 --- /dev/null +++ b/src/usr/pnor/pnorif.H @@ -0,0 +1,81 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/usr/pnor/pnorif.H $ */ +/* */ +/* OpenPOWER HostBoot Project */ +/* */ +/* Contributors Listed Below - COPYRIGHT 2011,2018 */ +/* [+] International Business Machines Corp. */ +/* */ +/* */ +/* Licensed under the Apache License, Version 2.0 (the "License"); */ +/* you may not use this file except in compliance with the License. */ +/* You may obtain a copy of the License at */ +/* */ +/* http://www.apache.org/licenses/LICENSE-2.0 */ +/* */ +/* Unless required by applicable law or agreed to in writing, software */ +/* distributed under the License is distributed on an "AS IS" BASIS, */ +/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */ +/* implied. See the License for the specific language governing */ +/* permissions and limitations under the License. */ +/* */ +/* IBM_PROLOG_END_TAG */ +#ifndef __PNORIF_H +#define __PNORIF_H + +#include <errl/errlentry.H> + +class PnorIf +{ + public: + /** + * @brief Performs a PNOR Read Operation + * + * @parm o_buffer Buffer to read data into + * @parm io_buflen Input: Number of bytes to read, + * Output: Number of bytes actually read + * @parm i_address Offset into flash to read + * + * @return Error from operation + */ + virtual errlHndl_t readFlash(void* o_buffer, + size_t& io_buflen, + uint64_t i_address) = 0; + + /** + * @brief Performs a PNOR Write Operation + * + * @parm i_buffer Buffer to write data from + * @parm io_buflen Input: Number of bytes to write, + * Output: Number of bytes actually written + * @parm i_address Offset into flash to write + * + * @return Error from operation + */ + virtual errlHndl_t writeFlash(const void* i_buffer, + size_t& io_buflen, + uint64_t i_address) = 0; + + /** + * @brief Retrieve size of NOR flash + * @return Size of PNOR in bytes + */ + virtual uint32_t getNorSize(void) = 0; + + /** + * @brief Retrieve bitstring of NOR workarounds + * @return NOR workarounds (see VendorWorkarounds in norflash.H) + */ + virtual uint32_t getNorWorkarounds(void) = 0; + + /** + * @brief Destructor + */ + virtual ~PnorIf(void) + { + } +}; + +#endif |