mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-24 04:34:22 +08:00
xilinx: Add option to select SC id instead of DUT id for SC support
Reading MAC address from on board EEPROM requires different type for System Controller (SC). Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/90bb7cc5463568a690b979f18c8d42556986b46d.1669204122.git.michal.simek@amd.com
This commit is contained in:
parent
906e20a613
commit
f3538a3cbe
@ -82,3 +82,12 @@ config CMD_FRU
|
||||
information present in the device. The FRU Information is used
|
||||
to primarily to provide "inventory" information about the boards
|
||||
that the FRU Information Device is located on.
|
||||
|
||||
config FRU_SC
|
||||
bool "FRU system controller decoding"
|
||||
help
|
||||
Xilinx System Controller (SC) FRU format is describing boards from two
|
||||
angles. One from DUT and then from SC. DUT is default option for
|
||||
the main CPU. SC behaves more or less as slave and have different ID.
|
||||
If you build U-Boot for SC you should enable this option to get proper
|
||||
MAC address.
|
||||
|
@ -90,6 +90,7 @@ struct fru_table {
|
||||
#define FRU_MULTIREC_MAC_OFFSET 4
|
||||
#define FRU_LAST_REC BIT(7)
|
||||
#define FRU_DUT_MACID 0x31
|
||||
#define FRU_SC_MACID 0x11
|
||||
|
||||
/* This should be minimum of fields */
|
||||
#define FRU_BOARD_AREA_TOTAL_FIELDS 5
|
||||
|
@ -239,8 +239,12 @@ static int fru_parse_multirec(unsigned long addr)
|
||||
|
||||
if (mrc.rec_type == FRU_MULTIREC_TYPE_OEM) {
|
||||
struct fru_multirec_mac *mac = (void *)addr + hdr_len;
|
||||
u32 type = FRU_DUT_MACID;
|
||||
|
||||
if (mac->ver == FRU_DUT_MACID) {
|
||||
if (CONFIG_IS_ENABLED(FRU_SC))
|
||||
type = FRU_SC_MACID;
|
||||
|
||||
if (mac->ver == type) {
|
||||
mac_len = mrc.len - FRU_MULTIREC_MAC_OFFSET;
|
||||
memcpy(&fru_data.mac.macid, mac->macid, mac_len);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user