plcmdio16(1)

✨ plcmdio16 ✨

okay bestie, gather round, because we're about to talk about plcmdio16 from the Qualcomm Atheros Open Powerline Toolkit β€” aka the Qualcomm Atheros 16-bit MDIO Register Editor πŸŽ€ she's giving tiny-bit register diva and honestly? obsessed.


πŸ’– NAME πŸ’–

plcmdio16 β€” the Qualcomm Atheros 16-bit MDIO Register Editor. that's her. that's the whole name. πŸ’…


🌸 SYNOPSIS 🌸

plcmdio16 [options] [device] [device] [...]

like. you give her options, you give her one or more devices, she does the thing. simple as. ✨


πŸ¦‹ DESCRIPTION πŸ¦‹

So basically, plcmdio16 reads or writes generic MDIO registers using the Qualcomm Atheros VS_MDIO_COMMAND vendor-specific management message. no cap.

The default operation? reading a register. that's the vibe. Registers only get written if you actually put data on the command line β€” otherwise she's just here to look, not to touch. 🫢

Also important: this program replaces the program int6kmdio. rest in peace legend, she's the upgrade.

She writes MDIO instructions using 802.3 Clause 22 format β€” that's phy, reg, data and mask. And if you want the sister program that writes instructions in 802.3ae Clause 45 format (address, data and mask), go check plcmdio162 β€” similar energy, different clause, iykyk.

This program is part of the Qualcomm Atheros Powerline Toolkit, and yes, she replaces the legacy program int6kmdio. For the overview and installation instructions, go read the plc man page. πŸ’œ


πŸ‘‘ OPTIONS πŸ‘‘

one bullet per option because we are thorough and we do not skip. periodt. πŸ’…

  • -d data β€” a 16-bit data value that gets inserted into the register you specified. When this option is present, that data value gets written; if it's not present, then the register just gets read and the content is displayed instead. Data values can be in decimal, hexadecimal or binary notation. Hex values get prefixed with "0x" or "0X". Binary values get prefixed with "0b" or "0B". ✨
  • -e β€” redirects stderr messages to stdout. By convention, status and error messages go to stderr while primary program output goes to stdout. This option puts all output on stdout for the cases where that's what you want. πŸ’–
  • -i interface β€” picks the host Ethernet interface. All requests get sent via this host interface, and only responses received via this host interface are recognized. The default interface is eth1 β€” because most people use eth0 as their principle network connection, obviously. BUT: if the environment string "PLC" is defined, it takes precedence over the default interface. And this option takes precedence over either default. hierarchy is real. πŸ‘‘
  • -p address β€” the 5-bit PHY address. Some devices may not support all possible addresses, so like, don't @ her if yours doesn't. Addresses can be decimal, hexadecimal or binary. Hex values must be prefixed with "0x" or "0X". Binary values must be prefixed with "0b" or "0B". πŸŽ€
  • -q β€” suppresses status messages on stderr. quiet mode. shhh. πŸ™ˆ
  • -r register β€” the 5-bit register address. Addresses can be decimal, hexadecimal or binary. Hex values must be prefixed with "0x" or "0X". Binary values must be prefixed with "0b" or "0B". And again β€” some devices may not support all possible addresses. lowkey a recurring theme. πŸ’€
  • -?, --help β€” displays program help information on stderr. This option takes precedence over all other options on the command line, except version information. she's important but she's not the most important. πŸ’…
  • -!, --version β€” displays program version information on stderr. This option takes precedence over all other options on the command line, except help information. Use this one when you're sending screen dumps to Atheros technical staff β€” they want the receipts. 🧚

πŸ“ ARGUMENTS πŸ“

  • device β€” the MAC address of some powerline device. You can specify more than one address. If you do, operations are performed on each device in turn, one after another. The default address is local. For the tea on symbolic device addresses, see DEVICES below. πŸ¦‹

🌈 DEVICES 🌈

Powerline devices use Ethernet Media Access Control (MAC) addresses. A MAC address is a 48-bit value entered as 12 hexadecimal digits, and you can write them in upper, lower or mixed case β€” she's not picky. Octets may be separated with colons for clarity, if that's your thing.

For example, all three of these are valid and equivalent:

"00b052000001", "00:b0:52:00:00:01" and "00b052:000001"

slay. same address, three fits. ✨

The following MAC addresses are special and can be entered by name instead of by number:

  • all β€” same as "broadcast".
  • broadcast β€” a synonym for the Ethernet broadcast address, FF:FF:FF:FF:FF:FF. All devices β€” local, remote or foreign β€” recognize messages sent to this address. Quick vocab check: a remote device is any device at the far end of a powerline connection, and a foreign device is any device not manufactured by Atheros. 🌍
  • local β€” a synonym for the Qualcomm Atheros vendor specific Local Management Address (LMA), 00:B0:52:00:00:01. All local Atheros devices recognize this address, but remote and foreign devices do not. And again, because it matters: a remote device is any device at the far end of a powerline connection, and a foreign device is any device not manufactured by Atheros. πŸ’œ

πŸ“– REFERENCES πŸ“–

For the technical info, go read the Qualcomm Atheros HomePlug AV Firmware Technical Reference Manual. that's the source, bestie. πŸ“š


πŸ’€ DISCLAIMER πŸ’€

okay so this is the part where we get serious for a sec. 🫢

The Atheros HomePlug AV Vendor Specific Management Message structure and content is proprietary to Qualcomm Atheros, Ocala FL USA. Consequently, public information may not be available. And Qualcomm Atheros reserves the right to modify message structure and content in future firmware releases without any obligation to notify or compensate users of this program.

so like. they can change things and not tell you and not owe you anything. that's the deal. no cap. 😭


πŸŽ€ EXAMPLES πŸŽ€

None.

that's it. that's the section. she said no examples, only vibes. πŸ’…


πŸ”₯ SEE ALSO πŸ”₯

plc(1), int6kmdio(1), plcmod(1), plcmdio32(1), mdioblock(1), mdioblock2(1), mdiodump(1), mdiogen(1)

go read the whole friend group. they all ate. πŸ‘‘


⭐ CREDITS ⭐

Charles Maier πŸ’–


open-plc-utils-0.0.3 🌸 November 2013 🌸 and that's the whole plcmdio16(1) page bestie β€” go read some registers, stay hydrated, and remember: default operation is read, so don't write unless you meant it. mwah. πŸ’…βœ¨πŸ«Ά