GTA04 ... JTAG

Werner Almesberger werner at
Wed Apr 30 11:03:46 CEST 2008

Andy Green wrote:
> Who knows, Werner found it uses some weirdo TDI clocking scheme.  Do we
> really want to buy into that?

I'd still like to have the option of using JTAG to the MPU. If it
works, we can remove the multiplexer and its support circuit and
everyone will be happier for it. But I also agree that JTAG won't
work "out of the box" for the MPU and that the default configuration
of the GTA04v0 board should be not to have it in the chain.

> There are other issues around needing to
> deliver on timing constraints for flash programming which we can't
> really guarantee to do with an arbitrary host either, but the bootloader
> in the MSP430 does guarantee correct timing.

I think what one has to do here is to download small code fragments
into MPU RAM, and then execute them there, outside of JTAG control.
That way, the MPU will use its own clock. Of course, this also means
that the programming process becomes more complex.

> Actually I think it's important that the 6400 can come up without MSP430
> being there at all, since we know it just about works good enough for
> GTA02.  Then we null out much of the risk of introducing the MSP430.

Well, let's consider this once we've looked at the exact power
sequencing needs of the 6400. It would certainly be desirable for
the 6400 to be able to come up without MPU involvement.

However, in case the MPU needs to be in charge, it should be able
to assert RESET. So if we have the pins PMU.nRSTHC (OCF50633, reset
out), MPU.nRST (MSP430, reset in), MPU.GPIO (MSP430, arbitrary GPIO),
and CPU.XnRESET (S3C6400, reset in), there should be two possible

CPU comes up without MPU:

  net2 = (MPU.GPIO)  // not used

MPU needs to reset the CPU:

  net1 = (PMU.nRSTHC, MPU.nRST)
  net2 = (MPU.GPIO, CPU.XnRESET)

Cheers, Werner

More information about the openmoko-kernel mailing list