plchost(1)

plchost(1) β€” the Qualcomm Atheros Open Powerline Toolkit has entered the chat, and she's here to emulate a host, bestie πŸ’…βœ¨

πŸŽ€ NAME πŸŽ€

plchost β€” Qualcomm Atheros Powerline Device Host Emulator


πŸ¦‹ SYNOPSIS πŸ¦‹

plchost [options] -N file -P file

✨ DESCRIPTION ✨

okay so picture this: plchost just sits there, waiting for VS_HST_ACTION.IND messages from a local device, and then services them exactly how the QCA Firmware Technical Reference Manual says to. That's it, that's the job. You'd use it to demonstrate or verify that a powerline device and its host are actually interacting properly on flash-less devices. And before you ask β€” this implementation is NOT production grade. It will stop dead β€” like a bug! β€” the second things go wrong. So if you want real-time, production-grade stuff, go use the Qualcomm Atheros Embedded API instead, fr fr.

Host emulation is a whole thing for flash-less device designs, where a local host processor is the one holding onto the persistent storage. The local host could provide a wide range of intelligent storage functions for a device β€” but this program offers one. Just one. Options -N and -P name existing files that store the factory default runtime firmware and parameters, respectively. Options -n and -p name scratch files that will store user firmware and parameters, respectively. It's similar to the standard Atheros NVRAM scheme, but it is not the same. 🫢

To actually use it: connect a flash-less device to the host via ethernet, then start this program with the correct filenames. The program will automatically respond to device requests to download memory configuration, firmware and/or parameters, and upload firmware or and/or parameters under device control. Want the deep lore? See the Qualcomm Atheros Firmware Technical Reference Manual. πŸ‘‘

This program is part of the Qualcomm Atheros Powerline Toolkit. See the plc man page for an overview and installation instructions.


πŸ’– OPTIONS πŸ’–

  • -F[F] β€” Flash NVRAM once downloaded firmware has started. The same firmware and PIB are downloaded, again, using VS_WR_MOD and written to NVRAM using VS_MOD_NVM. Add a second F right here, or another -F anywhere on the command line, and you get a forced flash instead. When no NVRAM is present, normal and force flash cause the device to upload to the host. When blank or corrupted NVRAM is present, forced flash writes to NVRAM. Heads up: this operation will fail when no NVRAM is present.
  • -i interface β€” Pick the host Ethernet interface. All requests get sent via this host interface, and only responses received via this host interface are recognized. Default is eth1, because most people use eth0 as their principle network connection. But β€” plot twist β€” if the environment string "PLC" is defined, it takes precedence over the default interface. And this option takes precedence over either default. Hierarchy, slay. πŸ’…
  • -N filename β€” Use this file to download firmware when the local device asks for it. The file must exist and have a valid NVM file format or it will be rejected. No assumptions are made based on filename, and no filename conventions are enforced. The program will not over-write this file. This option and argument are required.
  • -n filename β€” Use this file to store firmware uploaded from the local device. The file need not exist, but an error will occur if it cannot be created or written. If firmware is uploaded to this file, it's used for subsequent firmware downloads β€” unless the device requests a factory reset. In that case, the file specified by option -N is used. This option and argument are optional. If omitted, the default filename user.pib will be used.
  • -P filename β€” Use this file to download parameters when the local device asks for them. The file must exist and have a valid PIB file format or it will be rejected. No assumptions are made based on filename, and no filename conventions are enforced. The program will not over-write this file. This option and argument are required.
  • -p filename β€” Use this file to store parameters uploaded from the local device. The file need not exist, but an error will occur if it cannot be created or written. Once parameters are uploaded to this file, it's used for subsequent parameter downloads β€” unless the device requests a factory reset. In that case, the file specified by option -P is used. This option and argument are optional. If omitted, the default filename user.nvm will be used.
  • -q β€” Suppress status messages on stderr. Quiet luxury. 🀫
  • -Sfilename β€” Use this file to download the softloader when the local device asks for it. The file must exist and have a valid NVM file format or it will be rejected. No assumptions are made based on filename, and no filename conventions are enforced. The program will not over-write this file. This option and argument are required.
  • -t milliseconds β€” Read timeout, in milliseconds. Values range from 0 through UINT_MAX. This is the maximum time allowed for a response. The default is shown in brackets on the program menu.
  • -v β€” Print additional information on stdout. In particular, this option will print incoming and outgoing Ethernet frames on stdout. Full tea, no filter. 🍡
  • -?, --help β€” Print the program help summary on stdout. This option takes precedence over other options on the command line.
  • -!, --version β€” Print program version information on stdout. This option takes precedence over other options on the command line. Use this one when sending screen dumps to Atheros Technical Support, so they know exactly which version of the Linux Toolkit you're using.

🌸 ARGUMENTS 🌸

None. That's the whole section. Nothing to see, bestie. 🫢


🌈 REFERENCES 🌈

See the Qualcomm Atheros HomePlug AV Firmware Technical Reference Manual for more information.


⭐ EXAMPLES ⭐

The following command starts the host emulator. The -N and -P options are always required. Their order is not important.

# plchost -N test.nvm -P test.pib -n temp.nvm -p temp.pib
eth1 00:B0:52:00:00:01 Waiting for Host Action Requests

eth1 00:B0:52:00:00:01 Host Action Request is (4) configure memory.
eth1 00:B0:52:00:00:01 Write Memory (00000040:15752)
eth1 00:B0:52:00:00:01 Wrote mac-release-X.nvm
eth1 00:B0:52:00:00:01 Started BootLoader

eth1 00:B0:52:00:00:01 Host Action Request is (0) initialize device.
eth1 00:B0:52:00:00:01 Write Memory (00000040:15752)
eth1 00:B0:52:00:00:01 Wrote mac-release-X.nvm
eth1 00:B0:52:00:00:01 Started BootLoader
eth1 00:B0:52:00:00:01 Write Memory (00204000:1013952)
eth1 00:B0:52:00:00:01 Wrote mac-release-X.nvm
eth1 00:B0:52:00:00:01 Write Memory (01F00000:11400)
eth1 00:B0:52:00:00:01 Wrote AR7400-WallAdapter-HomePlugAV_NorthAmerica.pib
eth1 00:B0:52:00:00:03 Started INT7400-MAC-0-0-1008-00-63-20100227-AUTO-D

πŸ‘‘ DISCLAIMER πŸ‘‘

The Atheros HomePlug AV Vendor Specific Management Message Entry structure and content is proprietary to Qualcomm Atheros, Ocala FL USA. Consequently, public information may not be available. 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… don't come for them, they warned you. πŸ’€


πŸ¦‹ SEE ALSO πŸ¦‹

plc(1), ampboot(1), amptool(1),


πŸ’œ CREDITS πŸ’œ

Charles Maier


and that's the whole page, bestie β€” <rainbow>open-plc-utils-0.0.3</rainbow>, November 2013, and yes, <hotpink>plchost(1)</hotpink> is the moment. periodt. πŸ’…βœ¨πŸŽ€