I program the ptp according to "Programming The PTP for Frame Detection and Timestamping" using CCES 1.0.3. Now the Core0 could detect the PTP frame in Ethernet throught eth1, but the timestamp for every PTP frame is always "ZERO". The problem in details is as follows:
ADI_EMAC_REGISTERS * pEmacRegs;
pEmacRegs = ((ADI_EMAC_DEVICE*)pHandle)->pEMAC_REGS;
pEmacRegs->EMAC_DMA_BUSMODE |= 0x80;
pEmacRegs->EMAC_TM_CTL &= 0xFFF000FF;
pEmacRegs->EMAC_TM_CTL |= 0x04E00;
//PADS_EMAC_PTP_CLKSEL use default;
*pREG_PADS0_EMAC_PTP_CLKSEL |= 0x04;
//init system time
pEmacRegs->EMAC_TM_SECUPDT = 100;
pEmacRegs->EMAC_TM_NSECUPDT = 100;
pEmacRegs->EMAC_TM_CTL |= 0x40;
pEmacRegs->EMAC_TM_CTL |= 0x01;
(2)When receiving PTP frame , the status of regesiters is:
(3)According to RDES0( Status ), the Timestamp is written in RDES6 and RDES7, but value of RxTimestamp is always ZERO.
I tried but couldn't found the question out.
Or is there some examples about how to use PTP on bf609?