From d5c6bf69db29fd8cd0b929aa15d7fc056cb02441 Mon Sep 17 00:00:00 2001 From: zador-blood-stained Date: Thu, 17 Aug 2017 20:00:34 +0300 Subject: [PATCH] Set MAC addresses for Rock64 from armbianEnv.txt Currently rockchip-cpuinfo driver reads SoC serial as all zeroes due to either a bug, hardware limitation or serial not flashed to eFuses --- config/bootenv/rk3328-default.txt | 4 ++ config/sources/rk3328.conf | 2 +- .../read-ethernet-mac-from-DT.patch | 42 +++++++++++++++++++ .../rock64-DT-add-ethernet-aliases.patch | 16 +++++++ 4 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 config/bootenv/rk3328-default.txt create mode 100644 patch/kernel/rk3328-default/read-ethernet-mac-from-DT.patch create mode 100644 patch/kernel/rk3328-default/rock64-DT-add-ethernet-aliases.patch diff --git a/config/bootenv/rk3328-default.txt b/config/bootenv/rk3328-default.txt new file mode 100644 index 0000000000..d0fa20626c --- /dev/null +++ b/config/bootenv/rk3328-default.txt @@ -0,0 +1,4 @@ +verbosity=1 +console=both +ethaddr=02:38:a0:82:2d:c0 +eth1addr=02:38:a0:82:2e:c1 diff --git a/config/sources/rk3328.conf b/config/sources/rk3328.conf index 89b33a0424..503444f6be 100644 --- a/config/sources/rk3328.conf +++ b/config/sources/rk3328.conf @@ -3,7 +3,7 @@ KERNEL_IMAGE_TYPE=Image OFFSET=16 BOOTSCRIPT='boot-rk3328.cmd:boot.cmd' -BOOTENV_FILE='rockchip-default.txt' +BOOTENV_FILE='rk3328-default.txt' UBOOT_TARGET_MAP=";;idbloader.bin uboot.img trust.bin" UBOOT_USE_GCC='> 6.0' diff --git a/patch/kernel/rk3328-default/read-ethernet-mac-from-DT.patch b/patch/kernel/rk3328-default/read-ethernet-mac-from-DT.patch new file mode 100644 index 0000000000..48c8fa6466 --- /dev/null +++ b/patch/kernel/rk3328-default/read-ethernet-mac-from-DT.patch @@ -0,0 +1,42 @@ +diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c +index 7924367f..9f4730b1 100644 +--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c ++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -1156,11 +1157,20 @@ void rk_get_eth_addr(void *priv, unsigned char *addr) + int ret; + struct rk_priv_data *bsp_priv = priv; + struct device *dev = &bsp_priv->pdev->dev; ++ const char *dt_mac_addr; + + rk_devinfo_get_eth_mac(addr); + if (is_valid_ether_addr(addr)) + goto out; + ++ if (dev->of_node) { ++ dt_mac_addr = of_get_mac_address(dev->of_node); ++ if (dt_mac_addr) ++ memcpy(addr, dt_mac_addr, ETH_ALEN); ++ } ++ if (is_valid_ether_addr(addr)) ++ goto out; ++ + ret = rk_vendor_read(LAN_MAC_ID, addr, 6); + if (ret != 6 || !is_valid_ether_addr(addr)) { + dev_err(dev, "%s: rk_vendor_read eth mac address failed (%d)", +@@ -1176,7 +1186,7 @@ void rk_get_eth_addr(void *priv, unsigned char *addr) + } + + out: +- dev_err(dev, "%s: mac address: %02x:%02x:%02x:%02x:%02x:%02x", ++ dev_info(dev, "%s: mac address: %02x:%02x:%02x:%02x:%02x:%02x", + __func__, addr[0], addr[1], addr[2], + addr[3], addr[4], addr[5]); + } diff --git a/patch/kernel/rk3328-default/rock64-DT-add-ethernet-aliases.patch b/patch/kernel/rk3328-default/rock64-DT-add-ethernet-aliases.patch new file mode 100644 index 0000000000..0e7c7999f4 --- /dev/null +++ b/patch/kernel/rk3328-default/rock64-DT-add-ethernet-aliases.patch @@ -0,0 +1,16 @@ +diff --git a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts +index 113b82cd..d0612eb1 100755 +--- a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts +@@ -47,6 +47,11 @@ + model = "PINE64 ROCK64"; + compatible = "pine64,rock64", "rockchip,rk3328"; + ++ aliases { ++ ethernet0 = &gmac2io; ++ ethernet1 = &gmac2phy; ++ }; ++ + chosen { + bootargs = "rockchip_jtag earlyprintk=uart8250-32bit,0xff130000"; + };