We have designed a board based on BeagleBone Black and AM3359 ICE. The board should be able to run Linux as a EtherCAT master, should also run TI's realtime system as a EtherCAT slave (with a GPIO pin pull high/low).
While testing sdk/examples/ethercat_slave + HW_init() (a function copied from sdk/protocols/ethecat_slave), the program get stuck in function bsp_pruss_mdio_phy_read(). It can not leave the following loop:
bsp_pruss_mdioreg_write((0x80000000 | (phyaddr << 16) | (regoffset << 21)), ICSS_MDIO_USRACCESS0);
do {
u32regval = bsp_pruss_mdioreg_read(ICSS_MDIO_USRACCESS0);
}while (u32regval&0x80000000);
Because we do not have code of pruss, we do not understand what u32regval&0x80000000 means.
Can anyone tell me what does u32regval&0x80000000 mean?