amphost(1)
π amphost π
Qualcomm Atheros Open Powerline Toolkit π¦
β¨ NAME β¨
amphost β Qualcomm Atheros Powerline Device Host Emulator π
β¨ SYNOPSIS β¨
amphost [options] -N file -P file -n file -p file
β¨ DESCRIPTION β¨
okay bestie so amphost just sits there waiting for VS_HST_ACTION.IND messages from a local device, then services them the way the QCA Firmware Technical Reference Manual says to π§ it's perfect for showing off or double-checking that a powerline device and host are vibing properly when the device is flash-less π
heads up tho, this is not production grade π it will stop dead (like a bug!) the second things go sideways. if you're building something real, go check out the Qualcomm Atheros Embedded API for real-time, production-grade apps π«Ά
host emulation is for flash-less device designs where a local host processor handles the persistent storage π the host can do a whole bunch of smart storage stuff, but this program only does one flavor. -N and -P point at files that already exist and hold the factory default runtime firmware and parameters (respectively). -n and -p point at scratch files for user firmware and parameters. it's similar to the standard Atheros NVRAM scheme, but it's not the same, so don't mix them up π
to use it, plug a flash-less device into the host over ethernet, then start the program with the correct filenames β¨ it'll automatically respond when the device asks to download memory configuration, firmware and/or parameters, and upload firmware or and/or parameters under device control. see the Qualcomm Atheros Firmware Technical Reference Manual for more deets π
this program is part of the Qualcomm Atheros Powerline Toolkit π check the plc man page for an overview and installation instructions.
β¨ OPTIONS β¨
-F[F]β flash NVRAM once the downloaded firmware has started π₯ the same firmware and PIB get downloaded again usingVS_WR_MOD, then written to NVRAM withVS_MOD_NVM. add a secondFhere, or throw another-Fanywhere on the command line, and you get a forced flash. with no NVRAM present, normal and forced flash both make the device upload to the host. with blank or corrupted NVRAM, forced flash writes to NVRAM. this operation fails if there's no NVRAM at all.-i interfaceβ pick the host Ethernet interface πΈ all requests go out this interface, and only responses that come back through it get recognized. the default iseth1, because most people useeth0as their main network connection. but if the environment stringPLCis defined, that takes priority over the default. and this option beats both of them π-N filenameβ use this file to download firmware when the local device asks π it must exist and have a valid NVM file format, or it gets rejected. no assumptions are made based on the filename, and no filename conventions are enforced. the program will not overwrite this file. this option and argument are required.-n filenameβ use this file to store firmware uploaded from the local device π¦ the file doesn't need to exist, but you'll get an error if it can't be created or written. if firmware gets uploaded here, it's used for later firmware downloads, unless the device requests a factory reset. in that case, the file given by-Nis used instead. this option and argument are optional. if omitted, the default filenameuser.pibis used.-P filenameβ use this file to download parameters when the local device asks π it must exist and have a valid PIB file format, or it gets rejected. no assumptions are made based on the filename, and no filename conventions are enforced. the program will not overwrite this file. this option and argument are required.-p filenameβ use this file to store parameters uploaded from the local device π§ it doesn't have to exist, but an error happens if it can't be created or written. once parameters are uploaded here, they're used for later parameter downloads, unless the device requests a factory reset. then the file given by-Pis used. this option and argument are optional. if omitted, the default filenameuser.nvmis used.-qβ shh, suppress status messages on stderr π-t millisecondsβ set the read timeout in milliseconds β±οΈ values range from0throughUINT_MAX. this is the max time allowed for a response. the default is shown in brackets on the program menu.-vβ get extra info printed on stdout π this option prints incoming and outgoing Ethernet frames on stdout, so you can see everything happening.-?,--helpβ print a program help summary on stdout πββοΈ this one takes precedence over other options on the command line.-!,--versionβ print the program version info on stdout π this one also takes precedence over other options. use it when sending screen dumps to Atheros Technical Support, so they know exactly which version of the Linux Toolkit you're using.
β¨ ARGUMENTS β¨
None. nothing to see here, bestie π
β¨ REFERENCES β¨
see the Qualcomm Atheros HomePlug AV Firmware Technical Reference Manual for more information π
β¨ EXAMPLES β¨
the following command starts the host emulator π -N and -P are always required, but their order doesn't matter.
# amphost -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 β¨
β οΈ Atheros HomePlug AV Vendor Specific Management Message Entry structure and content is proprietary to Qualcomm Atheros, Ocala FL USA. so public info 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.
β¨ SEE ALSO β¨
plc(1), ampboot(1), amptool(1),
β¨ CREDITS β¨
Charles Maier π
ily bestie π this was open-plc-utils-0.0.3, November 2013 πΈβ¨
π¦ where this page comes from
- alpine 3.24: open-plc-utils-doc 0_git20250712-r1 Β· BSD-3-Clause-Clear
- debian bookworm: plc-utils-extra 0.0.6+git20230504.1ba7d5a0-1 Β· BSD-3
- debian trixie: plc-utils-extra 0.0.6+git20250517.7fb8ac5-1 Β· BSD-3
- ubuntu noble: plc-utils-extra 0.0.6+git20230504.1ba7d5a0-1 Β· BSD-3
- ubuntu questing: plc-utils-extra 0.0.6+git20250517.7fb8ac5-1
- ubuntu resolute: plc-utils-extra 0.0.6+git20250712.46c3506-1 Β· BSD-3
- ubuntu stonking: plc-utils-extra 0.0.6+git20250712.46c3506-1 Β· BSD-3
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms