Toolkit Folders

The Atheros Open Powerline Toolkit package folder has many subfolders. Some contain source code, some contain documentation and others contain shell scripts. Some source folders contain programs that require components in neighboring folders. Consequently, you will see references to relative pathnames like ../folder, throughout source code, makefiles and shell scripts. This notation simplifies development and maintenance and is helpful when locating specific files.

Folder descriptions appear below in alphabetical order:

./applets

A library of programs that can run, stand-alone, on Atheros powerline devices and perform diagnostic tests for connection, functionality and performance. Some run to completion and return to the Bootloader. Others run continuously until the device is reset. Most can be run and executed in sequence using program int6ktest.

./classes

A collection of C++ classes that implement many of the ANSI C functions found elsewhere in the toolkit. These classes will compile and run on most platforms but are still a work-in-progress. The programs folder contains actual and sample programs that use these classes.

./docbook

HTML pages generated by several methods, but mostly Docbook 4.5. Some pages have been created using special tools that are not provided and will not be made available. The Makefile in this folder will compile the core XML source files on GNU/Linux systems that have Docbook 4.5 installed with extentions by Normal Walsh but it does not install the pages. See Installation on Linux for more information.

./ether

Network specific source code that supports raw ethernet packets in a platform independent fashion using plugin modules. The principle feature is the channel data structure used to read and write raw ethernet packets using network features on GNU/Linux, with or without libpcap, and on Windows™ with winpcap. The source code in this folder is difficult to port cross-platform due to the way different operating systems implement their system header files and network stacks.

./plc

The main source code for programs that communicate with Qualcomm Atheros powerline devices over Ethernet. The programs in this folder are essential programs for engineers and embedded software developers wanting to explore powerline device behavior. The Makefile in this folder will compile and install programs in /usr/local/bin on GNU/Linux systems.

./mme

A collection of helper functions dealing with HomePlug® and Atheros management messages. They are not needed for proper toolkit operation but they can be useful during development and debugging because they print message content in readable format. Most of these functions require extra memory because they include symbol tables and extra data conversion functions.

./nodes

A collection of functions that comrpise a generic, light-weight XML parser. Atheros is currently exprimenting with various XML-based applications to support device management on embedded systems. These functions are the core. Currently, they are only used by the pxe and int6k2 programs. See XML Editing Functions for more information.

./nvm

Programs, functions and make files related to Atheros NonVolatile Memory (NVM) files. All programs in this folder either read from or write to NVM files. None communicate with powerline devices. Some of the popular programs are chknvm, nvmsplit and nvmmerge.

./patches

A collection of useful Linux™ kernel patches and install scripts. Of particular interest is the send-to-self patch that enables external routing of ISO Layer 3 traffic between two Ethernet interfaces on the same host. Atheros provides them but does not support them.

./pib

Programs, functions and make files related to Atheros Parameter Information Block (PIB) files. All programs in this folder either read from or write to PIB files. None communicate with powerline devices. Some of the popular programs are chkpib, modpib, getpib and setpib.

./programs

A small collection of sample C++ programs that use the Atheros C++ powerline classes. These programs compile and run on most environments but are still a work-in-progress. Users may actually find netifs and plcnets useful.

./serial

Programs, functions and make files related to the Atheros Serial Communication Interface for Powerline devices. All of the programs in this folder communicate using a host serial port. None communicate with powerline devices over Ethernet. The main program of interest is int6kuart.

./scripts

Miscellaneous shell scripts that call various programs in this package to perform tasks such as flashing a FW2.0 device. Care must be taken here to ensure that environment variables at the start of each script are appropriate for your system.

./ram

Support modules for reading, printing and checking NVRAM and SDRAM configuration files. The .cfg files in this folder have a different format than the .config files released with the Atheros Windows Device Manager. The files distributed with the Windows Device Manger are 64 ASCII character with no checksum. The files in this directory are 32 binary bites with trailing checksum. Users may create new sdram configuration files by compiling sdram.c, using gcc -o sdram sdram.c and running it without any command line arguments.

./tools

Source code and header files used by virtually all programs in the toolkit. These files are generic and have application beyond this package. They provide GNU/Linux-style or POSIX-style functionality to programs running in environments that do not have either. They also implement operations like checksum computation and multi-byte hexadecimal encoding and decoding. See Support Function Reference for more information.

./VisualStudioNET

Components unique to Microsoft Windows are kept in and under this folder. Specifically, it contains a Visual Studio .NET™ solution to compile most of the programs in this package using only Microsoft and winpcap libraries. Compiled .exe files can be run on Windows™ enabled systems having winpcap installed. Adjustments may be necessary depending on your environment.

Microsoft does not provide full POSIX support on Windows platforms. Consequently, alternative headers and libraries are included under this folder. For example, an abridged version of unistd.h and an alternative version of stdint.h are included under VisualStudioNET/include. Other significant header files included here are ethernet.h, if_ether.h and in.h. Subfolder VisualStudio\Library contains WinPcap™ libraries. These folders are referenced in appropriate compiler and linker options for Microsoft Development environments.