On Monday 25 February 2013 14:06:13 Jonas Gorski wrote:
> On 21 February 2013 15:53, Hauke Mehrtens <[email protected]> wrote:
> > On 02/21/2013 02:57 PM, Tijs Van Buggenhout wrote:
> >> From linksys firmware :
> >> 
> >> # et -i eth0 robord 0x0 0x0e
> >> 0x0000008b
> >> # et -i eth0 robord 0x0 0x12
> >> 0x0000020b
> >> 
> >> root@OpenWrt:/# robocfg robord 0x0e
> >> Page 0x00, Reg 0x0e: 00bb
> >> root@OpenWrt:/# robocfg robord 0x12
> >> Page 0x00, Reg 0x12: 0321
> >> 
> >> 1. Fix led control register:
> >> 
> >> On normal ports only one led was used for both link and activity (green),
> >> internet port additionally had orange led on all the time.
> >> 
> >> I compared the value of registry 0x12 on linksys firmware vs openwrt, and
> >> it showed a different value (0x20b for linksys vs 0x321 on openwrt).
> >> 
> >> Now the green led is always used to signal link, the orange led (only)
> >> blinks on link activity.
> >> 
> >> 2. Adjust IMP port status
> >> 
> >> As I was comparing register values/bcmrobo.c source code, I noticed a
> >> difference for the IMP port status register (0x0e), linksys firmware
> >> showed
> >> 0x8b vs 0xbb for openwrt.
> >> 
> >> From bcmrobo.c - int bcm_robo_enable_switch:
> >>         if ((robo->devid == DEVID53115) || (robo->devid == DEVID53125)) {
> >>         
> >>                 /* Over ride IMP port status to make it link by default
> >>                 */
> >>                 val8 = 0;
> >>                 robo->ops->read_reg(robo, PAGE_CTRL, REG_CTRL_MIIPO,
> >>                 &val8,
> >> 
> >> sizeof(val8));
> >> 
> >>                 val8 |= 0x81;   /* Make Link pass and override it. */
> >>                 robo->ops->write_reg(robo, PAGE_CTRL, REG_CTRL_MIIPO,
> >>                 &val8,
> >> 
> >> sizeof(val8));
> >> 
> >>         }
> >> 
> >> Hauke, did you use '0xb1' intentionally instead of '0x81'? Or do we want
> >> this to be the same?
> > 
> > I used the Asus ac66u source code as a reference as this contains the
> > most recent source code I know of. There val8 |= 0xb1; is used.
> 
> Bits 5 and 6 enable rx/tx flow control - not sure if this is
> potentially harmfull or not.
> 
> > Does chaining this to 0x81 changes the behavior of your device?
> > 
> >> Signed-off-by: Tijs Van Buggenhout <[email protected]>
> >> 
> >> diff --git a/package/switch/src/switch-robo.c
> >> b/package/switch/src/switch-
> >> robo.c
> >> index f715972..ac4855a 100644
> >> --- a/package/switch/src/switch-robo.c
> >> +++ b/package/switch/src/switch-robo.c
> >> @@ -252,8 +252,13 @@ static int robo_switch_enable(void)
> >> 
> >>         if (robo.devid == ROBO_DEVICE_ID_53125) {
> >>         
> >>                 /* Make IM port status link by default */
> >> 
> >> -               val = robo_read16(ROBO_CTRL_PAGE,
> >> ROBO_PORT_OVERRIDE_CTRL) | 0xb1;
> >> +               val = robo_read16(ROBO_CTRL_PAGE,
> >> ROBO_PORT_OVERRIDE_CTRL) | 0x81;
> >> 
> >>                 robo_write16(ROBO_CTRL_PAGE, ROBO_PORT_OVERRIDE_CTRL,
> >>                 val);
> >> 
> >> +
> >> +               /* Write LED control register */
> >> +               val = 0x020b;
> >> +               robo_write16(ROBO_CTRL_PAGE, 0x12, val);
> >> +
> > 
> > With this change my Asus n66u does not blink on activity any more.
> 
> Maybe there is some nvram value for it? the led configuration is
> likely device specific, not chip specific.
> 
> 
> Jonas

'et_swleds' nvram variable seems to be intended for this purpose, but doesn't 
(seem to) exist by default for the e3200.. is it for the asus?

Regards,
Tijs
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to