From: embedded@gmx.net (A.Schallenberg)
To: linux-arm-kernel@lists.infradead.org
Subject: OMAP3503, SMC911x: mac address issue
Date: Mon, 12 Sep 2011 11:54:17 +0200 [thread overview]
Message-ID: <201109121154.17796.embedded@gmx.net> (raw)
Hello,
I am adding support for a custom board to the 3.0 kernel.
The board is very similar to the beagle board, so I took this
as my starting point. I also have an older (v2.6.32) kernel
with its beagle board support modified to support this custom
board instead.
Using the same boot paramaters passed by U-Boot (only the ttyS2
to ttyO2 change was made) the new kernel has issues with eth0.
The kernel driver is added to the board support, compiled and
successfully probed. I verified this by adding some "printk" lines:
...
[ 1.939361] SMC911x: init()
[ 1.942382] SMC911x: drv_probe()
[ 1.945831] SMC911x: probe()
[ 1.952484] eth0: LAN9115 (rev 2) at 0x2c000000 IRQ 225
[ 1.958099] eth0: Invalid ethernet MAC address ff:ff:ff:ff:ff:ff. Please
set using ifconfig.
[ 1.967071] eth0: External PHY 0xffffffff
[ 1.971313] eth0: probe() succeeded
...
Later on, I get:
...
[ 2.087951] IP-Config: Failed to open eth0
[ 2.093109] IP-Config: Device `eth0' not found.
[ 2.098419] Root-NFS: no NFS server address
...
This is ic_open_devs() (from ipconfig.c) calling
dev_change_flags(dev, oflags | IFF_UP). This ultimately
leads to a call to eth_validate_addr() in eth.c
which fails and returns -EADDRNOTAVAIL.
So the MAC address is not correctly passed on to the driver.
The kernel boot parameters are:
[ 0.000000] Kernel command line: console=ttyO2,115200n8
video=omapfb:vram:2M,vram:4M,mode:1024x768 at 60,vxres=1024,vyres=768
ip=10.100.100.28:10.100.10.69:10.100.0.1:255.255.0.0:3flex:eth0:none
ethaddr=00:E0:18:1B:21:55 root=/dev/nfs rootfstype=nfs
Here is how I do the initialization in the board file now.
The code is directly taken from the v2.6.32 kernel.
------------------------------------------------------------
#define OMAP3_BOARD_ETHR_START 0x2c000000
#define OMAP3_BOARD_ETHR_SIZE 1024
#define OMAP3_BOARD_ETHR_GPIO_IRQ 65 // Sos
#define OMAP3_BOARD_SMC911X_CS 5
static struct resource omap3_board_smc911x_resources[] = {
[0] = {
.start = OMAP3_BOARD_ETHR_START,
.end = (OMAP3_BOARD_ETHR_START + OMAP3_BOARD_ETHR_SIZE -
1),
.flags = IORESOURCE_MEM,
},
[1] = {
.start = OMAP_GPIO_IRQ(OMAP3_BOARD_ETHR_GPIO_IRQ),
.end = OMAP_GPIO_IRQ(OMAP3_BOARD_ETHR_GPIO_IRQ),
.flags = IORESOURCE_IRQ,
},
};
static struct platform_device omap3_board_smc911x_device = {
.name = "smc911x",
.id = -1,
.num_resources = ARRAY_SIZE(omap3_board_smc911x_resources),
.resource = &omap3_board_smc911x_resources [0],
};
static inline void __init omap3_board_init_smc911x(void)
{
int eth_cs;
struct clk *l3ck;
unsigned int rate;
eth_cs = OMAP3_BOARD_SMC911X_CS;
l3ck = clk_get(NULL, "l3_ck");
if (IS_ERR(l3ck))
rate = 100000000;
else
rate = clk_get_rate(l3ck);
if (gpio_request(OMAP3_BOARD_ETHR_GPIO_IRQ, "SMC911x irq") < 0) {
printk(KERN_ERR "Failed to request GPIO%d for smc911x IRQ\n",
OMAP3_BOARD_ETHR_GPIO_IRQ);
return;
}
gpio_direction_input(OMAP3_BOARD_ETHR_GPIO_IRQ);
platform_device_register(&omap3_board_smc911x_device);
printk(KERN_INFO "BOARD: Registered SMC911x\n");
}
------------------------------------------------------------------------------
What am I doing wrong here?
I am aware of the thread "Linux Kernel without Ethernet (missed MAC)"
( http://www.mail-archive.com/u-boot@lists.denx.de/msg27711.html )
and also tried the patch by Daniel Gorsulowski but that didn't help.
It should be some different issue here since I am using "ethaddr"
to pass the MAC.
If this is the wrong mailing list for this question,
please point me to a more appropriate one.
Best,
Andreas Schallenberg
next reply other threads:[~2011-09-12 9:54 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-12 9:54 A.Schallenberg [this message]
2011-09-12 10:22 ` OMAP3503, SMC911x: mac address issue Russell King - ARM Linux
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=201109121154.17796.embedded@gmx.net \
--to=embedded@gmx.net \
--cc=linux-arm-kernel@lists.infradead.org \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).