[OpenWrt-Devel] [PATCH V3] b53: define registers available and needed on BCM5301X

Rafał Miłecki zajec5 at gmail.com
Mon Apr 6 06:53:23 EDT 2015


On 30 March 2015 at 22:43, Jonas Gorski <jogo at openwrt.org> wrote:
> On Wed, Mar 18, 2015 at 8:48 PM, Rafał Miłecki <zajec5 at gmail.com> wrote:
>> They are also present on some BCM63xx switches.
>>
>> Signed-off-by: Rafał Miłecki <zajec5 at gmail.com>
>> ---
>>  .../generic/files/drivers/net/phy/b53/b53_regs.h   | 32 ++++++++++++++++++++++
>>  1 file changed, 32 insertions(+)
>>
>> diff --git a/target/linux/generic/files/drivers/net/phy/b53/b53_regs.h b/target/linux/generic/files/drivers/net/phy/b53/b53_regs.h
>> index 4899cc4..a4db1f1 100644
>> --- a/target/linux/generic/files/drivers/net/phy/b53/b53_regs.h
>> +++ b/target/linux/generic/files/drivers/net/phy/b53/b53_regs.h
>> @@ -50,6 +50,9 @@
>>  /* Jumbo Frame Registers */
>>  #define B53_JUMBO_PAGE                 0x40
>>
>> +/* CFP Configuration Registers Page */
>> +#define B53_CFP_PAGE                   0xa1
>
> How big is this page? What are its valid fields?

I don't know, obviously. Is this a real problem? :| It didn't stop you
from defining e.g. B53_QOS_PAGE and may bits. Let's just document
registers we know/can.


>> +
>>  /*************************************************************************
>>   * Control Page registers
>>   *************************************************************************/
>> @@ -99,6 +102,24 @@
>>  #define B53_MC_FLOOD_MASK              0x34
>>  #define B53_IPMC_FLOOD_MASK            0x36
>>
>> +/*
>> + * Overriding ports 0-7 on devices with xMII interfaces (8 bit)
>
> I suggest adding a blank line here in the comment to separate name and
> detailed explanation. Also let's call it "Override Port State
> Register" or so. "Overriding ports" sounds like you could change the
> port numbering or so.
>
>> + * For port 8 still use B53_PORT_OVERRIDE_CTRL
>> + * Please note that not all ports are available on every hardware, e.g. BCM5301X
>> + * don't include overriding port 6, BCM63xx also have some limitations.
>> + */
>> +#define B53_GMII_PORT_OVERRIDE_CTRL(i) (0x58 + i)
>> +#define   GMII_PORT_OVERRIDE_LINK              BIT(0)
>> +#define   GMII_PORT_OVERRIDE_FULL_DUPLEX       BIT(1) /* 0 = Half Duplex */
>> +#define   GMII_PORT_OVERRIDE_SPEED_S           2
>> +#define   GMII_PORT_OVERRIDE_SPEED_10M         (0 << PORT_OVERRIDE_SPEED_S)
>> +#define   GMII_PORT_OVERRIDE_SPEED_100M                (1 << PORT_OVERRIDE_SPEED_S)
>> +#define   GMII_PORT_OVERRIDE_SPEED_1000M       (2 << PORT_OVERRIDE_SPEED_S)
>> +#define   GMII_PORT_OVERRIDE_RX_FLOW           BIT(4)
>> +#define   GMII_PORT_OVERRIDE_TX_FLOW           BIT(5)
>> +#define   GMII_PORT_OVERRIDE_EN                        BIT(6) /* Use the register contents */
>> +#define   GMII_PORT_OVERRIDE_SPEED_2000M       BIT(7) /* BCM5301X only, requires setting 1000M */
>
> Can we shorten these names a bit? Broadcom calls them GMII_PO_*, which
> I think is an acceptable abbreviation.

I was just trying to follow B53_PORT_OVERRIDE_CTRL, but I like GMII_PO_* too.

-- 
Rafał
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list