I (think) the AR8327 switch support now works

Milan Obuch freebsd-mips at dino.sk
Sun Mar 9 08:17:35 UTC 2014


On Sat, 8 Mar 2014 14:50:14 -0800
Adrian Chadd <adrian at freebsd.org> wrote:

> Ok, well now let's figure out if the reset is working or not.
> 
> look at arswitch_attach():
> 
> * It sets up the default methods;
> * it calls ar8327_attach();
> * it resets the switch via arswitch_reset();
> * it calls the HAL methods to set things up;
> * it attaches the PHYs;
> * it attaches said PHYs;
> * it starts the periodic checks via arswitch_tick().
> 
> So, I'd add some printf()s in arswitch_attach() to see where it's
> getting to before it calls return (ENXIO) or return (err).
> 

I did something else more. I wrote ar8327_probe() function just like
the ones for internal switches are to override the current probe
routine. Then I see a bunch of register reads/writes. Attachment does
not succeed, anyway, but maybe you could see here something
interesting:

mdio0: <MDIO> on argemdio0
mdioproxy0: <MII/MDIO proxy, MDIO side> on mdio0
unknown: arswitch_probe 2 6
unknown: arswitch_probe 2 6
arswitch0: <Atheros AR8327 Ethernet Switch> on mdio0
arswitch0: arswitch_attach 1 6
arswitch0: ar8327_attach executed
arswitch0: arswitch_attach 2
arswitch0: writereg 0x00000000: 0x80000000 (0x00000000)
arswitch0: readreg 0x00000000: 0x12041204
arswitch0: arswitch_attach 3
arswitch0: writereg 0x00000004: 0x07600000 (0x00000000)
arswitch0: writereg 0x00000008: 0x00000000 (0x00000000)
arswitch0: writereg 0x0000000c: 0x00000000 (0x00000000)
arswitch0: readreg 0x00000010: 0x20260000
arswitch0: writereg 0x00000050: 0x00000000 (0x00000000)
arswitch0: writereg 0x00000054: 0xc737c737 (0x00000000)
arswitch0: writereg 0x00000058: 0x00000000 (0x00000000)
arswitch0: writereg 0x0000005c: 0x00c30c00 (0x00000000)
arswitch0: writereg 0x00000010: 0xa1260000 (0x00000000)
arswitch0: arswitch_attach 4
arswitch0: writereg 0x00000620: 0x000004f0 (0x00000000)
arswitch0: writereg 0x00000624: 0x007f7f7f (0x00000000)
arswitch0: readreg 0x00000078: 0x20262026
arswitch0: writereg 0x00000078: 0x20262344 (0x00000000)
arswitch0: readreg 0x00000030: 0x80000000
arswitch0: writereg 0x00000030: 0x80000001 (0x00000000)
arswitch0: arswitch_attach 5
arswitch0: writereg 0x0000007c: 0x0000007e (0x00000000)
arswitch0: writereg 0x0000009c: 0x00000000 (0x00000000)
arswitch0: writereg 0x00000420: 0x00010001 (0x00000000)
arswitch0: writereg 0x00000424: 0x00003000 (0x00000000)
arswitch0: writereg 0x00000660: 0x0014003e (0x00000000)
arswitch0: writereg 0x00000080: 0x00000200 (0x00000000)
arswitch0: writereg 0x000000a0: 0x00000000 (0x00000000)
arswitch0: writereg 0x00000428: 0x00010001 (0x00000000)
arswitch0: writereg 0x0000042c: 0x00003000 (0x00000000)
arswitch0: writereg 0x0000066c: 0x0014003d (0x00000000)
arswitch0: writereg 0x00000084: 0x00000200 (0x00000000)
arswitch0: writereg 0x000000a4: 0x00000000 (0x00000000)
arswitch0: writereg 0x00000430: 0x00010001 (0x00000000)
arswitch0: writereg 0x00000434: 0x00003000 (0x00000000)
arswitch0: writereg 0x00000678: 0x0014003b (0x00000000)
arswitch0: writereg 0x00000088: 0x00000200 (0x00000000)
arswitch0: writereg 0x000000a8: 0x00000000 (0x00000000)
arswitch0: writereg 0x00000438: 0x00010001 (0x00000000)
arswitch0: writereg 0x0000043c: 0x00003000 (0x00000000)
arswitch0: writereg 0x00000684: 0x00140037 (0x00000000)
arswitch0: writereg 0x0000008c: 0x00000200 (0x00000000)
arswitch0: writereg 0x000000ac: 0x00000000 (0x00000000)
arswitch0: writereg 0x00000440: 0x00010001 (0x00000000)
arswitch0: writereg 0x00000444: 0x00003000 (0x00000000)
arswitch0: writereg 0x00000690: 0x0014002f (0x00000000)
arswitch0: writereg 0x00000090: 0x00000200 (0x00000000)
arswitch0: writereg 0x000000b0: 0x00000000 (0x00000000)
arswitch0: writereg 0x00000448: 0x00010001 (0x00000000)
arswitch0: writereg 0x0000044c: 0x00003000 (0x00000000)
arswitch0: writereg 0x0000069c: 0x0014001f (0x00000000)
arswitch0: arswitch_attach 6
arswitch0: attaching PHY 0 failed
arswitch0: attaching PHY 1 failed
arswitch0: attaching PHY 2 failed
arswitch0: attaching PHY 3 failed
arswitch0: attaching PHY 4 failed
device_attach: arswitch0 attach returned 6

Regards,
Milan


More information about the freebsd-mips mailing list