AnsweredAssumed Answered

MSC8144ADS Net_Multicore Demo

Question asked by zpyatt on Nov 11, 2010
Latest reply on Feb 17, 2011 by Andrew Temple



I am trying to get the net_multicore demo to run on a msc8144ADS board using the Eclipse based CodeWarrior v10.1.


I have followed the Setup instructions as per the Net_Demo_Readme.txt with no luck.  The problem seems to be in the auto negotiation (miiAutoNegotiation()) the call to:


static void adsMiiWait(volatile unsigned long count)


#pragma opt_level = "O0"

    while(count--) ;



never finishes, I think this is because initEtherPhyPilot() sets the following values:


mii_info.wait_param  = 400000;/* Modified by ZRP 11/10/2010 according to net_mii.h from 400000 to 2000 (2 sec.);*/

mii_info.max_wait_cycles = 4000000; /* Modified by ZRP 11/10/2010 according to net_mii.h from 4000000 to 6 (6 * 2 sec. = 12 sec. total wait, way longer than necessary);*/


as you can see I have played with these values in the ads_support drivers, this causes the routine to finish, but the auto negotiation doesn't seem to ever work.


I have a few questions about my setup:


1.) The instructions say "1b. On 8144ADS rev. PILOT, SW2.8 has to be changed to RGMII (ON)." is this documented anywhere the MSC8144ADS Ref. Manual says 2.8 is reserved?

2.) "NOTE         This demo requires that pin MUX6 work. It cannot configured by external dip-switches only." - what is MUX6, is this documented anywhere?

3.) "2.   Burn the file eeprom_pin_mux6.img into the EEPROM." I have modified the i2c demo to write the following to the eeprom:


const uint8_t eeprom_pin_mux6[40] = {0xaa, 0x55, 0xaa, 0xff,

                                    0xff, 0xff, 0x00, 0x1f,

                                    0x18, 0x00, 0xff, 0xff,

                                    0xff, 0x01, 0x6c, 0x18,

                                    0x18, 0x00, 0xff, 0xff,

                                    0xff, 0xff, 0xff, 0xff,

                                    0xde, 0xad, 0xbe, 0xef,

                                    0xde, 0xad, 0xbe, 0xef,

                                    0xde, 0xad, 0xbe, 0xef,

                                    0xff, 0xff, 0xff, 0xff};


i2cEepromWrite(i2c_device, devAddr, memAddr, eeprom_pin_mux6, 40);


      a.) Is there a better/easier way to burn an image to the eeprom?

      b.) Do I have to worry about byte swapping any of the above values before writing them to the EEPROM, those values were taken from "eeprom_pin_mux6.img" but after looking at the MSC8144 Reference Manual some of the values don't make sense


4.) Is there anything else I'm missing?


Note: I seem to be able to boot from the EEPROM, and the link light for Port D on the 8144ADS comes on, it goes off during the auto negotiation.