Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: redboot & ixp425
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
lexaiu4
Здравствуйте!

Проблема в следующем:
Есть плата ixp425 c двумя флешками по 16 мб каждая!

при заливке через jtag образа redboot плата постоянно уходит в ребут возможно ли такое при не верной конфигурации флешки в исходниках redboota?

как правильно сконфигурить под две флешки редбут?

собираю redboot на основе grg
andron86
Цитата(lexaiu4 @ Oct 6 2008, 14:08) *
Здравствуйте!

Проблема в следующем:
Есть плата ixp425 c двумя флешками по 16 мб каждая!

Вы бы хоть описали какие флэшки, как подсоединены.

Цитата(lexaiu4 @ Oct 6 2008, 14:08) *
при заливке через jtag образа redboot плата постоянно уходит в ребут возможно ли такое при не верной конфигурации флешки в исходниках redboota?

всё возможно, но обычно если флэш и память то редбоот вообще не грузится.
lexaiu4
Цитата(andron86 @ Oct 6 2008, 16:19) *
Вы бы хоть описали какие флэшки, как подсоединены.
всё возможно, но обычно если флэш и память то редбоот вообще не грузится.

флеш - 2 чипа js28f128
как точно подсоединенны сказать не могу производитель плат документацию не дает, но думаю последовательная ораганизация памяти
andron86
Цитата(lexaiu4 @ Oct 6 2008, 14:36) *
флеш - 2 чипа js28f128
как точно подсоединенны сказать не могу производитель плат документацию не дает, но думаю последовательная ораганизация памяти

ну поищите в сурсах что то типа FLASH_DEVICES FLASH_WIDTH FLASH_SERIES что там установлено.

хотя вспоминаю у меня проблема с 28FxxxP30 была с flash_unlock_block функцией smile.gif
lexaiu4
Цитата(andron86 @ Oct 6 2008, 17:02) *
ну поищите в сурсах что то типа FLASH_DEVICES FLASH_WIDTH FLASH_SERIES что там установлено.

хотя вспоминаю у меня проблема с 28FxxxP30 была с flash_unlock_block функцией smile.gif

ecos/packages/devs/flash/arm/grg/current/include/grg_strataflash.inl

#define CYGNUM_FLASH_DEVICES_PER_CS (1) // 1 device per chip select
#define CYGNUM_FLASH_BASE_MASK (0xFF000000u) // 16Mb
#define CYGNUM_FLASH_CS_NUM (2) // 2 flash chips
#define CYGNUM_FLASH_BASE (0x50000000u)
#define CYGNUM_FLASH_WIDTH (16)
#define CYGNUM_FLASH_BLANK (1)

вот здесь я прописал что два чипа

когда зашил redboot
+$T0a0f:5002939c;0d:0000b5d0;#b3$T0a0f:5002939c;0d:0000b5d0;#b3$T0a0f:5002939c;0d:0000b5d0;#b3$T0a0f:5

а если прописываю что один чип то грузиться и ребутиться потом

#define CYGNUM_FLASH_DEVICES_PER_CS (1) // 1 device per chip select
#define CYGNUM_FLASH_BASE_MASK (0xFF000000u) // 16Mb
#define CYGNUM_FLASH_CS_NUM (1) // 1 flash chips
#define CYGNUM_FLASH_BASE (0x50000000u)
#define CYGNUM_FLASH_WIDTH (16)
#define CYGNUM_FLASH_BLANK (1)
andron86
Цитата(lexaiu4 @ Oct 6 2008, 16:46) *
ecos/packages/devs/flash/arm/grg/current/include/grg_strataflash.inl

#define CYGNUM_FLASH_DEVICES_PER_CS (1) // 1 device per chip select
#define CYGNUM_FLASH_BASE_MASK (0xFF000000u) // 16Mb
#define CYGNUM_FLASH_CS_NUM (2) // 2 flash chips
#define CYGNUM_FLASH_BASE (0x50000000u)
#define CYGNUM_FLASH_WIDTH (16)
#define CYGNUM_FLASH_BLANK (1)

вот здесь я прописал что два чипа

когда зашил redboot
+$T0a0f:5002939c;0d:0000b5d0;#b3$T0a0f:5002939c;0d:0000b5d0;#b3$T0a0f:5002939c;0d:0000b5d0;#b3$T0a0f:5

а если прописываю что один чип то грузиться и ребутиться потом

#define CYGNUM_FLASH_DEVICES_PER_CS (1) // 1 device per chip select
#define CYGNUM_FLASH_BASE_MASK (0xFF000000u) // 16Mb
#define CYGNUM_FLASH_CS_NUM (1) // 1 flash chips
#define CYGNUM_FLASH_BASE (0x50000000u)
#define CYGNUM_FLASH_WIDTH (16)
#define CYGNUM_FLASH_BLANK (1)

Да нет, это скорее всего не флэш. Вы ресет пин осцилографом смотрели, во флэш уже что-нибудь прописывали, типа fconfig, операционка итд. , что выдаёт redboot в консоль?
lexaiu4
Цитата(andron86 @ Oct 6 2008, 22:15) *
Да нет, это скорее всего не флэш. Вы ресет пин осцилографом смотрели, во флэш уже что-нибудь прописывали, типа fconfig, операционка итд. , что выдаёт redboot в консоль?




А не подскажите что в redboot нужно сконфигурить для 2 чипов flash?
andron86
Цитата(lexaiu4 @ Oct 7 2008, 11:32) *
А не подскажите что в redboot нужно сконфигурить для 2 чипов flash?

это смотря как они подсоединены. CYGNUM_FLASH_DEVICES_PER_CS CYGNUM_FLASH_WIDTH и CYGNUM_FLASH_CS_NUM ну и естественно соответствующие регистры ixp425. у вас консоль то работает? а то может всё проще ctl+c :-)
lexaiu4
консоль точно работает если выводиться данные

как флешки подключены не знаю, у них общее адресное простанство видиться как единое целое из linux

а вот как с конфигурировать CYGNUM_FLASH_DEVICES_PER_CS CYGNUM_FLASH_WIDTH CYGNUM_FLASH_CS_NUM?

как я понимаю необходимо только CYGNUM_FLASH_CS_NUM (2) указать или нет так?

и какие регистры нужно подправить?
andron86
Цитата(lexaiu4 @ Oct 7 2008, 13:25) *
консоль точно работает если выводиться данные

как флешки подключены не знаю, у них общее адресное простанство видиться как единое целое из linux

а вот как с конфигурировать CYGNUM_FLASH_DEVICES_PER_CS CYGNUM_FLASH_WIDTH CYGNUM_FLASH_CS_NUM?

как я понимаю необходимо только CYGNUM_FLASH_CS_NUM (2) указать или нет так?

и какие регистры нужно подправить?

я не понимаю при чём тут флэш?? откуда Вы взяли этот редбот, Вы его сами под плату затачивали? покажите что консоль выплёвывает.
lexaiu4
Цитата(andron86 @ Oct 7 2008, 15:35) *
я не понимаю при чём тут флэш?? откуда Вы взяли этот редбот, Вы его сами под плату затачивали? покажите что консоль выплёвывает.

Давайте по порядку!
1)Сначала на этой плате( с двумя чипами флеш) был сторонний редбут - он не устраивал по нескольким причинам!
2)У нас есть похожие платы с одной флешкой с нашим редбутом - с ним все отлично работает
3)Когда собрали свою RAM версию редбута и загрузи на этой плате то редбут наш запускался доходил до командной строки и потом плата уходила в ресет

4) Оказалась на этой плате gpio 12 выведена на внешний watchdog а в коде редбута происходит инит
// IO RESET_N (DSP/SLICs)
HAL_GPIO_OUTPUT_SET(GPIO_IO_RESET_N);
HAL_GPIO_OUTPUT_ENABLE(GPIO_IO_RESET_N);

GPIO_IO_RESET_N - как раз и есть 12 gpio
5) этот инит был выкинут и выставлена поддержка двух чипов памяти путем указания общего размера флеш в grg.h
#define IXDP_FLASH_SIZE 0x02000000
и в grg_strataflash.inl
#define CYGNUM_FLASH_CS_NUM (2)
6) с такими параметрами RAM версия редбута запустилась не ресетилась и видела всю флешку
7) зашили ROM версию и получили в консоли $T0a0f:500211fc;0d:0000b18c;#d9$T0a0f:500211fc;0d:0000b18c;#d9$T0a0f:500211fc;09
8) если убрать поддержку двух чипов оставить как один то редбут запускает до командной стороки и уходит в ресет

Вот и два вопроса как правильно сконфигурить ребдут под две флешки и из-за чего возможен ресет?

П.С. версия редбута 2.04,которую портируем на эту плату, взята с сайта intel
andron86
у вас есть что-нибудь типа CYGNUM_FLASH_SERIES ? strata.c посмотрите, в vectors.S reset_vector: куда кажет, вот там и смотрите инициализацию.
Цитата
4) Оказалась на этой плате gpio 12 выведена на внешний watchdog а в коде редбута происходит инит
// IO RESET_N (DSP/SLICs)
HAL_GPIO_OUTPUT_SET(GPIO_IO_RESET_N);
HAL_GPIO_OUTPUT_ENABLE(GPIO_IO_RESET_N);

GPIO_IO_RESET_N - как раз и есть 12 gpio
5) этот инит был выкинут и выставлена поддержка двух чипов памяти путем указания общего размера флеш в grg.h

как это убрали - это просто инициализация пина. ватчдок что-ли убрали? Ещё раз спрашиваю Вы ресет пин осцилографом смотрели?
Цитата
1)Сначала на этой плате( с двумя чипами флеш) был сторонний редбут - он не устраивал по нескольким причинам!

ну вот и посмотрите как там всё устроено
lexaiu4
Цитата(andron86 @ Oct 7 2008, 17:06) *
ну вот и посмотрите как там всё устроено

если бы у меня были бы коды стороннего редбута я бы не спрашивал совета, а сам в коде бы нашел!

Цитата(andron86 @ Oct 7 2008, 17:06) *
как это убрали - это просто инициализация пина. ватчдок что-ли убрали? Ещё раз спрашиваю Вы ресет пин осцилографом смотрели?

закоментировал строки инциализации. осцилографом посмотреть не могу - нет его у нас =(
andron86
Цитата(lexaiu4 @ Oct 7 2008, 15:33) *
закоментировал строки инциализации. осцилографом посмотреть не могу - нет его у нас =(

Ну Вы даёте smile.gif. Вы хоть знаете что у Вас на плате находится? Описание то к железу должно быть. В общем читайте IXP45X мануал "Expansion Bus Controller", ищите где, там описанные регистры, конфигурируются и проверяйте всё ли Вы правильно делаете. Разберитесь с чип селектами, что где и как подсоеденено (CYGNUM_FLASH_CS_NUM это что-то с чип селектами, посмотрите что оно делает).
lexaiu4
Цитата(andron86 @ Oct 7 2008, 20:29) *
Ну Вы даёте smile.gif. Вы хоть знаете что у Вас на плате находится? Описание то к железу должно быть. В общем читайте IXP45X мануал "Expansion Bus Controller", ищите где, там описанные регистры, конфигурируются и проверяйте всё ли Вы правильно делаете. Разберитесь с чип селектами, что где и как подсоеденено (CYGNUM_FLASH_CS_NUM это что-то с чип селектами, посмотрите что оно делает).

В общем совета никого это и так понятно особенно убила то что ixp45x это общего не та серия процов. Копаться документации это и так понятно!
andron86
Цитата(lexaiu4 @ Oct 7 2008, 18:41) *
В общем совета никого это и так понятно особенно убила то что ixp45x это общего не та серия процов. Копаться документации это и так понятно!

то что я Вам и сказал:
CYGNUM_FLASH_DEVICES_PER_CS
CYGNUM_FLASH_BASE_MASK
CYGNUM_FLASH_CS_NUM
CYGNUM_FLASH_BASE
CYGNUM_FLASH_WIDTH
CYGNUM_FLASH_BLANK
это и есть "конфигурация" флэша для редбоота, остальное конфигурация процессора под флэш.
lexaiu4
Цитата(andron86 @ Oct 7 2008, 20:58) *
то что я Вам и сказал:
CYGNUM_FLASH_DEVICES_PER_CS
CYGNUM_FLASH_BASE_MASK
CYGNUM_FLASH_CS_NUM
CYGNUM_FLASH_BASE
CYGNUM_FLASH_WIDTH
CYGNUM_FLASH_BLANK
это и есть "конфигурация" флэша для редбоота, остальное конфигурация процессора под флэш.

спасибо
islavv
Цитата(lexaiu4 @ Oct 6 2008, 15:08) *
Здравствуйте!

Проблема в следующем:
Есть плата ixp425 c двумя флешками по 16 мб каждая!

при заливке через jtag образа redboot плата постоянно уходит в ребут возможно ли такое при не верной конфигурации флешки в исходниках redboota?

как правильно сконфигурить под две флешки редбут?

собираю redboot на основе grg

Уважаемые
А зачем вторую флэш в редбут совать?
Linux можно с первой флэши поднять а вторая потом будет видна
Или вы захачить вторую флэшку хотите - типа как у на файрволле первая NOR бутовая а вторая с ядром и очень хочется redboot загрузить чтобы вторую прочитать?

Цитата(islavv @ Nov 11 2008, 19:38) *
Уважаемые
А зачем вторую флэш в редбут совать?
Linux можно с первой флэши поднять а вторая потом будет видна
Или вы захачить вторую флэшку хотите - типа как у на файрволле первая NOR бутовая а вторая с ядром и очень хочется redboot загрузить чтобы вторую прочитать?

кстати платка у меня интересная - первая флэшка AT49LV040 а вторая Samsung K9F5608U0B-YCB0
вот с AT хотелось бы ее кастомный redboot выкинуть и свой поставить ((
только у меня Olimex ARM USB-Tiny с OpenOCD нормально в нее не пишет
вернее я пробовал писать в память Redboot но из памяти поднять не могу а флаш перетирать не хочу пока на все 100 не уверен
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.