[LEDE-DEV] [PATCH 2/3 v2] ar71xx: add mac partition to the MR12/MR16
John Crispin
john at phrozen.org
Mon Oct 24 06:09:44 PDT 2016
On 21/10/2016 13:54, Chris Blake wrote:
> On the stock Meraki Firmare for the MR12/MR16, a chunk of SPI space
> after u-boot-env is used to store the boards Mac address. Sadly as this
> was removed on any device already on OpenWRT/LEDE, moving forward a new,
> 64k partition named "mac" will be used to store the mac address for the
> device (which is the minimum size). This allows users to properly set
> the correct MAC, without editing the ART partition (which holds the same
> MAC for all devices).
>
> The reason the space is taken from kernel instead of rootfs is currently
> kernels are only 1.3MB, so that way we can leave the current rootfs
> space alone for users who fully utilize the available storage space.
>
> Once this partition is added to a device, you can set your MAC doing the
> following:
>
> mtd erase mac
> echo -n -e '\x00\x18\x0a\x33\x44\x55' > /dev/mtd5
> sync && reboot
>
> Where 00:18:0a:33:44:55 is your MAC address.
>
> This was tested, and confirmed working on both the MR12 and MR16.
>
> Signed-off-by: Chris Blake <chrisrblake93 at gmail.com>
Hi,
patch fails to apply. please rebase on current HEAD and resend all 3 patches
John
> ---
> .../linux/ar71xx/files/arch/mips/ath79/mach-mr12.c | 14 +++++++-------
> .../linux/ar71xx/files/arch/mips/ath79/mach-mr16.c | 22 +++++++++++-----------
> target/linux/ar71xx/image/generic.mk | 4 ++--
> 3 files changed, 20 insertions(+), 20 deletions(-)
>
> diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-mr12.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr12.c
> index 12c9a1c..dc880c5 100644
> --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-mr12.c
> +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr12.c
> @@ -42,8 +42,7 @@
>
> #define MR12_WAN_PHYMASK BIT(4)
>
> -#define MR12_WMAC0_MAC_OFFSET 0x120c
> -#define MR12_CALDATA0_OFFSET 0x1000
> +#define MR12_CALDATA0_OFFSET 0x21000
>
> static struct gpio_led MR12_leds_gpio[] __initdata = {
> {
> @@ -90,8 +89,9 @@ static struct gpio_keys_button MR12_gpio_keys[] __initdata = {
>
> static void __init MR12_setup(void)
> {
> - u8 *mac = (u8 *) KSEG1ADDR(0xbfff0000);
> -
> + u8 *mac = (u8 *) KSEG1ADDR(0xbffd0000);
> + u8 wlan_mac[ETH_ALEN];
> +
> ath79_register_mdio(0,0x0);
>
> ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0);
> @@ -107,9 +107,9 @@ static void __init MR12_setup(void)
> ARRAY_SIZE(MR12_gpio_keys),
> MR12_gpio_keys);
>
> - ap91_pci_init(mac + MR12_CALDATA0_OFFSET,
> - mac + MR12_WMAC0_MAC_OFFSET);
> + ath79_init_mac(wlan_mac, mac, 1);
> + ap91_pci_init(mac + MR12_CALDATA0_OFFSET, wlan_mac);
>
> }
>
> -MIPS_MACHINE(ATH79_MACH_MR12, "MR12", "Meraki MR12", MR12_setup);
> \ No newline at end of file
> +MIPS_MACHINE(ATH79_MACH_MR12, "MR12", "Meraki MR12", MR12_setup);
> diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-mr16.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr16.c
> index 9f08e3d..2897ee5 100644
> --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-mr16.c
> +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr16.c
> @@ -42,10 +42,8 @@
>
> #define MR16_WAN_PHYMASK BIT(0)
>
> -#define MR16_WMAC0_MAC_OFFSET 0x120c
> -#define MR16_WMAC1_MAC_OFFSET 0x520c
> -#define MR16_CALDATA0_OFFSET 0x1000
> -#define MR16_CALDATA1_OFFSET 0x5000
> +#define MR16_CALDATA0_OFFSET 0x21000
> +#define MR16_CALDATA1_OFFSET 0x25000
>
> static struct gpio_led MR16_leds_gpio[] __initdata = {
> {
> @@ -92,8 +90,10 @@ static struct gpio_keys_button MR16_gpio_keys[] __initdata = {
>
> static void __init MR16_setup(void)
> {
> - u8 *mac = (u8 *) KSEG1ADDR(0xbfff0000);
> -
> + u8 *mac = (u8 *) KSEG1ADDR(0xbffd0000);
> + u8 wlan0_mac[ETH_ALEN];
> + u8 wlan1_mac[ETH_ALEN];
> +
> ath79_register_mdio(0,0x0);
>
> ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0);
> @@ -109,10 +109,10 @@ static void __init MR16_setup(void)
> ARRAY_SIZE(MR16_gpio_keys),
> MR16_gpio_keys);
>
> - ap94_pci_init(mac + MR16_CALDATA0_OFFSET,
> - mac + MR16_WMAC0_MAC_OFFSET,
> - mac + MR16_CALDATA1_OFFSET,
> - mac + MR16_WMAC1_MAC_OFFSET);
> + ath79_init_mac(wlan0_mac, mac, 1);
> + ath79_init_mac(wlan1_mac, mac, 2);
> + ap94_pci_init(mac + MR16_CALDATA0_OFFSET, wlan0_mac,
> + mac + MR16_CALDATA1_OFFSET, wlan1_mac);
> }
>
> -MIPS_MACHINE(ATH79_MACH_MR16, "MR16", "Meraki MR16", MR16_setup);
> \ No newline at end of file
> +MIPS_MACHINE(ATH79_MACH_MR16, "MR16", "Meraki MR16", MR16_setup);
> diff --git a/target/linux/ar71xx/image/generic.mk b/target/linux/ar71xx/image/generic.mk
> index 04fed88..ee910af 100644
> --- a/target/linux/ar71xx/image/generic.mk
> +++ b/target/linux/ar71xx/image/generic.mk
> @@ -102,7 +102,7 @@ define Device/mr12
> DEVICE_PACKAGES := kmod-spi-gpio
> BOARDNAME = MR12
> IMAGE_SIZE = 15744k
> - MTDPARTS = spi0.0:256k(u-boot)ro,256k(u-boot-env)ro,13440k(rootfs),2304k(kernel),128k(art)ro,15744k at 0x80000(firmware)
> + MTDPARTS = spi0.0:256k(u-boot)ro,256k(u-boot-env)ro,13440k(rootfs),2240k(kernel),64k(mac),128k(art)ro,15680k at 0x80000(firmware)
> IMAGE/kernel.bin = append-kernel
> IMAGE/rootfs.bin = append-rootfs | pad-rootfs
> IMAGE/sysupgrade.bin = append-rootfs | pad-rootfs | pad-to 13440k | append-kernel | check-size $$$$(IMAGE_SIZE)
> @@ -115,7 +115,7 @@ define Device/mr16
> DEVICE_PACKAGES := kmod-spi-gpio
> BOARDNAME = MR16
> IMAGE_SIZE = 15744k
> - MTDPARTS = spi0.0:256k(u-boot)ro,256k(u-boot-env)ro,13440k(rootfs),2304k(kernel),128k(art)ro,15744k at 0x80000(firmware)
> + MTDPARTS = spi0.0:256k(u-boot)ro,256k(u-boot-env)ro,13440k(rootfs),2240k(kernel),64k(mac),128k(art)ro,15680k at 0x80000(firmware)
> IMAGE/kernel.bin = append-kernel
> IMAGE/rootfs.bin = append-rootfs | pad-rootfs
> IMAGE/sysupgrade.bin = append-rootfs | pad-rootfs | pad-to 13440k | append-kernel | check-size $$$$(IMAGE_SIZE)
> --
> 2.7.4
>
> _______________________________________________
> Lede-dev mailing list
> Lede-dev at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/lede-dev
>
More information about the Lede-dev
mailing list