int64host(1)

✨ int64host β€” the INT6400 Host Emulator, bestie edition ✨

okay so you found int64host(1), part of the Qualcomm Atheros Open Powerline Toolkit, and honestly? she's a whole vibe. let's get into it πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

int64host [options] -N file -P file -n file -p file

like. that's the whole shape of her. options first, then the four files, and yes the files are the moment.


πŸ¦‹ DESCRIPTION πŸ¦‹

so the INT6400 Host Emulator just... sits there, patiently, waiting for VS_HST_ACTION.IND messages to show up from a local device, and then services them exactly like the INT6400 Technical Reference Manual says to. that's her job. that's her whole personality.

she's here to demonstrate or verify that device/host interaction is actually working properly for flash-less devices. and listen β€” she is NOT production grade. no cap. if things go wrong she will stop dead, like a bug, literally just keel over 😭. if you want real-time, production-grade applications you need to go use the Qualcomm Atheros Embedded API instead. that's the grown-up option.

host emulation is for flash-less device designs where a local host processor is the one providing persistent storage. a local host could do a whole wide range of intelligent storage functions for a device, but this program offers exactly one. one. singular. and that's fine!!

so here's the file situation:

  • 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 similiar to the standard Atheros NVRAM scheme but like... it is not the same. do not confuse them bestie.

to actually use her: connect a flash-less device to the host via ethernet, then start this program with the correct filenames. she'll automatically respond to device requests to download memory configuration, firmware and/or parameters, and she'll upload firmware and/or parameters under device control. for more on that, see the Qualcomm Atheros Firmware Technical Reference Manual πŸ’–

also she's part of the Qualcomm Atheros Powerline Toolkit β€” check the plc man page for the overview and install instructions. iykyk.


πŸ’… OPTIONS πŸ’…

  • -F[F] β€” flash NVRAM once downloaded firmware has started. the same firmware and PIB get downloaded, again, using VS_WR_MOD, and written to NVRAM using VS_MOD_NVM. add a second F here, or another -F anywhere on the command line, and you get a forced flash. when no NVRAM is present, normal flash and force flash both cause the device to upload to the host. when blank or corrupted NVRAM is present, forced flash writes to NVRAM. and this operation will fail when no NVRAM is present. so like, know that going in.
  • -i interface β€” pick the host Ethernet interface. all requests get sent via this host interface and only reponses received via this host interface are recognized. the default interface is eth1 because most people use eth0 as their principle network connection. however! if environment string "PLC" is defined then it takes precedence over the default interface. and this option then takes precedence over either default. priority queen πŸ‘‘
  • -N filename β€” use this file to download firmware when the local device requests it. the file must exist and have a valid NVM file format or it will be rejected, periodt. 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 then the default filename host.pib will be used.
  • -P filename β€” use this file to download parameters when the local device requests it. the file must exist and have a valid PIB file format or it will be rejected. again, no assumptions based on filename, no conventions enforced, and 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 then the default filename host.nvm will be used.
  • -q β€” suppress status messages on stderr. shhh 🀫
  • -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. she's yapping but it's useful yapping.
  • -?, --help β€” print program help summary on stdout. this option takes precedence over other options on the command line. main character energy, honestly.
  • -!, --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. be a considerate bestie 🫢

🌸 ARGUMENTS 🌸

None. not a single one. she said "i need no positional arguments, only vibes."


🌈 REFERENCES 🌈

see the Qualcomm Atheros HomePlug AV Firmware Technical Reference Manual for more information. it's giving homework but it's giving important homework.


⭐ EXAMPLES ⭐

this command starts the host emulator. the -N and -P options are always required. their order is not important (she's chill like that).

# int64host -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 Waiting for Host Action
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

look at her go. iconic behavior honestly πŸ¦‹


πŸ’€ 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, read the fine print bestie, it's real.


πŸ‘‘ SEE ALSO πŸ‘‘

plc(1), int64host(1), int6k(1), int6kboot(1) plchost(1)


πŸ“ CREDITS πŸ“

Charles Maier


okay that's the whole page πŸ’– this was open-plc-utils-0.0.3, from way back in November 2013, and it lives under the name int64host(1). go forth and emulate hosts responsibly, bestie βœ¨πŸŽ€