From: Andy Green <andy.green@linaro.org> To: linux-omap@vger.kernel.org Cc: s-jan@ti.com, arnd@arndb.de, patches@linaro.org, tony@atomide.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, rostedt@goodmis.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH 4 3/4] OMAP4 PANDA register ethernet and wlan for automatic mac allocation Date: Thu, 05 Jul 2012 10:44:56 +0800 [thread overview] Message-ID: <20120705024454.26317.96460.stgit@build.warmcat.com> (raw) In-Reply-To: <20120705024259.26317.16000.stgit@build.warmcat.com> From: Andy Green <andy@warmcat.com> This provides the board-specific device paths needed to get the panda boardfile working with the mac-platform api. On Pandaboard / ES, neither the onboard Ethernet or onboard WLAN module have onboard arrangements for MAC storage, without this series yielding randomized MAC per-boot and consequent DHCP problems, or in the case of wlan0 a MAC set by a firmware file in the rootfs which unless customized yields a MAC of 00:00:00:00:00:00. No official MAC is reserved for either network device even if you do take the approach to customize the firmware file. This gets sane, consistent MAC addresses on both devices which should stand a good probability of differing between PandaBoards. Signed-off-by: Andy Green <andy.green@linaro.org> --- arch/arm/mach-omap2/Kconfig | 1 + arch/arm/mach-omap2/board-omap4panda.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index 83fb31c..06fadf4 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig @@ -358,6 +358,7 @@ config MACH_OMAP4_PANDA select OMAP_PACKAGE_CBL select OMAP_PACKAGE_CBS select REGULATOR_FIXED_VOLTAGE if REGULATOR + select MAC_PLATFORM config MACH_PCM049 bool "OMAP4 based phyCORE OMAP4" diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c index 982fb26..b028141 100644 --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c @@ -32,7 +32,10 @@ #include <linux/wl12xx.h> #include <linux/platform_data/omap-abe-twl6040.h> +#include <net/mac-platform.h> + #include <mach/hardware.h> +#include <mach/id.h> #include <asm/hardware/gic.h> #include <asm/mach-types.h> #include <asm/mach/arch.h> @@ -486,16 +489,43 @@ static void omap4_panda_init_rev(void) } } +/* + * These device paths represent onboard network devices which have + * no MAC address set at boot, and need synthetic ones assigning + */ +static __initdata struct mac_platform panda_mac_platform[] = { + + { /* smsc USB <-> Ethernet bridge */ + .device_path = "usb1/1-1/1-1.1/1-1.1:1.0", + }, + { /* wlan0 module */ + .device_path = "wl12xx", + }, + { /* terminator */ + } +}; + static void __init omap4_panda_init(void) { int package = OMAP_PACKAGE_CBS; int ret; + int n; if (omap_rev() == OMAP4430_REV_ES1_0) package = OMAP_PACKAGE_CBL; omap4_mux_init(board_mux, NULL, package); omap_panda_wlan_data.irq = gpio_to_irq(GPIO_WIFI_IRQ); + + /* + * provide MAC addresses computed from device ID for network + * devices that have no MAC address otherwise on Panda + */ + for (n = 0; n < ARRAY_SIZE(panda_mac_platform) - 1; n++) + omap_die_id_to_ethernet_mac(panda_mac_platform[n].mac, n); + if (mac_platform_register_device_macs(panda_mac_platform)) + pr_err("Unable to register mac_platform devices\n"); + ret = wl12xx_set_platform_data(&omap_panda_wlan_data); if (ret) pr_err("error setting wl12xx data: %d\n", ret);
WARNING: multiple messages have this Message-ID (diff)
From: andy.green@linaro.org (Andy Green) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 4 3/4] OMAP4 PANDA register ethernet and wlan for automatic mac allocation Date: Thu, 05 Jul 2012 10:44:56 +0800 [thread overview] Message-ID: <20120705024454.26317.96460.stgit@build.warmcat.com> (raw) In-Reply-To: <20120705024259.26317.16000.stgit@build.warmcat.com> From: Andy Green <andy@warmcat.com> This provides the board-specific device paths needed to get the panda boardfile working with the mac-platform api. On Pandaboard / ES, neither the onboard Ethernet or onboard WLAN module have onboard arrangements for MAC storage, without this series yielding randomized MAC per-boot and consequent DHCP problems, or in the case of wlan0 a MAC set by a firmware file in the rootfs which unless customized yields a MAC of 00:00:00:00:00:00. No official MAC is reserved for either network device even if you do take the approach to customize the firmware file. This gets sane, consistent MAC addresses on both devices which should stand a good probability of differing between PandaBoards. Signed-off-by: Andy Green <andy.green@linaro.org> --- arch/arm/mach-omap2/Kconfig | 1 + arch/arm/mach-omap2/board-omap4panda.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index 83fb31c..06fadf4 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig @@ -358,6 +358,7 @@ config MACH_OMAP4_PANDA select OMAP_PACKAGE_CBL select OMAP_PACKAGE_CBS select REGULATOR_FIXED_VOLTAGE if REGULATOR + select MAC_PLATFORM config MACH_PCM049 bool "OMAP4 based phyCORE OMAP4" diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c index 982fb26..b028141 100644 --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c @@ -32,7 +32,10 @@ #include <linux/wl12xx.h> #include <linux/platform_data/omap-abe-twl6040.h> +#include <net/mac-platform.h> + #include <mach/hardware.h> +#include <mach/id.h> #include <asm/hardware/gic.h> #include <asm/mach-types.h> #include <asm/mach/arch.h> @@ -486,16 +489,43 @@ static void omap4_panda_init_rev(void) } } +/* + * These device paths represent onboard network devices which have + * no MAC address set at boot, and need synthetic ones assigning + */ +static __initdata struct mac_platform panda_mac_platform[] = { + + { /* smsc USB <-> Ethernet bridge */ + .device_path = "usb1/1-1/1-1.1/1-1.1:1.0", + }, + { /* wlan0 module */ + .device_path = "wl12xx", + }, + { /* terminator */ + } +}; + static void __init omap4_panda_init(void) { int package = OMAP_PACKAGE_CBS; int ret; + int n; if (omap_rev() == OMAP4430_REV_ES1_0) package = OMAP_PACKAGE_CBL; omap4_mux_init(board_mux, NULL, package); omap_panda_wlan_data.irq = gpio_to_irq(GPIO_WIFI_IRQ); + + /* + * provide MAC addresses computed from device ID for network + * devices that have no MAC address otherwise on Panda + */ + for (n = 0; n < ARRAY_SIZE(panda_mac_platform) - 1; n++) + omap_die_id_to_ethernet_mac(panda_mac_platform[n].mac, n); + if (mac_platform_register_device_macs(panda_mac_platform)) + pr_err("Unable to register mac_platform devices\n"); + ret = wl12xx_set_platform_data(&omap_panda_wlan_data); if (ret) pr_err("error setting wl12xx data: %d\n", ret);
next prev parent reply other threads:[~2012-07-05 2:55 UTC|newest] Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-07-05 2:44 [PATCH 4 0/4] Add ability to set defaultless network device MAC addresses to deterministic computed locally administered values Andy Green 2012-07-05 2:44 ` Andy Green 2012-07-05 2:44 ` [PATCH 4 1/4] OMAP: add cpu id register to MAC address helper Andy Green 2012-07-05 2:44 ` Andy Green 2012-07-05 2:44 ` [PATCH 4 2/4] NET ethernet introduce mac_platform helper Andy Green 2012-07-05 2:44 ` Andy Green 2012-07-05 3:12 ` Joe Perches 2012-07-05 3:12 ` Joe Perches 2012-07-05 3:20 ` Andy Green 2012-07-05 3:20 ` Andy Green 2012-07-05 3:25 ` Joe Perches 2012-07-05 3:25 ` Joe Perches 2012-07-06 22:40 ` Ben Hutchings 2012-07-06 22:40 ` Ben Hutchings 2012-07-06 22:40 ` Ben Hutchings 2012-07-05 2:44 ` Andy Green [this message] 2012-07-05 2:44 ` [PATCH 4 3/4] OMAP4 PANDA register ethernet and wlan for automatic mac allocation Andy Green 2012-07-05 2:45 ` [PATCH 4 4/4] config test config extending omap2plus with wl12xx etc Andy Green 2012-07-05 2:45 ` Andy Green 2012-07-10 12:37 ` [PATCH 4 0/4] Add ability to set defaultless network device MAC addresses to deterministic computed locally administered values Florian Fainelli 2012-07-10 12:37 ` Florian Fainelli 2012-07-10 12:58 ` "Andy Green (林安廸)" 2012-07-10 12:58 ` "Andy Green (林安廸)" 2012-07-10 13:08 ` Steven Rostedt 2012-07-10 13:08 ` Steven Rostedt 2012-07-10 15:20 ` Alan Cox 2012-07-10 15:20 ` Alan Cox 2012-07-27 7:26 ` arm interrupt handling Qipeng Zha 2012-07-27 7:26 ` Qipeng Zha
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20120705024454.26317.96460.stgit@build.warmcat.com \ --to=andy.green@linaro.org \ --cc=arnd@arndb.de \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-omap@vger.kernel.org \ --cc=netdev@vger.kernel.org \ --cc=patches@linaro.org \ --cc=rostedt@goodmis.org \ --cc=s-jan@ti.com \ --cc=tony@atomide.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.