Golikov 0 10 сентября, 2015 Опубликовано 10 сентября, 2015 · Жалоба Всем привет! После долгих чтений ug380 наконец то заставил ICAP корректно читать регистры, и писать я думаю тоже. Пошел дальше, попытался заставить спартан6 переконфигуриться на 2 прошивку. задал general1,2 на адрес 2 прошивки и флажок 0В поставил чтобы из SPI грузился. задал general3,4 на адрес 00, чтобы вернуться в 1 прошивку, если что не так. general5 задал для проверки запустил IPROG Спартан меня понял, и начал процесс, погасил все лампочки, а потом снова зажег, но снова в 1 прошивке, из которой я пытался улететь во 2. При этом статус истории загрузки 0001, то есть типа все хорошо, ошибок не было, general5 при этом изменился. И так он делает постоянно с включенным жетагом и с отключенным. Что ему не нравиться то? Кто это реально делал, поделитесь опытом, пожалуйста! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gk2 0 11 сентября, 2015 Опубликовано 11 сентября, 2015 · Жалоба Здесь есть пример https://github.com/m-labs/milkymist/blob/ma...andby/standby.v По таймеру (`define AUTO_ON) или по нажатию кнопки грузится основная прошивка ( в зависимости от другой кнопки базовая или rescue) из параллельной флэш. Делал подобное для V5 но тоже с параллельной флэш. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 11 сентября, 2015 Опубликовано 11 сентября, 2015 · Жалоба что-то особенное надо писать в прошивку, как то особенно ее создавать? все General регистры задал, и они вроде как задались, IProg дернул, диодики погасли, а потом опять в первой прошивке оказываемся при этом BOOTHIST 0001, то есть как-будто мы только загрузились. Фигня какая-то, а где бит IPROG , или Fallback. Мистика какая-то блин... при этом если BOOTMODE регистр поставить без бита NEWMODE, о вообще все повисает, и ничего не происходит.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gk2 0 11 сентября, 2015 Опубликовано 11 сентября, 2015 · Жалоба Да нет, прошивка обычная, ничего дополнительного Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 11 сентября, 2015 Опубликовано 11 сентября, 2015 · Жалоба в примере вообще все просто, GENERAL задали и IPROG дернули. Вроде все происходит, почему флаг iprog в истории статусов не ставиться... Еще я где-то читал что JTAG не может работать с ICAP вместе, но вроде бы выдрал JTAG, может его вообще надо как-то землить? -g next_config_register_write:Disable этот флаг же надо установить? А то битген добавить перезапись регистров, может еще что-то надо? Сделал встроенными в ISE средствами мульти бут с заголовочным файлом, выяснил вот что. 1. Обязательно надо ставить NEW_MODE, очевидно ножки м0,м1 становятся пользовательскими и не отражают реальности. Потому надо режим загрузки поставить руками, но ISE впрочем иначе отказывается работать. 2. В графе адрес 2 прошивке, обязательно должны быть добавлен опкоды загрузки. То есть это не просто адрес а прямо то что FPGA выдавит наружу при начале загрузки, так что 0x0B_ADDR. 3. Как только я понял что это то что выдавливается наружу я понял что адресация должна быть хитрее: У меня флэшка at45321d, у нее страницы по умолчанию в 528 байтном режиме, а в этом режиме она принимает адрес не номером байта, а страница и смещение, и потому вместо 0х100000 надо ставить 0х1F0400. При этом когда делаете прошивку, в iMPACT адрес 2 ревизии надо указывать 0х100000, потому что при записи адрес принимается номером байта! ААААА!!! ненавижу их! Теперь осталось раскодировать заголовок, потому что кроме GENERAL и BOOTMODE там делается еще что-то, и вот это что-то позволяет загружаться... upd: При правильном указании адреса и мой вариант загрузился! Непонятно почему не попав в прошивку не появлялось флагов fallback и так далее... почему она возвращалась к 1 прошивке никак не отметив этого факта... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 11 сентября, 2015 Опубликовано 11 сентября, 2015 · Жалоба ТРАМ ПАМ ПАМ этот ксалинкс! 1. установка флага reset on CRC error и снятие не влияет на вид прошивки. Это ошибка Bitgen надо ставить руками в cor2 регистре 2. CWDT как я понял в начальный момент он вообще выключен, и если руками его не взвести больше 0x0201 он ничего и не делает... в мультибуте есть какая то странная запись в регистр HC_OPT_REG, ставиться бит INIT_SKIP - хрен его знает что это значит... описания нет, может кто знает? Но самое главное что BOOTHIST не отображает статус загрузки при удачных загрузках... в описании 2 части про этот регистр. В описании регистра 2 бит зарезервирован, в описании процесса сохранения, 2 бит - IPROG. По факту IPROG не появляется при загрузках... чтоб их!!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 14 сентября, 2015 Опубликовано 14 сентября, 2015 · Жалоба 1,2 - это бред конца трудовой недели:) все там ставиться, просто уже внутри прошивки, во всяком случае в итоге стояло, может нельзя выключить, но для режима по умолчанию все ок. INIT_SKIP - это какая то фигня для заголовка, в нормальной прошивке этот бит снимают, ставят только в заголовке, видать какой-то служебный флаг, если поставить в прошивке вообще не загрузиться... ну и BOOTHIST отказывается просто ничего не отражает при IPROG. видать чего то у ребят не получилось http://china.xilinx.com/support/answers/37910.html "BOOSTS register is written either because of an End Of Startup event or a fallback event. This happens after the first configuration attempt. It is only cleared by POR or a PROG. In other words, after the first configuration is successful, BOOTSTS register data is retained until there is a POR event or PROG is pulsed. When you Multiboot to a new location using an IPROG, the BOOTSTS register is not updated. This means it cannot be used to track multiboot attempts to new locations as part of a safe update process." так что все работает, перегружается, возвращается по фал баку, но в этом регистре ни коем образом не отмечается... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться