mb/intel/mtlrvp: Add MTL-P RVP board ids

This adds MTL-P board id definition. Change include,
1. Add board_id.c implementation
2. Add board_id.h implementation
3. Add board_id config in variants.h
4. Makefile changes

BUG=b:224325352
TEST=Able to build with the patch and boot the mtlrvp platform with the
subsequent patches in the train

Signed-off-by: Jamie Ryu <jamie.m.ryu@intel.com>
Change-Id: I90b0543d5db208f696d2c2c2dc3d2581514a845b
Signed-off-by: Harsha B R <harsha.b.r@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/66102
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Usha P <usha.p@intel.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
This commit is contained in:
Jamie Ryu 2022-07-22 13:58:14 -07:00 committed by Felix Held
parent c03cdc143a
commit ed8bdefcdf
4 changed files with 50 additions and 3 deletions

View File

@ -2,9 +2,32 @@
#include <boardid.h> #include <boardid.h>
#include "board_id.h" #include "board_id.h"
#include <ec/acpi/ec.h>
#include <ec/google/chromeec/ec.h>
#include <types.h>
/* Get RVP Board ID */ static uint32_t get_board_id_via_ext_ec(void)
{
uint32_t id = BOARD_ID_INIT;
if (google_chromeec_get_board_version(&id))
id = BOARD_ID_UNKNOWN;
return id;
}
/* Get Board ID via EC I/O port write/read */
int get_rvp_board_id(void) int get_rvp_board_id(void)
{ {
return BOARD_ID_INIT; MAYBE_STATIC_NONZERO int id = BOARD_ID_UNKNOWN;
if (CONFIG(EC_GOOGLE_CHROMEEC)) { /* CHROME_EC */
id = get_board_id_via_ext_ec();
} else { /* WINDOWS_EC */
if (send_ec_command(EC_FAB_ID_CMD) == 0) {
id = recv_ec_data() << 8;
id |= recv_ec_data();
}
}
return (id & BOARD_ID_MASK);
} }

View File

@ -3,7 +3,15 @@
#ifndef _MAINBOARD_COMMON_BOARD_ID_H_ #ifndef _MAINBOARD_COMMON_BOARD_ID_H_
#define _MAINBOARD_COMMON_BOARD_ID_H_ #define _MAINBOARD_COMMON_BOARD_ID_H_
/* Returns RVP board_id */ /* Board/FAB ID Command */
#define EC_FAB_ID_CMD 0x0d
/* Bit 5:0 for Board ID */
#define BOARD_ID_MASK 0x3f
/*
* Returns board information (board id[15:8] and
* Fab info[7:0]) on success and < 0 on error
*/
int get_rvp_board_id(void); int get_rvp_board_id(void);
#endif /* _MAINBOARD_COMMON_BOARD_ID_H_ */ #endif /* _MAINBOARD_COMMON_BOARD_ID_H_ */

View File

@ -6,4 +6,5 @@ BASEBOARD_DIR:=$(call strip_quotes,$(CONFIG_BASEBOARD_DIR))
subdirs-y += variants/baseboard/$(BASEBOARD_DIR) subdirs-y += variants/baseboard/$(BASEBOARD_DIR)
subdirs-y += variants/$(VARIANT_DIR) subdirs-y += variants/$(VARIANT_DIR)
CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/variants/baseboard/include
CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/variants/baseboard/$(BASEBOARD_DIR)/include CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/variants/baseboard/$(BASEBOARD_DIR)/include

View File

@ -0,0 +1,15 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef __BASEBOARD_VARIANTS_H__
#define __BASEBOARD_VARIANTS_H__
#include <stdint.h>
enum mtl_boardid {
MTLP_DDR5_RVP = 0x01,
MTLP_LP5_T3_RVP = 0x02,
MTLP_LP5_T4_RVP = 0x04,
MTLM_LP5_RVP = 0x06,
};
#endif /*__BASEBOARD_VARIANTS_H__ */