1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- /** @file
- Copyright (c) 2017 - 2021, Intel Corporation. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #include <PiPei.h>
- #include "PeiAspireVn7Dash572GInitLib.h"
- #include <Library/BoardEcLib.h>
- #include <Library/DebugLib.h>
- #define ADC_3V_10BIT_GRANULARITY_MAX (3005/1023)
- #define PCB_VER_AD 1
- #define MODEL_ID_AD 3
- /**
- Get Aspire V Nitro (Skylake) board ID.
- There are 2 different boards having different ID.
- This function will return board ID to caller.
- @param[out] DataBuffer
- @retval EFI_SUCCESS Command success
- @retval EFI_DEVICE_ERROR Command error
- **/
- VOID
- GetAspireVn7Dash572GBoardId (
- OUT UINT8 *BoardId
- )
- {
- UINT16 DataBuffer;
- ReadEcAdcConverter (MODEL_ID_AD, &DataBuffer);
- DEBUG ((DEBUG_INFO, "BoardId (raw) = 0x%X\n", DataBuffer));
- // Board by max millivoltage range (of 10-bit, 3.005 V ADC)
- if (DataBuffer <= (1374/ADC_3V_10BIT_GRANULARITY_MAX)) {
- // Consider returning an error
- DEBUG ((DEBUG_ERROR, "BoardId is reserved?\n"));
- } else if (DataBuffer <= (2017/ADC_3V_10BIT_GRANULARITY_MAX)) {
- *BoardId = BoardIdNewgateSLx_dGPU;
- } else {
- *BoardId = BoardIdRayleighSLx_dGPU;
- }
- DEBUG ((DEBUG_INFO, "BoardId = 0x%X\n", *BoardId));
- ReadEcAdcConverter (PCB_VER_AD, &DataBuffer);
- DEBUG ((DEBUG_INFO, "PCB version (raw) = 0x%X\n", DataBuffer));
- DEBUG ((DEBUG_INFO, "PCB version: "));
- // PCB by max millivoltage range (of 10-bit, 3.005 V ADC)
- if (DataBuffer <= (2017/ADC_3V_10BIT_GRANULARITY_MAX)) {
- // Consider returning an error
- DEBUG ((DEBUG_ERROR, "Reserved?\n"));
- } else if (DataBuffer <= (2259/ADC_3V_10BIT_GRANULARITY_MAX)) {
- DEBUG ((DEBUG_ERROR, "-1\n"));
- } else if (DataBuffer <= (2493/ADC_3V_10BIT_GRANULARITY_MAX)) {
- DEBUG ((DEBUG_ERROR, "SC\n"));
- } else if (DataBuffer <= (2759/ADC_3V_10BIT_GRANULARITY_MAX)) {
- DEBUG ((DEBUG_ERROR, "SB\n"));
- } else {
- DEBUG ((DEBUG_ERROR, "SA\n"));
- }
- }
- EFI_STATUS
- EFIAPI
- AspireVn7Dash572GBoardDetect (
- VOID
- )
- {
- UINT8 BoardId;
- if (LibPcdGetSku () != 0) {
- return EFI_SUCCESS;
- }
- DEBUG ((DEBUG_INFO, "AspireVn7Dash572GDetectionCallback\n"));
- GetAspireVn7Dash572GBoardId (&BoardId);
- if (BoardId == BoardIdNewgateSLx_dGPU || BoardId == BoardIdRayleighSLx_dGPU) {
- LibPcdSetSku (BoardId);
- ASSERT (LibPcdGetSku() == BoardId);
- } else {
- DEBUG ((DEBUG_INFO, "BoardId not returned or valid!\n"));
- return EFI_DEVICE_ERROR;
- }
- DEBUG ((DEBUG_INFO, "SKU_ID: 0x%x\n", LibPcdGetSku()));
- return EFI_SUCCESS;
- }
|