I'm curious about the decision to have separate oscillators on the two CPUs on the Uno. In theory, it should have been possible to run both CPUs off a single crystal or resonator. There's been a rumor that this wasn't done for EMI reasons.
Is that true, or was there another reason for this, or was it just to preserve the possibility of running the two at different clock frequencies?
So the two choices are:
1) Put the crystal on the ATmeg8U2 and output a clock to the ATmega8. I think the problem there is that the ATmega8 would have to be programmed specially to work with the external clock.
2) Put the crystal on the ATmega8 and output a clock to the ATmega8U2. One problem is that the ATmega Clock Output pin (PB0) is already used for Arduino Data Pin 8. Another problem is that the clock output might be disrupted when the USB connection resets the ATmega8.
Option 1 seems the most practical. You'd need to program the ATmega8U2 fuses to output the clock and change the ATmega8 fuses to accept an external clock. I guess that if the 8U2 failed the system would be dead, rather than just uncommunicative, and you could not then use an external USB to Serial cable to program it.
Just route the Xtal out pin on one chip to the xtal in pin of the other through a suitable resistor - check the datasheets to see which of the two Xtal pins is the input and which the output of the oscillator. Seems to work. Incidentally I note the UNO has a feedback resistor across the resonator on the ATmega328 despite the datasheets making it clear this is unnecessary as its on-chip.
Just route the Xtal out pin on one chip to the xtal in pin of the other through a suitable resistor
That would work, even if you had to buffer the signal to be on the safe side.
But it would make the 328 fuses etc different to the standard, maybe they wanted to keep things the same.