Re: brcm4716 and PCIe

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: brcm4716 and PCIe

Hauke Mehrtens-2
On 11/16/2012 05:44 AM, Elliott Mitchell wrote:
> I happened to be browsing the linux-mips git repository and noticed the
> commit at Tue, 10 Jul 2012 16:16:47.

What commit are you talking about? Do you have a commit id?

> The Broadcom 4716 *does* have an external PCI Express interface! Take a
> look at the images on http://wiki.openwrt.org/toh/asus/rt-n16  If you
> look at the image of the underside
> (http://wiki.openwrt.org/_media/inbox/rt-n16_back_hires.jpg) on the right
> side, CON3 and CON5 are the solder pads for mounting a mini-PCIe
> connector and bracket.  Apparently V11 is a voltage regulator needed for
> that to work, but on this an example of a Broadcom 4716 board that really
> does allow a useable PCIe interface (with some hardware hacking).

Are you sure the Asus rt-n16 has a BCM4716 and not an BCM4718? Both have
the same chip id (0x4716), but a different revision number (BCM4716 =
rev 8, BCM4718 = rev 10). The BCM4716 and BCM4717 do not have a PCIe
controller, just the BCM4718 has one [0].

> What is the status of brcm4716 support?  The ASUS source code is in the
> wild, but that includes many files marked, "UNPUBLISHED PROPRIETARY
> SOURCE CODE of Broadcom Corporation".  Bit silly since they've been
> published at this point, but they still retain the rights...

Some of the code for BCM4716 is upstream, some is just in OpenWrt [1]
and not yet upstream and some is missing. The Ethernet driver is still
missing. The Asus GPL tar contains all the code expect the one for the
wireless driver, but b43 and brcmsmac already have support for this wifi
core.

Hauke

[0]: http://www.datasheetdir.com/BCM4717+Communications-Processor
[1]:
https://dev.openwrt.org/browser/trunk/target/linux/brcm47xx/patches-3.3/


Reply | Threaded
Open this post in threaded view
|

Re: brcm4716 and PCIe

Elliott Mitchell-3
On Fri, Nov 16, 2012 at 06:13:56PM +0100, Hauke Mehrtens wrote:
> On 11/16/2012 05:44 AM, Elliott Mitchell wrote:
> > I happened to be browsing the linux-mips git repository and noticed the
> > commit at Tue, 10 Jul 2012 16:16:47.
>
> What commit are you talking about? Do you have a commit id?

Looking at: http://git.linux-mips.org/?p=ralf/linux.git;a=commitdiff;h=1dfef20a4cf82997d4c7520138ed8188a181241c

I'm guessing "1dfef20a4cf82997d4c7520138ed8188a181241c" is the commit id.

Subject is: "brcmsmac: remove PCI_FORCEHT() macro"

Description is:
The BCM4716 is a SoC and does not have a PCI client interface, so this
condition is never true.

Acked-by: Arend van Spriel <[hidden email]>
Signed-off-by: Hauke Mehrtens <[hidden email]>
Signed-off-by: John W. Linville <[hidden email]>

I'm guessing the piece of code is invoked on all flavors of bcm471[678],
so while it doesn't get invoked on most devices, some of them it
definitely can be.


> > The Broadcom 4716 *does* have an external PCI Express interface! Take a
> > look at the images on http://wiki.openwrt.org/toh/asus/rt-n16  If you
> > look at the image of the underside
> > (http://wiki.openwrt.org/_media/inbox/rt-n16_back_hires.jpg) on the right
> > side, CON3 and CON5 are the solder pads for mounting a mini-PCIe
> > connector and bracket.  Apparently V11 is a voltage regulator needed for
> > that to work, but on this an example of a Broadcom 4716 board that really
> > does allow a useable PCIe interface (with some hardware hacking).
>
> Are you sure the Asus rt-n16 has a BCM4716 and not an BCM4718? Both have
> the same chip id (0x4716), but a different revision number (BCM4716 =
> rev 8, BCM4718 = rev 10). The BCM4716 and BCM4717 do not have a PCIe
> controller, just the BCM4718 has one [0].

I'm not actually.  Currently exploring a device with ASUS's minimal shell
they give you.  According to /proc/cpuinfo, "system type: Broadcom
BCM4716 chip rev 1 pkg 10".  If I'm looking at the correct byte in
/sys/devices/[...]/config, it does in fact appear to be 0x0A (decimal
10).

I've seen photos of some people in Taiwan who soldered something at V11
(presumably a voltage regulator, it's all Chinese to me).  I'm guessing
they did in fact get a MiniPCIe card to work, but everything is in the
wrong language.   :-)   The crucial build photo of the regulator module
has disappeared, so it is more difficult to reconstruct.


--
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         [hidden email]  PGP F6B23DE0         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
2477\___\_|_/DC21 03A0 5D61 985B <-PGP-> F2BE 6526 ABD2 F6B2\_|_/___/3DE0



Reply | Threaded
Open this post in threaded view
|

Re: brcm4716 and PCIe

Hauke Mehrtens-2
On 11/16/2012 09:17 PM, Elliott Mitchell wrote:

> On Fri, Nov 16, 2012 at 06:13:56PM +0100, Hauke Mehrtens wrote:
>> On 11/16/2012 05:44 AM, Elliott Mitchell wrote:
>>> I happened to be browsing the linux-mips git repository and noticed the
>>> commit at Tue, 10 Jul 2012 16:16:47.
>>
>> What commit are you talking about? Do you have a commit id?
>
> Looking at: http://git.linux-mips.org/?p=ralf/linux.git;a=commitdiff;h=1dfef20a4cf82997d4c7520138ed8188a181241c
>
> I'm guessing "1dfef20a4cf82997d4c7520138ed8188a181241c" is the commit id.
>
> Subject is: "brcmsmac: remove PCI_FORCEHT() macro"
>
> Description is:
> The BCM4716 is a SoC and does not have a PCI client interface, so this
> condition is never true.
>
> Acked-by: Arend van Spriel <[hidden email]>
> Signed-off-by: Hauke Mehrtens <[hidden email]>
> Signed-off-by: John W. Linville <[hidden email]>
>
> I'm guessing the piece of code is invoked on all flavors of bcm471[678],
> so while it doesn't get invoked on most devices, some of them it
> definitely can be.

I have never seen a bcm4718 with a PCIe controller running in client
mode and it does not make sense to me. PCIe client mode means it is
connected to some other controller like in a Intel chipset in a desktop
PC, but there you would use a normal PCIe card and not a SoC. The
controller is normally running in host mode, so an other PCIe card like
the BCM43224 could be connected to the PCIe controller in the SoC. I
have a Netgear WNDR3400 with a BCM4718 and a BCM43224 connected to the
PCIe host controller in the SoC.

>>> The Broadcom 4716 *does* have an external PCI Express interface! Take a
>>> look at the images on http://wiki.openwrt.org/toh/asus/rt-n16  If you
>>> look at the image of the underside
>>> (http://wiki.openwrt.org/_media/inbox/rt-n16_back_hires.jpg) on the right
>>> side, CON3 and CON5 are the solder pads for mounting a mini-PCIe
>>> connector and bracket.  Apparently V11 is a voltage regulator needed for
>>> that to work, but on this an example of a Broadcom 4716 board that really
>>> does allow a useable PCIe interface (with some hardware hacking).
>>
>> Are you sure the Asus rt-n16 has a BCM4716 and not an BCM4718? Both have
>> the same chip id (0x4716), but a different revision number (BCM4716 =
>> rev 8, BCM4718 = rev 10). The BCM4716 and BCM4717 do not have a PCIe
>> controller, just the BCM4718 has one [0].
>
> I'm not actually.  Currently exploring a device with ASUS's minimal shell
> they give you.  According to /proc/cpuinfo, "system type: Broadcom
> BCM4716 chip rev 1 pkg 10".  If I'm looking at the correct byte in
> /sys/devices/[...]/config, it does in fact appear to be 0x0A (decimal
> 10).

So it is a BCM4718 with a PCIe controller.

> I've seen photos of some people in Taiwan who soldered something at V11
> (presumably a voltage regulator, it's all Chinese to me).  I'm guessing
> they did in fact get a MiniPCIe card to work, but everything is in the
> wrong language.   :-)   The crucial build photo of the regulator module
> has disappeared, so it is more difficult to reconstruct.

Yes that could be possible and mainline linux would support such a
setup. Be aware that the PCIe controller in the BCM4718 reorders some of
the PCIe writes and reads, which causes some problems.

Hauke