God only helps peple who helps himself.
I guess I got it.
The target board is powered by USB. It must have small Magnetic beads on both 5V and GND. Due to PCB layout issue, I use 0R to replace them. As a result, the noise from PC comes through whole ground and power supply, I believe noise in ground is more important.
Now I add a choke coil (TDK from SONY DC) on USB cable. It works on every tested board, although I haven't test all.
Here comes new question.
Before adding choke coil, some boards always failed with wrong IDCODE. After adding, then every tested board works. Even I removed the choke, they still work.
I bought a MKL25Z board from the market, which has dedicated SWD port. The debugger always reads out wrong IDCODE from SWD port. Now I connect debugger to dedicated port, it works fine. Switching back to SWD, it works again.
So maybe it is not 100% noise issue, improper connection could be another one. If I adjust the jumper wires, sometimes it works.
However, it implicts that the device should be reviewed by a prefessional hardware engineer. I am a software engineer who is trying to make own board. :smileyplain: