ΣSigmaStudio Ask AI Русский Log in

Where Do I Find TigerSHARC Anomaly Details?

Processors & DSP Joel.K Oct 25, 2013 00:00 5 replies Original on forum ↗
Subscribe
Joel.K Question
Oct 25, 2013 00:00

For the TigerSHARC, in ts_hdr.asm, there is reference to anomaly 03-00-0213. I can find mention of it in a few spots. Apparently I'm not supposed to read directly from INTCTL. But where do I find the details of this anomaly?

This is one example of an anomaly for which I'd like to know the details. There are others as well that are not documented in ADSp-TS201S Errata_RevQ_0108.pdf. I have found some info in ADSP-TS201-compiler.xml, installed on my machine, but for some of them there are very few details. There must be some document that actually discusses the anomalies in more detail ... ?

Thanks,

Joel

ts201

TigerSHARC Embedded Processors

processors and dsp

anomaly

adsp-ts201s

ADIApproved Reply
Oct 25, 2013 00:00

Hi Joel,

That anomaly was fixed in Rev 1.0 of the TS201, which is why it is not listed in the Anomaly Sheet (as that only covers 1.1, 1.2 and 2.0). Are you using an old silicon revision of the TS201?

Regards,

Craig.

StuartS Reply
Oct 25, 2013 00:00

That memory location in the startup is retained for backwards compatibility. It doesn't need to be accessed for the later silicon revisions but it is still included to avoid breaking code that does happen to make use of it even if it does so unnecessarily.

Regards,

Stuart.

StuartS Reply
Oct 25, 2013 00:00

The details for anomaly 03000213 are provided below. It might be possible to get you older revisions of the errata sheets that include the anomalies you have concerns about. However it is probably easier for us to provide the information for the ones you require from our database directly as we have done below.

Regards,

Stuart.

DESCRIPTION:
The interrupt control register can not be read. Impacts ADSP-TS201 revisions 0.0 and 0.1.

WORKAROUND:
If code needs to read INTCTL, dedicate a memory address that will keep the current value of INTCTL and copy the value written to INTCTL to this address every time it is changed. This copy may have to be performed atomically, i.e. in the same instruction line with the INTCTL write. For example,

R0 = New_Value_Of_INTCTL;;
INTCTL=xR0; [J31+_Save_INTCTL]=yR0;;

Then reads of INTCTL can be performed from _Save_INTCTL instead.

To ensure that other sources that may define the same named variable (such as compiler generated code, for example) do not conflict with the variable definition, ".weak" assembler directive should be used:

.var _Save_INTCTL;
.weak _Save_INTCTL;
Tools Action Taken:
Workarounds were first implemented in VisualDSP++ 3.0SP1. The workarounds are enabled automatically when building for the affected parts and silicon revisions and disabled otherwise.

When enabled, the assembler faults reads of INTCTL. This sequence is also avoided in the Runtime Libraries and VDK. VDK and C startups both include a _Save_INTCTL symbol. In ICE 7.0.2 or later, the emulator makes use of this symbol and warns if it does not exist.

Joel.K Reply
Oct 25, 2013 00:00

If you look at the end of ts_hdr.asm (from the ADI library code), you'll see:

// The central location for storing values written to INTCTL,

// as part of a workaround for errata 03-00-0213.

// When writing to INTCTL, ensure you write the same value

// simultaneuosly to this location. Instead of reading INTCTL,

// read from this location instead.

.var _Save_INTCTL=0xF;

.global _Save_INTCTL;

There's no assembler preprocessor symbol to activate/deactivate this code.

It sounds like you're saying it can be removed from ts_hdr.asm for recent silicon revs ... ?

Joel.K Reply
Oct 25, 2013 00:00

Ok. Thank you for the info.

We are writing flight software, so every piece of data and code must be justified. The justification for this data appears to anomaly 03000213, which would be fine except that I still have no details as to what that anomaly is. I would really like to have access to a document that describes that anomaly (and possibly other older anomalies) in the same detail as the current Anomaly Sheet does for the anomalies that still exist in the current silicon.

Is there a document somewhere that describes the details of the older anomalies?

Thanks,

Joel