From ec74f45e725c046423ecb6a7608678f22a8d7224 Mon Sep 17 00:00:00 2001 From: Arthur Heymans Date: Tue, 10 Jan 2017 15:44:47 +0100 Subject: drivers/net/rt8168: Add a macaddress cbfsfile using Kconfig The default macaddress in rt8168.c can be changed with a cbfsfile called macaddress. This patch makes it possible to add such a file using Kconfig at build time. This also changes the name of the cbfsfile from "macaddress" to "rt8168-macaddress" to avoid confusion. Change-Id: I24674d8df11845167b837b79344427ce0c67f4fb Signed-off-by: Arthur Heymans Reviewed-on: https://review.coreboot.org/18088 Tested-by: build bot (Jenkins) Reviewed-by: Nico Huber --- src/drivers/net/Kconfig | 10 ++++++++++ src/drivers/net/Makefile.inc | 10 ++++++++++ src/drivers/net/r8168.c | 6 +++--- 3 files changed, 23 insertions(+), 3 deletions(-) (limited to 'src/drivers') diff --git a/src/drivers/net/Kconfig b/src/drivers/net/Kconfig index e9c6e71ae4..274a591444 100644 --- a/src/drivers/net/Kconfig +++ b/src/drivers/net/Kconfig @@ -3,3 +3,13 @@ config REALTEK_8168_RESET help This forces a realtek 10ec:8168 card to reset to ensure power state is correct at boot. + +config REALTEK_8168_MACADDRESS + string "Realtek rt8168 mac address" + depends on REALTEK_8168_RESET + default "00:e0:4c:00:c0:b0" + help + This is a string to set the mac address on a Realtek rt8168 card. + It must be in the form of "xx:xx:xx:xx:xx:xx", where x is a + hexadecimal number for it to be valid. Failing to do so will + result in the default macaddress being used. diff --git a/src/drivers/net/Makefile.inc b/src/drivers/net/Makefile.inc index e435d483e7..20dbe50fb1 100644 --- a/src/drivers/net/Makefile.inc +++ b/src/drivers/net/Makefile.inc @@ -1,3 +1,13 @@ romstage-$(CONFIG_CONSOLE_NE2K) += ne2k.c ramstage-$(CONFIG_CONSOLE_NE2K) += ne2k.c ramstage-$(CONFIG_REALTEK_8168_RESET) += r8168.c + +ifneq ($(CONFIG_REALTEK_8168_MACADDRESS),"") +$(obj)/rt8168-macaddress: $(DOTCONFIG) + echo " Creating a file holding the rt8168 macaddress" + printf %s $(CONFIG_REALTEK_8168_MACADDRESS) > $@ + +cbfs-files-$(CONFIG_REALTEK_8168_RESET) += rt8168-macaddress +rt8168-macaddress-file := $(obj)/rt8168-macaddress +rt8168-macaddress-type := raw +endif diff --git a/src/drivers/net/r8168.c b/src/drivers/net/r8168.c index 90171d5433..61c36e9149 100644 --- a/src/drivers/net/r8168.c +++ b/src/drivers/net/r8168.c @@ -88,14 +88,14 @@ static void program_mac_address(struct device *dev, u16 io_base) int i = 0; u8 mac[6] = { 0x00, 0xe0, 0x4c, 0x00, 0xc0, 0xb0 }; - if (!cbfs_boot_locate(&fh, "macaddress", &matchraw)) { + if (!cbfs_boot_locate(&fh, "rt8168-macaddress", &matchraw)) { if (rdev_readat(&fh.data, macstrbuf, 0, MACLEN) == MACLEN) get_mac_address(mac, macstrbuf); else printk(BIOS_ERR, "r8168: Error reading MAC from CBFS\n"); } else { - printk(BIOS_ERR, "r8168: 'macaddress' not found in CBFS, " - "using default 00:e0:4c:00:c0:b0\n"); + printk(BIOS_ERR, "r8168: 'rt8168-macaddress' not found in CBFS," + " using default 00:e0:4c:00:c0:b0\n"); } /* Reset NIC */ -- cgit v1.2.3