summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/net/Kconfig10
-rw-r--r--src/drivers/net/Makefile.inc10
-rw-r--r--src/drivers/net/r8168.c6
3 files changed, 23 insertions, 3 deletions
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 */