ar71xx-generic: Fix flash layout and MAC addresses of Meraki MR12/MR16
Fixes #993. Only verified for MR16.
This commit is contained in:
		
							parent
							
								
									850499fdb3
								
							
						
					
					
						commit
						846725750a
					
				| @ -112,6 +112,11 @@ ar71xx-generic | ||||
|   - WZR-HP-G300NH2 | ||||
|   - WZR-HP-G450H | ||||
| 
 | ||||
| * Cisco Meraki | ||||
| 
 | ||||
|   - MR12 / MR62 | ||||
|   - MR16 / MR66 | ||||
| 
 | ||||
| * D-Link | ||||
| 
 | ||||
|   - DIR-505 (A1, A2) | ||||
|  | ||||
| @ -33,6 +33,7 @@ elseif platform.match('ar71xx', 'generic', {'unifi-outdoor-plus', 'carambola2', | ||||
|                                             'mr600', 'mr600v2', | ||||
|                                             'mr900', 'mr900v2', | ||||
|                                             'mr1750', 'mr1750v2', | ||||
|                                             'mr12', 'mr16', 'mr66', | ||||
|                                             'om2p', 'om2pv2', | ||||
|                                             'om2p-hs', 'om2p-hsv2', 'om2p-hsv3', | ||||
|                                             'om2p-lc', | ||||
|  | ||||
| @ -0,0 +1,128 @@ | ||||
| From: Oleander Reis <oleander@oleander.cc> | ||||
| Date: Sat, 14 Jan 2017 05:59:00 +0100 | ||||
| Subject: ar71xx-generic: Fix flash layout and MAC addresses of Meraki MR12/MR16 | ||||
| 
 | ||||
| Fixes #993. Only verified for MR16. | ||||
| 
 | ||||
| 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 12c9a1cb5d932d0b579e865f122f653b03b47170..fc547f8d7e9eadd84855d48d9958ed32218a18d4 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,9 @@
 | ||||
|   | ||||
|  #define MR12_WAN_PHYMASK    BIT(4) | ||||
|   | ||||
| -#define MR12_WMAC0_MAC_OFFSET           0x120c
 | ||||
| -#define MR12_CALDATA0_OFFSET            0x1000
 | ||||
| +#define MR12_MAC			0xbf090000
 | ||||
| +#define MR12_ART			0xbfff0000
 | ||||
| +#define MR12_CALDATA0_OFFSET		0x1000
 | ||||
|   | ||||
|  static struct gpio_led MR12_leds_gpio[] __initdata = { | ||||
|  	{ | ||||
| @@ -90,8 +91,11 @@ static struct gpio_keys_button MR12_gpio_keys[] __initdata = {
 | ||||
|   | ||||
|  static void __init MR12_setup(void) | ||||
|  { | ||||
| -	u8 *mac = (u8 *) KSEG1ADDR(0xbfff0000);
 | ||||
| -	
 | ||||
| +	u8 *mac = (u8 *) KSEG1ADDR(MR12_MAC);
 | ||||
| +	u8 *art = (u8 *) KSEG1ADDR(MR12_ART);
 | ||||
| +
 | ||||
| +	u8 wlan0_mac[ETH_ALEN];
 | ||||
| +
 | ||||
|  	ath79_register_mdio(0,0x0); | ||||
|   | ||||
|  	ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0); | ||||
| @@ -99,6 +103,8 @@ static void __init MR12_setup(void)
 | ||||
|  	ath79_eth0_data.phy_mask = MR12_WAN_PHYMASK; | ||||
|  	ath79_register_eth(0); | ||||
|   | ||||
| +	ath79_init_mac(wlan0_mac, mac, 1);
 | ||||
| +
 | ||||
|  	ath79_register_m25p80(NULL); | ||||
|   | ||||
|  	ath79_register_leds_gpio(-1, ARRAY_SIZE(MR12_leds_gpio), | ||||
| @@ -107,9 +113,8 @@ 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);
 | ||||
| +	ap91_pci_init(art + MR12_CALDATA0_OFFSET, wlan0_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 9f08e3d4c04c337e6e9d768e3881381ac17b2ddc..0cf61f92ebf6b643162fc7c316600f2076b75a74 100644
 | ||||
| --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-mr16.c
 | ||||
| +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr16.c
 | ||||
| @@ -42,8 +42,8 @@
 | ||||
|   | ||||
|  #define MR16_WAN_PHYMASK    BIT(0) | ||||
|   | ||||
| -#define MR16_WMAC0_MAC_OFFSET		0x120c
 | ||||
| -#define MR16_WMAC1_MAC_OFFSET		0x520c
 | ||||
| +#define MR16_MAC			0xbf080066
 | ||||
| +#define MR16_ART			0xbfff0000
 | ||||
|  #define MR16_CALDATA0_OFFSET		0x1000 | ||||
|  #define MR16_CALDATA1_OFFSET		0x5000 | ||||
|   | ||||
| @@ -92,8 +92,12 @@ static struct gpio_keys_button MR16_gpio_keys[] __initdata = {
 | ||||
|   | ||||
|  static void __init MR16_setup(void) | ||||
|  { | ||||
| -	u8 *mac = (u8 *) KSEG1ADDR(0xbfff0000);
 | ||||
| -	
 | ||||
| +	u8 *mac = (u8 *) KSEG1ADDR(MR16_MAC);
 | ||||
| +	u8 *art = (u8 *) KSEG1ADDR(MR16_ART);
 | ||||
| +
 | ||||
| +	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); | ||||
| @@ -101,6 +105,9 @@ static void __init MR16_setup(void)
 | ||||
|  	ath79_eth0_data.phy_mask = MR16_WAN_PHYMASK; | ||||
|  	ath79_register_eth(0); | ||||
|   | ||||
| +	ath79_init_mac(wlan0_mac, mac, 1);
 | ||||
| +	ath79_init_mac(wlan1_mac, mac, 2);
 | ||||
| +
 | ||||
|  	ath79_register_m25p80(NULL); | ||||
|   | ||||
|  	ath79_register_leds_gpio(-1, ARRAY_SIZE(MR16_leds_gpio), | ||||
| @@ -109,10 +116,8 @@ 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);
 | ||||
| +	ap94_pci_init(art + MR16_CALDATA0_OFFSET, wlan0_mac,
 | ||||
| +					art + 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/Makefile b/target/linux/ar71xx/image/Makefile
 | ||||
| index 61e221255f6742f9594da168b11af7716d6a720e..5ead0677f9e082b5393e3ecb4741aab37f840679 100644
 | ||||
| --- a/target/linux/ar71xx/image/Makefile
 | ||||
| +++ b/target/linux/ar71xx/image/Makefile
 | ||||
| @@ -1136,8 +1136,8 @@ dlrtdev_mtdlayout_fat=mtdparts=spi0.0:256k(uboot)ro,64k(config)ro,7168k(firmware
 | ||||
|  dragino2_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,16000k(firmware),64k(config)ro,64k(art)ro | ||||
|  dw33d_mtdlayout=mtdparts=spi0.0:256k(u-boot),64k(u-boot-env)ro,14528k(rootfs),1472k(kernel),64k(art)ro,16000k@0x50000(firmware);ar934x-nfc:96m(rootfs_data),32m(backup)ro | ||||
|  hiwifi_hc6361_mtdlayout=mtdparts=spi0.0:64k(u-boot)ro,64k(bdinfo)ro,1280k(kernel),14848k(rootfs),64k(backup)ro,64k(art)ro,16128k@0x20000(firmware) | ||||
| -mr12_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,256k(u-boot-env)ro,13440k(rootfs),2304k(kernel),128k(art)ro,15744k@0x80000(firmware)
 | ||||
| -mr16_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,256k(u-boot-env)ro,13440k(rootfs),2304k(kernel),128k(art)ro,15744k@0x80000(firmware)
 | ||||
| +mr12_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,256k(u-boot-env)ro,128k(config)ro,13312k(rootfs),2304k(kernel),128k(art)ro,15616k@0xa0000(firmware)
 | ||||
| +mr16_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,256k(u-boot-env)ro,128k(config)ro,13312k(rootfs),2304k(kernel),128k(art)ro,15616k@0xa0000(firmware)
 | ||||
|  pb92_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,2752k(rootfs),896k(kernel),64k(nvram),64k(art)ro,3648k@0x50000(firmware) | ||||
|  planex_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7744k(firmware),128k(art)ro | ||||
|  ubntxm_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7552k(firmware),256k(cfg)ro,64k(EEPROM)ro | ||||
| @ -408,8 +408,6 @@ $(eval $(call GluonModel,ALFANX,alfa-nx,alfa-network-n2-n5)) | ||||
| 
 | ||||
| ## Meraki
 | ||||
| 
 | ||||
| # BROKEN: MAC address uniqueness issues
 | ||||
| ifneq ($(BROKEN),) | ||||
| # Meraki MR12/MR62
 | ||||
| $(eval $(call GluonProfile,MR12,rssileds)) | ||||
| $(eval $(call GluonProfileFactorySuffix,MR12)) | ||||
| @ -421,7 +419,6 @@ $(eval $(call GluonProfile,MR16,rssileds)) | ||||
| $(eval $(call GluonProfileFactorySuffix,MR16)) | ||||
| $(eval $(call GluonModel,MR16,mr16,meraki-mr16)) | ||||
| $(eval $(call GluonModelAlias,MR16,meraki-mr16,meraki-mr66)) | ||||
| endif | ||||
| 
 | ||||
| ## 8devices
 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user