ну пока программисты думают над архитектурой, схемотехники меняют схемы.
Флэш ПЛИС повесили на SPI которой в боевой прошивке используется по другим ногам. Отсюда либо делать программный SPI, либо однозначно обновления делать не из основного алгоритма.
Так что проблема решилась сама собой

. Все равно спасибо участвовавшим.
Решение такое:
АРМ с не убиваемой прошивкой, при загрузке проверяет целостность своей боевой прошивки, или желания пользователя что-то изменить. Если никто не хочет и прошивка цела и код безопасности тот, переходит на боевой режим, и разрешает грузить ПЛИС тем что есть.
Если нет, то в режим загрузчика, где будет ждать 2 прошивки для ПЛИС и для себя боевую. Корректность прошивки ПЛИС проверять не буду, только во время обновления, пусть сами следят при смене прошивки что все прошло штатно.
Кирпич из прибора никогда не сделают, благодаря не убиваемой прошивке, а все остальное поправят...
П.С. кто на вскидку знает Spartan 6 проверяет целостность прошивки до загрузки, мне главное чтобы он не загрузился в какой-то конфликтный режим и не пожог все...