public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] How do I use AM335x eth1 rather than eth0 ?
@ 2013-04-12 10:56 Mark Jackson
  2013-04-12 16:05 ` Tom Rini
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Mark Jackson @ 2013-04-12 10:56 UTC (permalink / raw)
  To: u-boot

We have a dual Ethernet board (based on the BeagelBone) but with both Ethernet ports connected.

I'm wanting to use eth1 (rather than eth0), so in my board.c file, I changed:-

static struct cpsw_slave_data cpsw_slaves[] = {
	{
		.slave_reg_ofs	= 0x208,
		.sliver_reg_ofs	= 0xd80,
		.phy_id		= 0,
	},
	{
		.slave_reg_ofs	= 0x308,
		.sliver_reg_ofs	= 0xdc0,
		.phy_id		= 1,
	},
};

... to ...

static struct cpsw_slave_data cpsw_slaves[] = {
	{
		.slave_reg_ofs	= 0x308,
		.sliver_reg_ofs	= 0xdc0,
		.phy_id		= 1,
	},
	{
		.slave_reg_ofs	= 0x208,
		.sliver_reg_ofs	= 0xd80,
		.phy_id		= 0,
	},
};

... assuming that eth0 would now be ignored (as only 1 slave is configured).

But (eg) dhcp still only responds on eth0 !?!

What else do I have to change ?

Cheers
Mark J.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] How do I use AM335x eth1 rather than eth0 ?
  2013-04-12 10:56 [U-Boot] How do I use AM335x eth1 rather than eth0 ? Mark Jackson
@ 2013-04-12 16:05 ` Tom Rini
  2013-04-12 19:20   ` Mark Jackson
  2013-04-13 17:45 ` [U-Boot] How do I use AM335x eth1 rather than eth0 ? [SOLVED] Mark Jackson
  2013-04-13 17:46 ` Mark Jackson
  2 siblings, 1 reply; 6+ messages in thread
From: Tom Rini @ 2013-04-12 16:05 UTC (permalink / raw)
  To: u-boot

On Fri, Apr 12, 2013 at 11:56:57AM +0100, Mark Jackson wrote:

> We have a dual Ethernet board (based on the BeagelBone) but with both Ethernet ports connected.
> 
> I'm wanting to use eth1 (rather than eth0), so in my board.c file, I changed:-
> 
> static struct cpsw_slave_data cpsw_slaves[] = {
> 	{
> 		.slave_reg_ofs	= 0x208,
> 		.sliver_reg_ofs	= 0xd80,
> 		.phy_id		= 0,
> 	},
> 	{
> 		.slave_reg_ofs	= 0x308,
> 		.sliver_reg_ofs	= 0xdc0,
> 		.phy_id		= 1,
> 	},
> };
> 
> ... to ...
> 
> static struct cpsw_slave_data cpsw_slaves[] = {
> 	{
> 		.slave_reg_ofs	= 0x308,
> 		.sliver_reg_ofs	= 0xdc0,
> 		.phy_id		= 1,
> 	},
> 	{
> 		.slave_reg_ofs	= 0x208,
> 		.sliver_reg_ofs	= 0xd80,
> 		.phy_id		= 0,
> 	},
> };
> 
> ... assuming that eth0 would now be ignored (as only 1 slave is configured).
> 
> But (eg) dhcp still only responds on eth0 !?!
> 
> What else do I have to change ?

Good question, do you have both ports working in Linux yet?  The EVM-SK
design supports two interfaces and I know the cpsw driver in the kernel
required some changes to support two.  I strongly suspect similar
changes would be required in the U-Boot driver (I don't have any
specific links other than look at the vendor kernel tree).

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130412/705e62f8/attachment.pgp>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] How do I use AM335x eth1 rather than eth0 ?
  2013-04-12 16:05 ` Tom Rini
@ 2013-04-12 19:20   ` Mark Jackson
  0 siblings, 0 replies; 6+ messages in thread
From: Mark Jackson @ 2013-04-12 19:20 UTC (permalink / raw)
  To: u-boot

On 12/04/13 17:05, Tom Rini wrote:
> On Fri, Apr 12, 2013 at 11:56:57AM +0100, Mark Jackson wrote:
>
>> We have a dual Ethernet board (based on the BeagelBone) but with both Ethernet ports connected.
>>
>> I'm wanting to use eth1 (rather than eth0), so in my board.c file, I changed:-

<snip>

>> ... assuming that eth0 would now be ignored (as only 1 slave is configured).
>>
>> But (eg) dhcp still only responds on eth0 !?!
>>
>> What else do I have to change ?
>
> Good question, do you have both ports working in Linux yet?  The EVM-SK
> design supports two interfaces and I know the cpsw driver in the kernel
> required some changes to support two.  I strongly suspect similar
> changes would be required in the U-Boot driver (I don't have any
> specific links other than look at the vendor kernel tree).

Well, I've realised I needed to change CONFIG_PHY_ADDR in my board 
config file.

So the link up/down portion now works to PHY#2, but I'm still unable to 
ping anything from our board.

I'm guessing there's some hard-coded assumptions in the cpsw.c driver. 
I've taken quick look at the Ethernet section of the TRM, but that's 
*waaaay* over my head !?!

I've so far been unable to get Linux to see the 2nd port, and there is 
no "vendor kernel tree" ... I'm the vendor :-)

Mark J.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] How do I use AM335x eth1 rather than eth0 ? [SOLVED]
  2013-04-12 10:56 [U-Boot] How do I use AM335x eth1 rather than eth0 ? Mark Jackson
  2013-04-12 16:05 ` Tom Rini
@ 2013-04-13 17:45 ` Mark Jackson
  2013-04-13 17:46 ` Mark Jackson
  2 siblings, 0 replies; 6+ messages in thread
From: Mark Jackson @ 2013-04-13 17:45 UTC (permalink / raw)
  To: u-boot

On 12/04/13 11:56, Mark Jackson wrote:
> We have a dual Ethernet board (based on the BeagelBone) but with both Ethernet ports connected.
>
> I'm wanting to use eth1 (rather than eth0), so in my board.c file, I changed:-
>
> static struct cpsw_slave_data cpsw_slaves[] = {
> 	{
> 		.slave_reg_ofs	= 0x208,
> 		.sliver_reg_ofs	= 0xd80,
> 		.phy_id		= 0,
> 	},
> 	{
> 		.slave_reg_ofs	= 0x308,
> 		.sliver_reg_ofs	= 0xdc0,
> 		.phy_id		= 1,
> 	},
> };
>
> ... to ...
>
> static struct cpsw_slave_data cpsw_slaves[] = {
> 	{
> 		.slave_reg_ofs	= 0x308,
> 		.sliver_reg_ofs	= 0xdc0,
> 		.phy_id		= 1,
> 	},
> 	{
> 		.slave_reg_ofs	= 0x208,
> 		.sliver_reg_ofs	= 0xd80,
> 		.phy_id		= 0,
> 	},
> };
>
> ... assuming that eth0 would now be ignored (as only 1 slave is configured).
>
> But (eg) dhcp still only responds on eth0 !?!
>
> What else do I have to change ?

After much experimenting, I've managed to get it to work.

Based on the original board.c file copied from the TI starter kit, I 
simply changed the slaves count to 2, and set CONFIG_PHY_ADDR to 1 in my 
board config file.

Simple.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] How do I use AM335x eth1 rather than eth0 ? [SOLVED]
  2013-04-12 10:56 [U-Boot] How do I use AM335x eth1 rather than eth0 ? Mark Jackson
  2013-04-12 16:05 ` Tom Rini
  2013-04-13 17:45 ` [U-Boot] How do I use AM335x eth1 rather than eth0 ? [SOLVED] Mark Jackson
@ 2013-04-13 17:46 ` Mark Jackson
  2015-03-17  9:12   ` tejbir
  2 siblings, 1 reply; 6+ messages in thread
From: Mark Jackson @ 2013-04-13 17:46 UTC (permalink / raw)
  To: u-boot

On 12/04/13 11:56, Mark Jackson wrote:
> We have a dual Ethernet board (based on the BeagelBone) but with both Ethernet ports connected.
>
> I'm wanting to use eth1 (rather than eth0), so in my board.c file, I changed:-
>
> static struct cpsw_slave_data cpsw_slaves[] = {
> 	{
> 		.slave_reg_ofs	= 0x208,
> 		.sliver_reg_ofs	= 0xd80,
> 		.phy_id		= 0,
> 	},
> 	{
> 		.slave_reg_ofs	= 0x308,
> 		.sliver_reg_ofs	= 0xdc0,
> 		.phy_id		= 1,
> 	},
> };
>
> ... to ...
>
> static struct cpsw_slave_data cpsw_slaves[] = {
> 	{
> 		.slave_reg_ofs	= 0x308,
> 		.sliver_reg_ofs	= 0xdc0,
> 		.phy_id		= 1,
> 	},
> 	{
> 		.slave_reg_ofs	= 0x208,
> 		.sliver_reg_ofs	= 0xd80,
> 		.phy_id		= 0,
> 	},
> };
>
> ... assuming that eth0 would now be ignored (as only 1 slave is configured).
>
> But (eg) dhcp still only responds on eth0 !?!
>
> What else do I have to change ?

After much experimenting, I've managed to get it to work.

Based on the original board.c file copied from the TI starter kit, I 
simply changed the slaves count to 2, and set CONFIG_PHY_ADDR to 1 in my 
board config file.

Simple.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] How do I use AM335x eth1 rather than eth0 ? [SOLVED]
  2013-04-13 17:46 ` Mark Jackson
@ 2015-03-17  9:12   ` tejbir
  0 siblings, 0 replies; 6+ messages in thread
From: tejbir @ 2015-03-17  9:12 UTC (permalink / raw)
  To: u-boot

We are also facing the same issue.We are trying to use phy id1 on eth1 for
ethernet gigabit phy and rest is for ethernet switch.I did some of the
changes w.r.t slaves and CONFIG_ADDR_PHY but nothing come out.So Kindly let
me know what other changes you made in order to enable eth1 .

Tj



--
View this message in context: http://u-boot.10912.n7.nabble.com/How-do-I-use-AM335x-eth1-rather-than-eth0-tp152268p208620.html
Sent from the U-Boot mailing list archive at Nabble.com.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-03-17  9:12 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-12 10:56 [U-Boot] How do I use AM335x eth1 rather than eth0 ? Mark Jackson
2013-04-12 16:05 ` Tom Rini
2013-04-12 19:20   ` Mark Jackson
2013-04-13 17:45 ` [U-Boot] How do I use AM335x eth1 rather than eth0 ? [SOLVED] Mark Jackson
2013-04-13 17:46 ` Mark Jackson
2015-03-17  9:12   ` tejbir

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox