I’ve got a number of these switches in use. They are quite handy as they do not require external power when PoE is available, and have some nice monitoring features.
For a project, I needed to control a non-connected device in a location where I only had the switch and some other closed devices. My first thought was to try to use the switch to talk to a small microcontroller that could drive GPIO lines as required (this way I would not need to take up an ethernet port)
That idea hit a dead end, but I found some interesting undocumented things on the switch, not just on the serial port but on the network as well.
Serial Port
The first order of business was to find the serial port. After opening the case and removing the heatsink, it was pretty obvious where it was.
IO Voltage level is 3.3V, presumably VCC is also 3.3V but I didn’t test it. Baud rate is the standard 115200, n-8-1.
The boot sequence dump:
CFE-NTSW-B5.1.0.2 for GS1XXT (32bit,SP,BE,MIPS) Build Date: Wed Aug 11 18:05:01 IST 2010 (yrdreddy@lc-hyd-001) Copyright (C) 2000,2001,2002,2003,2004,2005 Broadcom Corporation. Initializing Arena. Initializing Devices. Board : GS108T CPU type 0x29050: 200MHz Total memory: 0x4000000 bytes (64MB) Total memory used by CFE: 0x83EA0000 - 0x83FFF720 (1439520) Initialized Data: 0x83EEA0D0 - 0x83EEB260 (4496) BSS Area: 0x83EEB260 - 0x83EFD720 (74944) Local Heap: 0x83EFD720 - 0x83FFD720 (1048576) Stack Area: 0x83FFD720 - 0x83FFF720 (8192) Text (code) segment: 0x83EA0000 - 0x83EE97F7 (301047) Boot area (physical): 0x03E5F000 - 0x03E9F000 Relocation Factor: I:E42A0000 - D:E42A0000 Compression Supported: 7zip Loader:elf Filesys:raw Dev:flash0.os File: Options:(null) Loading: Validating the code file.. Flash stk image is 4067246 bytes, CRC 0000A915 0x80041000/16045520 0x80f8e5d0/2993176 0xa0001000/262144 Entry at 0x80041000 Starting program at 0x80041000 16x5x SERIAL init - dev: b8000300.1 IFP: 0x80f1abd4, next: 0x81268f20 IFP: 0x81268f20, next: 0x00000000 Vpd crc valid. ramfs crc OK (0xc1575f3) ..FastPATH software Version 5.0.5.7 Build Date: Fri Sep 14 13:32:37 EDT 2012 Starting fpmain ICS unit 0: Dev 0xc312, Rev 0x11, Chip BCM53312_B0, Driver BCM53314_A0 GPIO Board ID = 0 SOC unit 0 attached to PCI device BCM53312_B0 Tuning MMU with 4096 cells and 4 CoS queues for 13 ports of which 12 are Ethernet ports Fan in is targeted at 4 while the over subscription is set to 8 calling init_bcm_53312, board_id=108 power=0 gpio_in boardid bits=0 .started! [osapiPipeCreate-61] [osapiPipeOpen-67] .. (Unit 1)> Applying configuration, please wait ... FastPATH Debug >
Command list:
FastPATH Debug >? Available Commands: 0x80078f6c cablediag 0x8028aef4 cliDebug 0x802be820 cliInfoDump 0x801fd0c8 cnfgrDump 0x8024e01c configClear 0x802446e8 configDump 0x8024e044 configSave 0x80056b58 debug_policy_table 0x8031b310 debugTftp 0x8031b2b0 debugUploadRoot 0x8031b2e0 debugUploadServer 0x8004e540 dev 0x802049e8 dhcpcDebugMsgLvlSet 0x8008b62c diag_shell 0x8030a328 dltNetDebugSet 0x80053d5c dosCtrl 0x8030b3c0 dtlDrvStats 0x803ea2b0 dumpFdbStats 0x8031292c ecos_net_stats 0x8007eed8 green 0x8021ed78 greenTrace 0x8004866c hapiBroadAclDebug 0x80048d00 hapiBroadAutoDosDebug 0x80065ee8 hapiBroadDebugL2McastShow 0x80048678 hapiBroadDebugPkt 0x800486ac hapiBroadDebugPktFilterGet 0x800486dc hapiBroadDebugPktFilterSet 0x8007577c hapiBroadDebugPolicyMemory 0x80075648 hapiBroadPolicyDebug 0x80075128 hapiBroadPolicyDebugTable 0x800815c8 hapiBroadVoipCallDump 0x800818b0 hapiBroadVoIPPolicyDump 0x8024e31c if 0x8024e31c ifconfig 0x803d9fdc lagShow 0x8030ec40 lkup 0x8022fd84 logClear 0x8022b6b8 logConsole 0x8023004c logShow 0x8025e754 mbufDetail 0x8025fae0 mbufFree 0x8025e35c mbufHistoryClear 0x8025e2d4 mbufHistoryDelete 0x8025e3d4 mbufHistoryDump 0x8025e1b8 mbufHistoryInit 0x8025eddc mbufShow 0x8030e5b8 memShow 0x803f3544 mfdbStats 0x80050008 MMUConfig 0x80053588 MMUCount 0x8005275c MMUState 0x803104cc msgQ 0x803108bc msgQprint 0x80310574 msgQshow 0x80310974 msgQstall 0x80234488 nimDebugDump 0x8023a104 nimDebugIntfModeSet 0x80235458 nimPortDump 0x802442f0 nsdpTftpStop 0x80244094 nsdpTrace 0x803104cc osapiDebugMsgQueuePrint 0x8030d2ec osapiMemShow 0x80310574 osapiMsgQueueShow 0x80315824 osapiTaskShow 0x8004e56c phyDump 0x800c210c phyget 0x8004e5a4 phyMedium 0x8004e604 phyRead 0x800c23f8 physet 0x8004e75c phyWrite 0x80247320 poeCfgDump 0x802810e8 poeClrCfg 0x80281260 poeClrImg 0x80287bc4 poeDebug 0x80287b18 poeDump 0x80287dcc poeUpdImg 0x80075648 policy 0x80076314 policyDebugEnable 0x80075128 policyTable 0x801fa6b4 poolShow 0x80046290 reboot 0x8004f790 regDump 0x803128f4 routePrint 0x8004ad98 rxShow 0x802681a0 schedDump 0x802fd08c SessTbl 0x8024df50 setdhcp 0x80400b08 snoopCfgDump 0x80401724 snoopDebugTraceAllFlagsReset 0x804015b8 snoopDebugTraceDisable 0x80401558 snoopDebugTraceEnable 0x804018d8 snoopDebugTraceFlagsReset 0x804018a0 snoopDebugTraceFlagsSet 0x80401744 snoopDebugTraceFlagsShow 0x80401618 snoopDebugTraceHelp 0x80400f10 snoopInfoShow 0x802561b0 sntpDebug 0x802546b8 sntpDebugClear 0x80255ba4 sntpDebugShow 0x802561bc sntpDebugTime 0x8038aa68 sslCertGen 0x80258db0 sysShow 0x8030e6d0 taskShow 0x8035fefc voipCallDBDump 0x8035d2b8 voipDebugCfgShow 0x803640dc voipH323CallDump 0x80365420 voipSccpCallDump 0x80368210 voipSipCallDump 0x8035fde0 voipTrace 0x8030eefc before 0x8030f040 after 0x8021c99c driv Please see the source code for parameter lists. FastPATH Debug >
Not all the commands are functional, but more about that later.
Closing it up
You’ll need thermal adhesive (not just thermal paste) to remount the heatsink. Something like Arctic Alumina would work. For the serial port, there’s enough empty space to mount a 3.5mm TRS jack (GND, TXD, RXD) on the back of the switch, to allow connections in the future.