ACE Updates – NET+OS 6.3

 

 

 

Last Updated: 12/30/08         Fix Count: 9

 

 
Title
MAC address lost when loading images to Connectcore9c modules
 
Case:  28644
 
Date Fixed:  12/19/08
 
Description
Connectcore9c modules would lose their MAC address when a 6.3 image was loaded into a module preloaded with the 7.x manufacturing image.
 
Summary  
Modification to boardParams.c now saves MAC address.
 
 
Title
Update for DST
 
Case:  22262
 
Date Fixed:  06/05/07
 
Description
DST Update
 
Summary  

Made modification to select DST by Time Zone.
 
 
Title
Problem updating to NET+OS 7.0
 
Case:  19767
 
Date Fixed:  10/30/06
 
Description
Wireless board parameter structure was re-arranged during post 6.3 release. This causes problems when updating from NET+OS 6.3 to NETOS 7.0.
 
Summary  

Updated to handle this data structure mismatch correctly. Since the record size in these two versions were the same, we checked the wpa_encrypt field of the older version for 4 possible values to determine the wireless parameter format.
 
 

Title

Memcopy size issue
 

Case: 18918

 

Date fixed: 06/26/06

 

Description

.Wrong copy size was being passed as a parameter.

 

Solution

Fixed copy size in customizeAceSetDhcpConfig,
                            customizeAceSetBootpConfig,
                            customizeAceSetAutoipConfig,
                            customizeAceSetRarpConfig.

 

Title

Root thread stack overflow

 

Case:  Internal

 

Date Fixed: 01/25/06

 

Description

Allocation of large local data structures off the root stack can cause random memory corruption due to root thread stack overflow. Results from the customer's point of view will be unpredictable
 

Solution

Either malloc or statically allocate these structures. Do not allocate them off the root thread stack.

 

 

Title

Restarting ACE

 

Case: internal

 

Date Fixed: 11/04/05

 

Description

One should be able to call customizeStopAce(ifname) for all interfaces, and then call customizeStartAce() once to restart ACE..

 

Solution

Changed ace_initialize to do thread and timer initialization only on a 1st call, and now we also create a mutex for ACE callbacks only on a 1st

call of customizeAceCreateLock, so cusomizeStartAce could be called more than once.

 

 

Title

ACE Start/Stop Issues

 

Case:  1216183

 

Date Fixed: 11/04/05

 

Description

To implement os_sleep and os_wakeup functions, Fusion uses an event table, with each entry consisting of an event pointer, used as an argument of os_sleep and os_wakeup calls, and a ThreadX event flag.  These two entities were not accessed in one atomic operation, so the context switch could occur in os_sleep between resuming the thread, by getting an event flag, and clearing the event pointer.

 

As the result, if two threads called os_wakeup with the same pointer at the same time, the second thread could set an event flag after os_sleep had gotten an event

flag, but before it had cleared an event pointer.  After this an empty event table entry would have a set event flag and some unrelated os_sleep, called later, would

wake up, without actually sleeping.

 

This created a problem for the ARP probe timer code that called os_sleep and expected to be woken up either by address conflict event or by timeout, but instead os_sleep returned without sleeping. Deleting the ARP probe timer created a data corruption.

 

Solution

The fix guarantees that os_sleep and os_wakeup functions access the Fusion event pointer and the ThreadX event flag in one atomic operation. The change has been made in Fusion osdep.c file.

 

Also fixed in this patch is a memory leak in aceCallbacks.c caused by not freeing the ifname from the previous customizeStartAce call.

 

 

Title

ACE Invalid Address problem

 

Case:  17079

 

Date Fixed: 10/11/05

 

Description

Registering an invalid address (e.g. 0.0.0.0) could put ACE into an infinite loop

 

Solution

Upon registering a bad address, customizeErrorHandler is called with ERROR-ACE-FAILURE and ERROR-SUBCODE-BAD-ACE-CONFIGURATION

__________________________________________________________________________________________________________________________

 

Title

Non-volatile memory configuration corruption when the Broadcom wireless driver is enabled (NS9750 only)

 

Case: 16515

 

Date Fixed:  07/11/05

 

Desription

The non-volatile memory configuration gets corrupted when an operator selects the "Reset the Configuration settings to default" using a NS9750 development board

with the Broadcom wireless driver enabled (BSP_WANT_WIRELESS option set to TRUE).

 

Solution

Corrected header file use of the sizeof macro when defining BSP_WANT_WIRELESS.

 

 

Files:   netos\h\boardParams.h
            netos\src\bsp\common\bsproot.c

            netos\src\bsp\devices\common\ethernet\eth_init.c

            netos\src\bsp\platforms\*\aceCallbacks.c

            netos\src\bsp\platforms\*\aceParams.c

            netos\src\bsp\platforms\*\boardParams.c
            netos\src\bsp\platforms\*\gdb.h

 

Special Instructions

 

  • Unzip the patch(es) to the root of your NET+OS installation, for example C:\netos63_gnu\.
  • Be sure to install any patches listed under Dependencies below
  • Rebuild your application.

 

Patch Link:  ACEUpdates_63

 

Dependencies

This patch also requires the installation of the following patch(es):

 

TCPIPUpdates_63

ApiReference_63