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
