Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Thread

T and G commands

T and G commands

2006-01-11 by philips_apps

Hello all LPC2000 participants,

Here are some answers to the T and G command related questions that 
have been asked on this forum recently.

T command
=========
The T command was designed with the intention of expediting the 
loading of data into the on-chip RAM during Philips in-house 
testing. In essence, what the "W" command does in a serial fashion, 
using UART0, the "T" command was supposed to do using a selected 
group of GPIO pins.

The T command had to provide a one-way data transfer only (from the 
testing environment into the LPC2000). Furthermore, the data width 
was supposed to be either 8 or 16 bits and there was an option to 
select handshaking or not.

When an LPC2000 device is put into a tester, we are capable of 
controlling every single signal that stimulates the microcontroller, 
and therefore a non-handshake based upload could be possible. 
Knowing how many cycles it takes a portion of code to be executed, 
we could provide the right data at the right time at the right pins 
so that the "T" command would fetch them and store them into the RAM.

Since there are not to many environments as controllable as the one 
described above outside of a semiconductor company manufacturing 
and/or testing facilities, a simple handshake was designed: An 
LPC2000 would wait for a high-to-low transition on a dedicated pin, 
and when such event would be detected, it would fetch data from a 
parallel port.

Issuing a "T" command means that in addition to 3 pins taken by the 
ISP, additional 8/16 (byte/half-word transfer) or 9/17 (byte/half-
word transfer + handshake) would have to be used. It was our belief 
that there would not be too many real-life applications that would 
be willing to trade 8 to 17 pins for a GPIO functionality, 
especially on smaller parts (48 and 64 pin packages).

It is clear that most of those customers that would decide to use 
a "T" command could not live without a handshake. Unfortunately, 
this feature was not working in some of the early releases of the 
bootloader, and this was an additional reason why it was decided not 
to promote this feature.

Bottom line: The "T" command was supposed to fetch data from 
a "parallel" port and store it into on-chip RAM. It does not execute 
a single piece of code on its own. Even if a code is successfully 
loaded into the on-chip RAM using this command, a "G" command has to 
be issued.


G command with "tEsT" argument
==============================
The "tEsT" argument was meant to be used by Philips testing 
facilities so that a special test/piece of code residing in the 
bootloader can be called/executed. In reality it turned out that 
almost 100 tests (small applications) have to be loaded into every 
single device when testing it, in order to verify its functionality 
and say it is "OK". These tests are not carved in stone because we 
keep updating and refining them. Therefore, although it was intended 
at one point in time, we could not store all these patterns into the 
bootloader. This is why no meaningful code can be accessed using 
the "tEsT" argument in the current version of the bootloader. 

Regards,

Philips Apps Team

Re: T and G commands

2006-01-11 by jayasooriah

Dear philips_apps,

I am very pleased that you have finally chosen to repsond to two of
the three core issues I raised in this forum.

I am anxiously awaiting confirmation of third issue relating to CSI
vulnerability.

Arising from explanation of T and 'tEsT' arguments, please clarify:

1/  if the T command disabled when CEP is enabled;

2/  if it is corect to say that what happpens to the boot sector code
is indetermine should any user enter "G tEsT A" or "G tEsT T"; and

3/  if you knew about these when you posted the "CRP Update" message.

Thank you.

Jaya

--- In lpc2000@yahoogroups.com, "philips_apps" <philips_apps@y...> wrote:
Show quoted textHide quoted text
>
> Hello all LPC2000 participants,
> 
> Here are some answers to the T and G command related questions that 
> have been asked on this forum recently.
> 
> T command
> =========
> The T command was designed with the intention of expediting the 
> loading of data into the on-chip RAM during Philips in-house 
> testing. In essence, what the "W" command does in a serial fashion, 
> using UART0, the "T" command was supposed to do using a selected 
> group of GPIO pins.
> 
> The T command had to provide a one-way data transfer only (from the 
> testing environment into the LPC2000). Furthermore, the data width 
> was supposed to be either 8 or 16 bits and there was an option to 
> select handshaking or not.
> 
> When an LPC2000 device is put into a tester, we are capable of 
> controlling every single signal that stimulates the microcontroller, 
> and therefore a non-handshake based upload could be possible. 
> Knowing how many cycles it takes a portion of code to be executed, 
> we could provide the right data at the right time at the right pins 
> so that the "T" command would fetch them and store them into the RAM.
> 
> Since there are not to many environments as controllable as the one 
> described above outside of a semiconductor company manufacturing 
> and/or testing facilities, a simple handshake was designed: An 
> LPC2000 would wait for a high-to-low transition on a dedicated pin, 
> and when such event would be detected, it would fetch data from a 
> parallel port.
> 
> Issuing a "T" command means that in addition to 3 pins taken by the 
> ISP, additional 8/16 (byte/half-word transfer) or 9/17 (byte/half-
> word transfer + handshake) would have to be used. It was our belief 
> that there would not be too many real-life applications that would 
> be willing to trade 8 to 17 pins for a GPIO functionality, 
> especially on smaller parts (48 and 64 pin packages).
> 
> It is clear that most of those customers that would decide to use 
> a "T" command could not live without a handshake. Unfortunately, 
> this feature was not working in some of the early releases of the 
> bootloader, and this was an additional reason why it was decided not 
> to promote this feature.
> 
> Bottom line: The "T" command was supposed to fetch data from 
> a "parallel" port and store it into on-chip RAM. It does not execute 
> a single piece of code on its own. Even if a code is successfully 
> loaded into the on-chip RAM using this command, a "G" command has to 
> be issued.
> 
> 
> G command with "tEsT" argument
> ==============================
> The "tEsT" argument was meant to be used by Philips testing 
> facilities so that a special test/piece of code residing in the 
> bootloader can be called/executed. In reality it turned out that 
> almost 100 tests (small applications) have to be loaded into every 
> single device when testing it, in order to verify its functionality 
> and say it is "OK". These tests are not carved in stone because we 
> keep updating and refining them. Therefore, although it was intended 
> at one point in time, we could not store all these patterns into the 
> bootloader. This is why no meaningful code can be accessed using 
> the "tEsT" argument in the current version of the bootloader. 
> 
> Regards,
> 
> Philips Apps Team
>

Re: T and G commands

2006-01-12 by philips_apps

Dear Jayasooriah,

The "T" command is disabled when CRP is enabled. 

Though the "G tEsT A" or "G tEsT T" commands were mentioned in the 
earlier revisions of the User Manual's we realized that they do not 
help the application in any way. Hence we skipped their descriptions 
in the later revisions. These commands were solely meant for Philips 
testing facilities. 

The way the bootloader has been implemented so far will lead a 
customer using either "T" or "G tEsT" command to a dead-end. Having 
commands designed for in-house use only, together with reasons 
ranging from a command not being fully functional (T command lacking 
synchronization capabilities in different versions of the 
bootloader) all the way to not having a useful code at all ("G 
tEsT"), it becomes obvious why the "T" and "G tEsT" commands are not 
part of the latest releases of the LPC2000 documentation.

We hope these details will help you and all other LPC2000 users in 
their current work and future designs with these microcontrollers.

Regards,

Philips Apps Team


--- In lpc2000@yahoogroups.com, "jayasooriah" <jayasooriah@y...> 
wrote:
>
> Dear philips_apps,
> 
> I am very pleased that you have finally chosen to repsond to two of
> the three core issues I raised in this forum.
> 
> I am anxiously awaiting confirmation of third issue relating to CSI
> vulnerability.
> 
> Arising from explanation of T and 'tEsT' arguments, please clarify:
> 
> 1/  if the T command disabled when CEP is enabled;
> 
> 2/  if it is corect to say that what happpens to the boot sector 
code
> is indetermine should any user enter "G tEsT A" or "G tEsT T"; and
> 
> 3/  if you knew about these when you posted the "CRP Update" 
message.
> 
> Thank you.
> 
> Jaya
> 
> --- In lpc2000@yahoogroups.com, "philips_apps" <philips_apps@y...> 
wrote:
> >
> > Hello all LPC2000 participants,
> > 
> > Here are some answers to the T and G command related questions 
that 
Show quoted textHide quoted text
> > have been asked on this forum recently.
> > 
> > T command
> > =========

Re: T and G commands

2006-01-14 by jayasooriah

Dear philips_apps,

While I very appreciative that you have responded, I note you have
chosen to do this selectively.

You have not to address CSI vulnerability when "U 0 0 0 0 0" yet
again.  The inference is that it exists.  Also, the T command does
work on 1.52 version of the loader and I am not sure why you say it
does not.

Nontheless, as the T command and the 'tEsT' argument serve no useful
purpose, a very positive outcome of the discussion so far would be the
removal of these two features from the boot loader itself, not just
its documentation.

When I get back from my holidays (in about three weeks), I will
explain the why I am making this request, in the context of CRP security.

Thanks again for responding.

Kind regards,

Jaya

--- In lpc2000@yahoogroups.com, "philips_apps" <philips_apps@y...> wrote:
Show quoted textHide quoted text
>
> Dear Jayasooriah,
> 
> The "T" command is disabled when CRP is enabled. 
> 
> Though the "G tEsT A" or "G tEsT T" commands were mentioned in the 
> earlier revisions of the User Manual's we realized that they do not 
> help the application in any way. Hence we skipped their descriptions 
> in the later revisions. These commands were solely meant for Philips 
> testing facilities. 
> 
> The way the bootloader has been implemented so far will lead a 
> customer using either "T" or "G tEsT" command to a dead-end. Having 
> commands designed for in-house use only, together with reasons 
> ranging from a command not being fully functional (T command lacking 
> synchronization capabilities in different versions of the 
> bootloader) all the way to not having a useful code at all ("G 
> tEsT"), it becomes obvious why the "T" and "G tEsT" commands are not 
> part of the latest releases of the LPC2000 documentation.
> 
> We hope these details will help you and all other LPC2000 users in 
> their current work and future designs with these microcontrollers.
> 
> Regards,
> 
> Philips Apps Team

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.