Birkov Max
May 15 2017, 12:15
Здравствуйте всем. Новичек я, не пинайте сильно.
Вообщем попался в ремонт дисплей от фронтального погрузчика, процессор Cirrus ARM9 EP9307.
Проблема нет старта. Через J link видится, даже вычитал boot rom.
Путем прямых замеров удалось установить что:
- при зажатом RESET на шине данных SDRAM 32 вывода подтягиваются к 3.3V
- при отпущенном RESET 16 в 0.0V и 16 в 3.3V
Из этого следует что:
- проц вышел из стоя
- SDRAM программно сконфигурировано на 16b а не 32b
Вопрос, собственно в какой программе я смогу симетировать то есть используя boot rom и посмотреть как конфигурируются соответствующие регистры.
На этом форуме много ссылок касательно cirrus, но arm.cirrus.com не работает
Спасибо тому кто пнет в нужном направлении.
aaarrr
May 15 2017, 12:55
Цитата(Birkov Max @ May 15 2017, 15:15)

Из этого следует что:
- проц вышел из стоя
- SDRAM программно сконфигурировано на 16b а не 32b
Каким образом следует?
Откуда загружается процессор - SPI или из параллельной флеш? Есть активность на этих интерфейсах после сброса?
Birkov Max
May 15 2017, 13:11
На SPI тишина, активность только на флеш и шине озу короткое время после сброса.
Но процесс загрузки, как я понимаю, еще не начинается, а происходит Remap.
Светодиоды красный и зеленый постоянно светятся.
Вот выдержка из документации на проц.
4.1.2.2 Boot Algorithm
The steps in the software boot process are:
1. Remap memory
2. Turn the green LED off and the red LED on
3. Disable the Watchdog timer
4. Read the Boot State
5. Set up the Clocks to run from external clocks (PLLs are not configured)
6. Based on the Boot State memory width, follow steps A, B, and C.
A. Initialize the SYNC Flash and SMC memory interfaces for slow (maximum
compatibility) operation
B. Initialize the SDRAM interfaces.
C. Perform minimal memory tests
7. Based on the contents of the SysCfg register, start serial download (see Figure 4-1), and
then follow Steps A, B, C, D, E, and F.
A. Initialize UART1 to 9600 baud, 8 bits, no parity, 1 stop bit
B. Output a ”<” character
C. Read 2048 (decimal count) characters from UART1 and store these in the internal
Boot buffer (alias for the Ethernet Mac buffer)
D. Output a ”>” to signify 2048 characters have been read
E. Turn on Green LED
F. Jump to the start of the internal Boot Buffer
aaarrr
May 15 2017, 14:29
Цитата(Birkov Max @ May 15 2017, 16:11)

Светодиоды красный и зеленый постоянно светятся.
Если зелёный горит, значит процессор начал загрузку. Повреждено солдержимое флеш, скорее всего.
Birkov Max
May 15 2017, 15:59
Цитата(aaarrr @ May 15 2017, 18:29)

Если зелёный горит, значит процессор начал загрузку. Повреждено солдержимое флеш, скорее всего.
Если так, то печалька.
Вот меня дерзает состояние шины данных озу, всетаки конфигурация шины происходит во внутреннем загрузчике или я не прав.
Почему она 16bit.
Еще раз почитал мануал в части конфигурации, оказывается конфигурация выполняется hardware, а прочитать состояние можно через регистр SysCfg по адресу 0x8093_009C.
aaarrr
May 15 2017, 19:03
Цитата(Birkov Max @ May 15 2017, 18:59)

Вот меня дерзает состояние шины данных озу, всетаки конфигурация шины происходит во внутреннем загрузчике или я не прав.
Почему она 16bit.
SDRAM инициализируется после загрузчика, он умеет загружать только во внутреннее ОЗУ (буфер Ethernet) или запускать прямое выполнение из параллельной флеш. Данные на шине, скорее всего, приходят из флеш, поэтому и 16 бит. Посмотрите, идет ли тактирование SDRAM.
Birkov Max
May 15 2017, 19:29
Тактирование есть, на адресной шине есть пакеты кратковременно, и соответственно на шине данных, вот только в тех преславутых 16, в других 16 одиночные позывы. SDRAM менял, два чипа по 128b, чип селект запаралелен.