Skip to Navigation
Home
  • Company
    • Quick Facts
    • Board of Directors
    • Management Team
    • Press Releases
    • News Coverage
    • Newsletter
    • Careers
    • Articles
    • Ember Chronology
    • Contact Us
  • Products
    • ZigBee Chips
    • ZigBee Software
    • ZigBee Development Tools
    • Documentation
  • Buy
    • Digi-Key (Online)
    • Distributors
  • Applications
    • AMI & AMR
    • Integrated Home Automation
    • Building Automation
    • Others
  • ZigBee
    • About ZigBee
    • Ember & ZigBee
    • ZigBee FAQ
    • Download Specifications
    • ZigBee Events
  • Partners
  • Support
    • Training
  • Events
Home › FAQs

Where is the EUI64 stored on the device? How can I read or set the current EUI64 of a device?

Categories:
  • Software : Networking
  • Hardware : Manufacturing
  • Tools : ISD, ISA
  • EM250
  • EM260
  • EM35x



General Information
An Ember device’s MAC address or EUI-64 (64-bit Extended Unique Identifier, as assigned by IEEE for all IEEE standards-based communication devices) is stored as a “manufacturing token” (non-volatile data set/used as part of the manufacturing or functional test process for the device). All EM2xx and EM3xx chips contain an Ember-assigned EUI64 from Ember’s own OUI (organizationally unique identifier; a 24-bit vendor code in the most significant bits of the EUI, leaving the remaining 40 bits as an address block to be assigned by the vendor); this value is programmed into the MFG_EMBER_EUI_64_LOCATION (as defined in hal/micro/xap2b/token-manufacturing.h for EM2xx chips or hal/micro/cortexm3/token-manufacturing.h for EM3xx chips) when the chip is packaged and tested prior to shipment from Ember’s IC test facility.

There is also a Custom EUI64 manufacturing token, which resides at the MFG_CUSTOM_EUI_64_LOCATION (defined in the same token-manufacturing.h files) and represents a customer-assigned EUI64 that can be set during a customer’s own manufacturing / functional test process to override the Ember-assigned EUI. If the Custom EUI64 is unset (all 0xFF bytes), the Ember-assigned EUI64 is used as the active EUI64 at runtime; otherwise, the Custom EUI64 overrides the Ember-assigned EUI64 and becomes to active EUI64 at runtime.

Note that these manufacturing tokens don’t reside in the main flash area (where the application, bootloader and SimEEPROM data resides) but in a special section of the chip (that is readable but not writable at runtime). For example, MFG_EMBER_EUI_64_LOCATION is within the Flash Information Area [FIA] on the EM2xx chips and within the Flash Information Block [FIB] on the EM3xx chips. The MFG_CUSTOM_EUI_64_LOCATION is within the FIA on the EM2xx chips and within the Customer Information Block [CIB] on the EM3xx chips.

The active EUI64 can be read at runtime through software using the emberGetEui64() API call (or the EZSP_GET_EUI64 command frame in EZSP). If the current application doesn’t have the ability to make this call or print the result, an alternative is to reload the device with Ember’s pre-built Rangetest application (for EM2xx chips) or Nodetest application (for EM3xx chips), which can be found in the EmberZNet software release (in app/rangetest for EM250; in build/em260-images for EM260; in app/nodetest for EM35x), and then use the “TOKDUMP” command to dump the contents of all manufacturing and stack token data from the device (manufacturing tokens are shown first). Among the manufacturing tokens that are relevant to the EUI64:

  • MFG_EMBER_EUI_64: This is the Ember-assigned EUI64.
  • MFG_CUSTOM_EUI_64: This is the customer-assigned EUI64.
  • MFG_EUI_64: This is a pointer to the active EUI64, which will be one of the ID values from the two tokens above.

The EUI64 can also be read and written with programming tools (InSight Adapter, for example), but that process varies depending on the platform…

Reading EUI64 (EM2xx chips)
Using a SIF programming tool (InSight USBLink or InSight Adapter for EM2xx), execute the following command:

For Ember EUI64:

em2xx_read -id targetAddress -Mfg @0xA+4

For Custom EUI64:

em2xx_read -id targetAddress -Mfg @0x41+4

Substitute your ISA’s IP address or hostname or USBLink’s USB ID in place of “targetAddress” above.

Note that the resulting EUI64 will be shown in least-significant byte (LSB) order due to the way it is stored internally.

Reading EUI64 (EM3xx chips)
Using an ISA3 execute the following command:

For Ember EUI64:

em3xx_load --ip targetAddress --read @0x80407A2-80407A9

For Custom EUI64:

em3xx_load --ip targetAddress --read @0x8040812-8040819

Substitute your ISA3’s IP address or hostname in place of “targetAddress” above; for USB-connected ISA3, omit the “—ip targetAddress” argument.

Note that the resulting EUI64 will be shown in least-significant byte (LSB) order due to the way it is stored internally.

Writing custom EUI64 (EM2xx chips)
Using a SIF programming tool (InSight USBLink or InSight Adapter for EM2xx), execute the following command to write an EUI64 (written in MSB) of 0×123456789ABCDEF0:

em2xx_patch -id targetAddress -Mfg 0x41=0xF0DE 0x42=0xBC9A 0x43=0x7856 0x44=0x3412

Substitute your ISA’s IP address or hostname or USBLink’s USB ID in place of “targetAddress” above.

Note that the Custom EUI64 can also be written as part of the “-loadCert” or “-loadTokens” arguments to em2xx_patch. Refer to the EM2xx Utilities Guide application note for more information about using em2xx_patch.

Writing custom EUI64 (EM3xx chips)
Using a SIF programming tool (InSight USBLink or InSight Adapter for EM2xx), execute the following command to write an EUI64 (written in MSB) of 0×123456789ABCDEF0:

em3xx_load --ip targetAddress --patch 0x8040812=0xF0 0x8040813=0xDE 0x8040814=0xBC 0x8040815=0x9A 0x8040816=0x78 0x8040817=0x56 0x8040818=0x34 0x8040819=0x12

Note that the Custom EUI64 can also be written as part of the “—cibtokenspatch” argument to em3xx_load. Refer to the EM3xx Utilities Guide application note for more information about using em3xx_load.

…For more information concerning manufacturing tokens, please refer to the Bringing Up Custom Nodes application note for your platform (AppNote 5031 for EM250, 5041 for EM260, 5065 for EM35x).

  • Login to post comments
  • Printer-friendly version

Search

FAQs

  • All (166)
  • Software : Embedded (65)
  • Software : Networking (70)
  • Hardware : Design (22)
  • Hardware : Manufacturing (10)
  • Tools : Dev Boards (2)
  • Tools : ISD, ISA (21)
  • Tools : xIDE (6)
  • Tools : Other (7)
  • ZigBee (1)
  • Change Notification (0)
Primary links
  • Developer Blog
  • Documentation
    • Release Notes
  • Contributed Software
  • FAQs
  • Change Notifications
  • Training
Portal
  • My Account
  • Search
User login
  • Request new password

Company | Products | Buy | Applications | ZigBee | Partners | Support | Events | Contact Us

©2007-2008 Ember Corporation | All rights reserved | Privacy