Re: AM335x ICE board Linux support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




* Roger Quadros <rogerq@xxxxxx> [160426 01:42]:
> On 25/04/16 14:59, Roger Quadros wrote:
> > We are working on getting Linux on AM335X Industrial Communication Engine board (ICE) [1].
> > 
> > This board has 2 Ethernet ports and each of them can be used either in RMII mode connected to
> > the CPSW Ethernet MAC *or* in MII mode connected to the PRU Ethernet MAC.
> > 
> > The decision about the Ethernet port's mode is made by the user by setting a jumper near the
> > Ethernet port before power up. This is a boot time configurable setting and doesn't need to
> > change at runtime.
> > 
> > So 4 configurations are possible:
> >     ETH0	ETH1
> >     ----	----
> >     RMII	RMII
> >     RMII	MII
> >     MII		RMII	(probably redundant and not needed)
> >     MII		MII
> > 
> > Based on the port configuration, software (u-boot or Linux) needs to set the right pinmux,
> > set a GPIOs (that controls external Mux), configure an external clock generator
> > and enable the right device driver for the respective Ethernet port.

Ideally this would be runtime detected..

> > Clock generator needs to be configured because different clock rates are required
> > for RMII vs MII mode.
> > 
> > Now question is how all this can be done on u-boot + Linux?
> > 
> > I already have a working solution where I create different DT blobs for the 3 configurations
> > and have u-boot detect the mode and load the correct DT blob and also configure the clock.

If u-boot can detect the mode, can kernel also detect the mode?

You can have multiple named pinctrl states no problem that you
could select from based on the detection. Not sure if that solves
all the configuration issues though.

> > You can see how the kernel patches look like here [2]
> > 
> > Is this approach acceptable? If not is there any better way to do this? Thanks.

I guess for now if no runtime detection is possible in the kernel.

Regards,

Tony

> > [1] AM3359 ICE board
> > http://www.ti.com/tool/tmdsice3359
> > http://processors.wiki.ti.com/index.php/AM335x_Industrial_Communication_Engine_%28ICE%29_EVM_HW_User_Guide
> 
> There are 2 ICE board version. v1 and v2. The above wiki link is wrong.
> We are dealing with the v2 board below
> http://processors.wiki.ti.com/index.php/AM335x_Industrial_Communication_Engine_EVM_Rev2_1_HW_User_Guide
> > 
> > [2] Device tree patches
> > https://github.com/rogerq/linux/commit/9a9cf6a15f779fddf91dba2370627aabf19aeff5
> > https://github.com/rogerq/linux/commit/c87e8fa5b14f156a91883fd506e9dd8f7ccf95cf
> > https://github.com/rogerq/linux/commit/d9cdd25e8c3878292d7f4180af8d3ac42b9645c4
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux