int6kf(1)

int6kf(1) β€” INT6300 Flash Utility for Linux πŸ’–

okay bestie, gather round, because this one is int6kf, straight out of the Qualcomm Atheros Open Powerline Toolkit and it's here to help you flash a little INT6300 situation. sit down, grab a snack, we're doing this πŸ“


✨ NAME ✨

int6kf β€” the INT6300 Flash Utility for Linux, babes πŸ’…


🌸 SYNOPSIS 🌸

int6kf [options] -C file -N file -P file

like… those three files are mandatory, no skipping, we don't do that here 🫢


πŸ¦‹ DESCRIPTION πŸ¦‹

heads up bestie: this program is deprecated. use int6kboot when you're downloading firmware 3.3.4 or later on INT6300 devices or later. she's an icon but she's retired πŸ’€

so what does she actually do? she downloads and starts runtime firmware on a local Atheros powerline device that's stuck in bootloader mode. and why would a device be stuck like that? because it can't load firmware from NVRAM, that's why. and that can happen when there's no NVRAM at all, or when the NVRAM is blank or corrupted 😭

the bootloader? she's lowkey limited. she only understands a subset of Atheros message types, and she cannot flash NVRAM β€” periodt. so this program uses that subset to download runtime firmware and start execution. and optionally, if you want, she'll go ahead and flash NVRAM after the firmware has started. main character behaviour tbh πŸ‘‘

booting a device is a two part operation, and here's the tea:

  1. the first part downloads SDRAM configuration parameters, then downloads runtime firmware and parameters into SDRAM, and starts the firmware.
  2. the second part downloads runtime firmware and parameters (again) into scratch buffers, and tells the firmware to write them into NVRAM.

and the rules? this program can do the first part alone, or the first then the second part β€” but not the second part alone. if you want the second part solo, that's program int6k's whole thing.

this program is part of the Atheros Powerline Toolkit. see the AMP man page for compilation and installation instructions ✨


πŸŽ€ OPTIONS πŸŽ€

  • -a β€” wait until the device sends a VS_HOST_ACTION.IND before downloading SDRAM configuration, firmware and PIB. patient queen energy ⏳
  • -C filename β€” read the named SDRAM configuration file and write it to the device. this option and argument are required, bestie. any file with an invalid SDRAM configuration file format gets rejected, no negotiation. and ngl, no assumptions are made based on filename and no filename conventions are enforced 🚫
  • -e β€” redirects stderr messages to stdout. by convention, status and error messages go on stderr while primary program output goes on stdout β€” this option puts all output on stdout when that's the vibe you want 🌈
  • -F[F] β€” write the previously downloaded MAC and PIB to NVRAM using VS_MOD_NVM. adding a second F here, or another -F anywhere on the command line, will force-flash a blank or corrupted NVRAM 😳 firmware loaded from NVRAM will treat force-flash as an error. this option can be used to create factory settings but cannot be used to change them once created. subsequent use creates and updates operational settings that can be erased using a factory reset. this option is executed after all others on the command line β€” except for the -R option πŸ‘€
  • -i interface β€” select the host Ethernet interface. all requests are sent via this interface and only responses received via this interface are recognized. the default interface is eth1 because most people use eth0 as their principle network connection; but if the environment string "PLC" is defined then it takes precedence over the default interface. and this option takes precedence over either default. hierarchy, we love to see it πŸ’…
  • -N filename β€” read the named NVM file and write it to the device. this option and argument are required. any file with an invalid NVM file format gets rejected. no assumptions based on filename, no filename conventions enforced πŸŽ€
  • -P filename β€” read the named PIB file and write it to the device. this option and argument are required. any file with an invalid PIB file format gets rejected. again: no assumptions based on filename, no filename conventions enforced πŸ¦‹
  • -q β€” suppresses status messages on stderr. quiet luxury 🀫
  • -t timer β€” read timeout or capture period in milliseconds. values range from 0 through UINT_MAX. this value has different effects on Linux and Windows, so listen up:
    • on Linux, where native raw sockets are used, this is the maximum time allowed for a response, and so larger values should not affect performance.
    • on Windows, where WinPcap is used, this is the time allotted for packet capture, and so larger values will certainly affect performance.

the default is shown in brackets on the program menu ✨

  • -v β€” prints additional information on stdout. in particular, this option dumps outgoing Ethernet packets on stdout. nosy in the best way πŸ”
  • -?,--help β€” print 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 option 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 it. nothing. she said no 🫢


πŸ’œ REFERENCES πŸ’œ

see the Atheros HomePlug AV Firmware Technical Reference Manual for more information πŸ“š


πŸ”₯ EXAMPLES πŸ”₯

okay so the -C, -N and -P options are always required. their order is not important. and notice β€” no MAC address is needed, because devices use address 00:B0:52:00:00:01, the program default address, when in bootloader mode 🎯

int6kf -C test.cfg -N test.nvm -P test.pib
> eth0 00:B0:52:00:00:01 Write SDRAM Configuration
> eth0 00:B0:52:00:00:01 Written.
> eth0 00:B0:52:00:00:01 Write to device memory
> eth0 00:B0:52:00:00:01 Written.
> eth0 00:B0:52:00:00:01 Write to device memory
> eth0 00:B0:52:00:00:01 Written.
> eth0 00:B0:52:00:00:01 Start Firmware
> eth0 00:B0:52:00:00:01 Started.

so what just happened? this downloads the SDRAM configuration file test.cfg with VS_SET_SDRAM, then firmware from file test.nvm with VS_WR_MEM, then PIB from file test.pib, then starts firmware execution with VS_ST_MAC. this operation is common on flash-less systems ✨

int6kf -C test.cfg -N test.nvm -P test.pib -F
> eth0 00:B0:52:00:00:01 Write SDRAM Configuration
> eth0 00:B0:52:00:00:01 Written.
> eth0 00:B0:52:00:00:01 Write to device memory
> eth0 00:B0:52:00:00:01 Written.
> eth0 00:B0:52:00:00:01 Write to device memory
> eth0 00:B0:52:00:00:01 Written.
> eth0 00:B0:52:00:00:01 Start Firmware
> eth0 00:B0:52:00:00:01 Started.
> eth0 00:B0:52:00:00:01 Write MAC as module
> eth0 00:B0:52:00:00:01 Written.
> eth0 00:B0:52:00:00:01 Write PIB as module
> eth0 00:B0:52:00:00:01 Written.
> eth0 00:B0:52:00:00:01 Flash Device
> eth0 00:B0:52:00:00:01 Flashed.

this performs the same actions as before but with some extra steps. after starting firmware execution, the same firmware and PIB are downloaded again, using VS_WR_MOD instead of VS_WR_MEM, and written to NVRAM using VS_MOD_NVM with force. the force option is only recognized by firmware that has been started by the bootloader and will fail when no flash memory is present 😭


πŸ™ˆ DISCLAIMER πŸ™ˆ

Atheros HomePlug AV Vendor Specific Management Message Entry structure and content is proprietary to Atheros Communications, Ocala FL USA. consequently, public information may not be available. Atheros Communications reserves the right to modify message structure and content in future firmware releases without any obligation to notify or compensate users of this program. yeah. that's the whole vibe πŸ’€


πŸ‘‘ SEE ALSO πŸ‘‘

AMP(1), int6k(1), int6kid(1), int6krate(1), int6kwait(1) β€” go read the whole friend group, they're all iconic 🫢


🧚 CREDITS 🧚

Charles Maier β€” thank you for your service, king πŸ‘‘


and that's the whole page bestie!! this came to you from open-plc-utils-0.0.3, dated November 2013 β€” yes she's an older queen but she still ate, no cap πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ’