1 /* 2 * Arm SCP/MCP Software 3 * Copyright (c) 2018-2021, Arm Limited and Contributors. All rights reserved. 4 * 5 * SPDX-License-Identifier: BSD-3-Clause 6 */ 7 8 #ifndef SYNQUACER_CONFIG_H 9 #define SYNQUACER_CONFIG_H 10 11 #include "synquacer_mmap.h" 12 13 #include <stdbool.h> 14 #include <stdint.h> 15 16 #define THRESHOLD_TYPE_UNR (0) 17 #define THRESHOLD_TYPE_UCR (1) 18 #define THRESHOLD_TYPE_UNC (2) 19 #define THRESHOLD_TYPE_NUM_MAX (3) 20 21 #define SENSOR_NUM_MAX (256) 22 23 #define PARTITION_NUM_MAX (8 * 8) 24 25 #define check_valid_bit(bitmap, pos) (((bitmap) & (1 << (pos))) != 0) 26 #define dram_ecc_is_enabled() (eeprom_config.pec_ecc_status != 0) 27 28 struct unused_eeprom_config_head_part_t { 29 uint8_t mac_addr[8]; 30 uint32_t hm_me_addr_high; 31 uint32_t hm_me_addr_low; 32 uint32_t hm_me_size; 33 uint32_t mh_me_addr_high; 34 uint32_t mh_me_addr_low; 35 uint32_t mh_me_size; 36 uint32_t packet_me_addr_low; 37 uint32_t packet_me_size; 38 uint32_t magic_word; 39 uint8_t reserved_212[212]; 40 uint32_t reserved_1; 41 uint32_t reserved_2; 42 }; 43 44 #define EEPROM_CONFIG_T_START_OFFSET \ 45 sizeof(struct unused_eeprom_config_head_part_t) 46 47 struct nat_config { 48 uint8_t valid; 49 uint8_t reserved[3]; 50 uint8_t ext_ipaddr[4]; 51 }; 52 53 typedef struct { 54 uint32_t system_composition; 55 56 uint8_t reverved_1; 57 uint8_t reserved_valid_sbb_after[3]; 58 uint8_t reserved_8[8]; 59 uint8_t reverved_1_1; 60 uint8_t reverved_1_2; 61 62 uint8_t reserved_2[2]; 63 64 uint8_t reverved_1_3; 65 uint8_t reverved_1_4; 66 uint8_t reverved_1_5; 67 68 uint8_t reserved_1[1]; 69 70 uint64_t reserved_8_2; 71 uint64_t reserved_8_3; 72 uint8_t pcie_cache_snoop_valid[2]; 73 uint8_t reverved_1_6; 74 75 uint8_t reserved_205[205]; 76 77 uint8_t reverved_1_7[8][8]; 78 79 uint8_t reserved_192[192]; 80 81 uint8_t reverved_1_8[8][8][8]; 82 83 uint8_t reverved_1_9; 84 uint8_t reverved_1_10[7]; 85 uint8_t reverved_1_11[8]; 86 uint8_t reverved_1_12[8][8]; 87 88 uint8_t reserved_176[176]; 89 90 uint8_t reverved_1_13[PARTITION_NUM_MAX][8]; 91 92 uint8_t sbb_ecc_status; 93 uint8_t pec_ecc_status; 94 95 uint8_t reserved_before_sensor_threshold[0x1300 - 0x802]; 96 97 uint8_t sensor_thresh[THRESHOLD_TYPE_NUM_MAX][SENSOR_NUM_MAX]; 98 } eeprom_config_t; 99 100 extern eeprom_config_t eeprom_config; 101 102 #endif /* SYNQUACER_CONFIG_H */ 103