![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
![]() |
#11 |
Senior Member
Регистрация: 17.02.2013
Адрес: Харьков
Сообщений: 235
Вес репутации: 690 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Если Вы про структуру флеш-памяти устройства, то тут есть информация (структура практически идентична на всех TP-Link'ах у которых в основе процессоры Atheros).
А здесь информация как это всё дело сохранить вместе или по отдельности. Вы должны понимать всю серьезность изменения загрузчика. U-boot это загрузчик устройства - микропрограмма по запуску и инициализации процессора, он вообще не должен изменяться. firmware(прошивка) - это программа выполняемая загрузчиком. Я должен Вас предупредить, что uboot в любом случае (даже если вы компилируете его стандартным методом) опасно заменять - если что-то случится, у вас будет "кирпич" - который восстановить без спец. оборудования невозможно. Я могу Вам предложить поискать другой GPIO сконфигурированный по умолчанию в IN направлении. Например, "поковыряв" загрузчик TL-MR3020, я обнаружил, что в загрузчике начальная конфигурация GPIO_OE имеет такой вид: Код:
... 2cr 00002e60: 3c03b804 lui $v1,0xb804 30r 00002e64: 24020cff move $v0,3327=0x0cff 34r 00002e68: ac620000 sw $v0,0($v1) # b8040000 ... Код:
0x0cff = 0b00000000000000000000110011111111 (1 = включено; 0 = выключено) ....9876543210 <= BIT и номер GPIO, и так до 29(кол-во GPIO на процессоре) Позже правда, тот же u-boot настраивает GPIO13...GPIO17 на Ethernet индикацию, но то уже раздел функций на линии GPIO. (Кстати, я говорил, что TL-MR3020 похож на TL-MR11U, и у меня есть предположение, что Вам не доступны некоторые потенциально свободные GPIO. Мне помнится, что человек на форуме OpenWRT просил освободить два GPIO 14-15(хотя я не уверен, что там будет ноль, пока грузится устройство), которые не было возможности контролировать на устройстве, вот ссылка изменений, которых я смог добиться от разработчиков. Можете пропатчить прошивку (профиль mach-tl-mr3020.c) по этому примеру. Как собрать собственную прошивку, смотрите соответствующий раздел.) Тут делаем еще один вывод, можно обойтись без правки u-boot, если воспользуемся GPIO8(usb power) или GPIO9(uart_in) - но тогда нужно править уже firmware(прошивку) - это более безопасно, чем править загрузчик. В этом случае нужно будет пожертвовать контролем питания usb-порта (это значит, что его нужно будет просто "отучить" от GPIO8, а на ногу МК, которая управляет питанием usb-порта подать такое же питание как у out=>high) или отключением UART порта в прошивке. Но если всё же надумаете править значение в загрузчике uboot, то как вы понимаете это рассчитывается так: Код:
0x0c7f = 0b00000000000000000000110001111111 (1 = включено; 0 = выключено) ....9876543210 <= BIT и номер GPIO, и так до 29(кол-во GPIO на процессоре) Т.ч. то, что я ранее показывал как панацею (значение 0xc03e001(WR703) и 0xc020001(MR3020)) не имеет смысла, т.к. 0xc03e001(WR703) включает OE на GPIO 13-17, 26, 27. А 0xc020001(MR3020) включает OE на GPIO 17, 26, 27. Документация, откуда я взял всю эту белиберду. Проверил на своем стареньком роутере. P.S. P.S. После такого откровения, я думаю, что я Вас точно отпугнул ![]() Последний раз редактировалось Dioptimizer; 28.12.2013 в 05:55. Причина: дополнение по поводу возможности включения gpio14-15 |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|