/* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ /* $Source: src/import/chips/p9/utils/imageProcs/p9_infrastruct_help.H $ */ /* */ /* OpenPOWER HostBoot Project */ /* */ /* Contributors Listed Below - COPYRIGHT 2016,2017 */ /* [+] 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 _P9_INFRASTRUCT_HELP_H_ #define _P9_INFRASTRUCT_HELP_H_ #ifdef WIN32 #include "win32_stdint.h" #else #include #endif #include #include #include #include // // Various image/ring buffer sizes. Must be used by all users (VBU, FSP, HB, HBI, Cronus) // const uint32_t MAX_SBE_SEEPROM_SIZE = 4 * 64 * 1024; // Max SBE Seeprom size const uint32_t MAX_SEEPROM_IMAGE_SIZE = 4 * ((64 * 1024) / 9 * 8) - 256; // Max Seeprom image size, excl ECC bits (4 banks). const uint32_t MAX_RT_IMAGE_SIZE = 1024 * 1024; // Max Runtime size. const uint32_t MAX_RING_BUF_SIZE = 60000; // Max ring buffer size. const uint32_t MAX_RING_BUF_SIZE_TOOL = 200000; // Max ring buf size for tools. // (i.e., n3_fure.bin.srd is some // 346,000B x 4b/B = 1,384,000b = // 173,000B binary w 8b/B) const uint32_t MAX_OVERRIDES_SIZE = 2 * 1024; // Max overrides section size. const uint32_t MAX_HBBL_SIZE = 20 * 1024; // Max hbbl section size. const uint32_t MAX_NOOF_DD_LEVELS_IN_IMAGE = 20; //@FIXME: CMO: Aren't these defined somewhere else? #define NUM_OF_CORES (uint8_t)24 #define NUM_OF_CMES (uint8_t)12 #define NUM_OF_QUADS (uint8_t) 6 #define CORES_PER_QUAD (NUM_OF_CORES/NUM_OF_QUADS) #define INSTANCE_ID_MIN (uint8_t)0x01 #define INSTANCE_ID_MAX (uint8_t)0x37 enum SYSPHASE { SYSPHASE_HB_SBE = 0, SYSPHASE_RT_CME = 1, SYSPHASE_RT_SGPE = 2, NOOF_SYSPHASES = 3, }; enum MODEBUILD { MODEBUILD_IPL = 0, MODEBUILD_REBUILD = 1, NOOF_MODEBUILDS = 2, }; #if defined(__FAPI) #include #define MY_INF(_fmt_, _args_...) FAPI_INF(_fmt_, ##_args_) #define MY_ERR(_fmt_, _args_...) FAPI_ERR(_fmt_, ##_args_) #define MY_DBG(_fmt_, _args_...) FAPI_DBG(_fmt_, ##_args_) #else #ifdef WIN32 #define MY_INF(...) { printf(__VA_ARGS__); } #define MY_ERR(...) { printf(__VA_ARGS__); } #define MY_DBG(...) { printf(__VA_ARGS__); } #else #define MY_INF(_fmt_, _args_...) printf(_fmt_, ##_args_) #define MY_ERR(_fmt_, _args_...) printf(_fmt_, ##_args_) #define MY_DBG(_fmt_, _args_...) printf(_fmt_, ##_args_) #endif #endif // N-byte align an address, offset or size (aos) inline uint64_t myByteAlign( const uint8_t nBytes, const uint64_t aos) { return ((aos + nBytes - 1) / nBytes) * nBytes; } #endif //_P9_INFRASTRUCT_HELP_H_