Tool/software:
[What I want to ask]
PHYs(DP83867IS), implemented in prototypes of our product, is being evaluated.
We've designed and implemented DP83867IS to start operation with the desired initialization settings by accessing its registers.
However, on the debug phase, we've faced a problem with initialization settings applying differently depending on "debugging method".
In other words, the problem is that different “debugging methods” applied different initialization settings.
Please tell us how to solve this problem.
[Backgound]
We access to DP83867IS registers via MDIO communication, and using Gigabit Ethernet MAC "Core TSE", which is software IP from Microchip.
[Situation]
- Compiler we use is EWRISCV from IAR. (However, we think we can discuss debugging environments and methods in general terms.)
- In order to confirm the firmware design we implemented, When we run "Step execution" on the compiler,
we can access registers without any problem after executing the register access function in that step execution.
- On the other hand, if the program is allowed to continue running from the entry point, without a breakpoint, i.e., without stopping the program,
the behavior appears as if the PHY register is not being accessed.
- Specifically, after a Write access to a specific register in the DP83867IS, a Read back result to the same register said where the desired value was NOT being written.
- When a process was added in Test Procedure that would not allow the program to proceed if the desired value could not be read back,
the process fell into an infinite loop, and the above event was judged to have occurred.
- I am concerned that when the implemented program is actually run in the real product, the operation will proceed without the desired PHY register access.
- I think that when the firmware and PHY are actually run in the product, there should be no "step execution".
■Would you please tell me if there is a problem with the way the PHY registers are accessed or the initialization settings?
* Just for your information, If the write process is repeated until the correct value can be written or read back repeatedly until the desired value can be read back,
the process will be completed correctly after repeating these processes a certain number of times.
However, since we do NOT want to include these iterative processes in the real product,
and moreover, since it is difficult to provide a reasonable basis that such iterative processes can solve the problems shown in Situaion above,
e will leave this information as reference information.