ATmega644p reboots on serial input

CrossRoads:
Looks nice Jack.

Thanks, Robert. I wasn't entirely happy with the routing. There are a few traces under the crystal (on the bottom side of the board) and as it turned out, the serial lines are some of them! But I wanted to keep the board size down so I took the risk. Things seem stable so I hope all is well. I'd value your opinion on that, though.

The crystal was a new part to me, it has a ±30 ppm spec. It's running right at the edge of that, but seems plenty stable. I don't see any frequency glitches if I send data in on the RXD0 line. I'm using the low-power crystal oscillator, too.

This is the output of Timer2, dividing the system clock frequency by 16:

GPS Frequency Counter
2: 999,971 Hz
4: 999,971 Hz
6: 999,971 Hz
8: 999,971 Hz
10: 999,971 Hz
12: 999,971 Hz
14: 999,971 Hz
16: 999,971 Hz
18: 999,972 Hz
20: 999,971 Hz
22: 999,971 Hz
24: 999,971 Hz
26: 999,970 Hz
28: 999,971 Hz
30: 999,971 Hz