RMII to MII - Hangs when pinging error

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

RMII to MII - Hangs when pinging error

Jump to solution
878 Views
Kafre
Contributor III

Hi all,

 

First, be so kind of pointing me the right sub-forum if this is not the right one. Thanks.

 

I'm currently developing a board using the m54455evb as model, with MCU10.1 and MQX 3.6.2 (MFS, RTCS and Shell). As test program, I'm adapting the "Shell Test" included in the MQX 3.6.1 release (no mayor changes in the MQX3.6.2 version).  This includes Ramdisk, the RTCS library and a simple shell to test the board capabilities. The code works fine.

 

When porting the  code to my board, I have found that my hardware is designed to work in MII mode interface and the evaluation board works in RMII. I have changed the "_bsp_enet_io_init " function in the "gpio_init.c" file under BSP, so it initializes my FEC into MII mode. No other changes to FEC configuration have been made.

 

 

From:ptr->GPIO.PAR_FEC = (ptr->GPIO.PAR_FEC & ~MCF5445_GPIO_PAR_FEC_FEC0(7)) | MCF5445_GPIO_PAR_FEC_FEC0_RMII_GPIO;To:ptr->GPIO.PAR_FEC = (ptr->GPIO.PAR_FEC & ~MCF5445_GPIO_PAR_FEC_FEC0(7)) | MCF5445_GPIO_PAR_FEC_FEC0_MII;

 

Then, after rebuilding the whole set of libraries and flashing the device, I can ping from/to the board for a few seconds. After those,  the program hangs. Its strange because I can even start a Telnet server on the board if I hurry. But before a minute has pass, It hangs. Normally in the middle of a RTCS instruction. 

 

 

I'm open to any ideas regarding this issue.

 

Thanks.

Labels (1)
Tags (1)
0 Kudos
1 Solution
491 Views
Kafre
Contributor III

I just updated to MQX 3.7 and the problem is solved.

View solution in original post

0 Kudos
2 Replies
491 Views
Kafre
Contributor III

By the way this is my _bsp_enet_io_init:

 

 

void _bsp_enet_io_init (uint_32 device) {    VMCF5445_STRUCT_PTR ptr;    if (device < BSP_ENET_DEVICE_COUNT)     {        ptr = _PSP_GET_IPSBAR();            ptr->GPIO.PAR_FECI2C |= MCF5445_GPIO_PAR_FECI2C_MDC0_MDC0 | MCF5445_GPIO_PAR_FECI2C_MDIO0_MDIO0;        ptr->GPIO.PAR_FECI2C |= MCF5445_GPIO_PAR_FECI2C_MDC1_MDC1 | MCF5445_GPIO_PAR_FECI2C_MDIO1_MDIO1;            // TODO (FIXME) resolve pin setting conflict between FEC0 and ULPI, FEC1 and ATA        if (device == 0)            //ptr->GPIO.PAR_FEC = (ptr->GPIO.PAR_FEC & ~MCF5445_GPIO_PAR_FEC_FEC0(7)) | MCF5445_GPIO_PAR_FEC_FEC0_RMII_GPIO;         ptr->GPIO.PAR_FEC = (ptr->GPIO.PAR_FEC & ~MCF5445_GPIO_PAR_FEC_FEC0(7)) | MCF5445_GPIO_PAR_FEC_FEC0_MII;        else            //ptr->GPIO.PAR_FEC = (ptr->GPIO.PAR_FEC & ~MCF5445_GPIO_PAR_FEC_FEC1(7)) | MCF5445_GPIO_PAR_FEC_FEC1_RMII_GPIO;         ptr->GPIO.PAR_FEC = (ptr->GPIO.PAR_FEC & ~MCF5445_GPIO_PAR_FEC_FEC1(7)) | MCF5445_GPIO_PAR_FEC_FEC1_MII;    }    }

 

 

0 Kudos
492 Views
Kafre
Contributor III

I just updated to MQX 3.7 and the problem is solved.

0 Kudos