blob: 1e10b46df1d1a3af1ac57e8f97749bef43624b90 [file] [log] [blame]
Jason M. Billsd1e40602019-05-09 11:43:51 -07001/*
2// Copyright (c) 2019 intel Corporation
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15*/
16
17#pragma once
18#include <peci.h>
19
20#include <cstdint>
21#include <vector>
22
23namespace peci_pcie
24{
25static constexpr char const* peciPCIeObject = "xyz.openbmc_project.PCIe";
26static constexpr char const* peciPCIePath = "/xyz/openbmc_project/PCIe";
27static constexpr char const* peciPCIeDeviceInterface =
28 "xyz.openbmc_project.PCIe.Device";
29
30static constexpr const int maxPCIBuses = 256;
31static constexpr const int maxPCIDevices = 32;
32static constexpr const int maxPCIFunctions = 8;
33
34static constexpr const int peciCheckInterval = 10;
Jason M. Billsee6d80b2021-06-11 07:37:30 -070035static constexpr const int osStandbyDelaySeconds = 10;
Spencer Kubb5efe72021-09-02 16:11:14 +080036
37static constexpr const int pointToCapStruct = 0x34;
38static constexpr const int maskOfCLS = 0x0F;
39
40static constexpr const int capPointerOffset = 1;
41static constexpr const int linkStatusOffset = 18;
42
43// PCIe version
44// GEN1 : 0001b : transfer rate 2.5GB
45// GEN2 : 0010b : transfer rate 5GB
46// GEN3 : 0011b : transfer rate 8GB
47// GEN4 : 0100b : transfer rate 16GB
48// GEN5 : 0101b : transfer rate 32GB
49enum GenerationInUse : int
50{
51 pcieGen1 = 1,
52 pcieGen2,
53 pcieGen3,
54 pcieGen4,
55 pcieGen5
56};
Jason M. Billsd1e40602019-05-09 11:43:51 -070057} // namespace peci_pcie