
Hi Mike,
On Sunday 01 June 2008, Wolfgang Denk wrote:
In message 1212298724-15152-10-git-send-email-vapier@gentoo.org you wrote:
When available, use the on-chip syscontrol() rom function to perform a system reset rather than our own local method.
...
asm("jump (%0);" : : "a" (bfin_reset));
if (0 /*BOOTROM_CAPS_SYSCONTROL -- current silicon is broken*/)
syscontrol(SYSCTRL_SOFTRESET, NULL, NULL);
else
asm("jump (%0);" : : "a" (bfin_reset));
}
Your comment suggests you change something, but actually you;re just adding dead code.
it's dead code because the current silicon is broken. i know the code works as ive tested it in scenarios where the anomaly isnt triggered, it just cant be enabled until fixed hardware is released. it's much easier to go back and fix 1 if statement then have to carry this patch somewhere it can got lost and i need to waste time and rewrite it.
Hm. If the current - available - silicon is broken, then even if it is fixed in the future, you will have to support both versions, right? So in the end you will need to have a discriminating factor on what to use.
So if you introduced some variable or bit in a variable (a define doesn't look promising as I guess you want to support both broken and non-broken silicon with a single image), you could have correct code now and in the future - and no dead code complaints.
PowerPC Linux btw. does quite a lot of such "cpu_feature" stuff to dynamically accomodate lots of different silicon.
Cheers Detlev