Показать полную графическую версию : Адреса и их обозначение
BoBaH 13
19-04-2024, 18:54
Что это за адреса 0xBC100000 и т.п.?
Это не флешечные. Эти слишком большие для неё. Они там 6-ти значные.
Как по ним определить адрес на флешке?
https://i.postimg.cc/N0G03VdP/adresa.jpg
Флешки имеются ввиду от 4 до 32 мегабайт.
Как по ним определить адрес на флешке? »а что тут думать?
Flash Bank #1
Flash Bank #2
Либо по питанию USB не хватает, либо просто банально банки "дырявые".
BoBaH 13
20-04-2024, 12:33
Вот этот скрипт целиком (https://cloud.mail.ru/public/Shax/SY2kMKUca). Смотреть с FLASH and environment organization. Это примерно 1/3 смещения) от начала.
Цель: дать сценарий разметки флешки на 16 Мб с Non Dual Image c MT7628_ASIC_BOARD.
Насколько я понял -- это код из проекта U-boot.
Если верить публикации
https://habr.com/ru/articles/585432/
то там такие адреса -- норма.
В целом не хватает подробностей проекта.
Ну и/или -- зачем дались именно эти адреса?
Да. Больше подробностей. С вводными, описанием действий и тд.
BoBaH 13
25-04-2024, 21:13
Насколько я понял -- это код из проекта U-boot. »
Всё верно.
Задача: Апнуть роутер тп-линк 840 6.2 по флешки с 4 до 16 и оперативку с 32 до 64 Мб.
Цель : Разметить 16 Мб флешку. Для этого надо сделать необходимые настройки в убутособирателе. Файл выше от него.
Надо сделать бин файл который потом прикручивается в прошивку флешки вместе с фактори. Он рулит разметкой флешки согласно DTS.
Вот пример разметки (https://github.com/openwrt/openwrt/blob/d1016446dacd16a87e807478227f4f96a0a37a45/target/linux/ath79/dts/qca9533_tplink_tl-wr842n-v3.dts#L119C4-L120C1) на аналогичном устройстве с 16 Мб в стоке. См. с 120 строки.
А дефолтный убутособиратель целиком здесь (https://cloud.mail.ru/public/mWa6/dpCR2tEfN).
Данный роутер в стоке с флешкой на 4 Мб которая делится на 3 раздела:
Uboot - загрузчик 64 Кб
Firmwarw - ОС 4 Мб - 64 Кб - 64 Кб
Factory - 64 Кб вайфайный уникальный для каждого роутера раздел. В других роутерах с чипами atheros называется ART.
В моём чип медиатековский МТ7628.
Этот убутособиратель из сырцов для 840-го с оф сайта.
Собран на основе для устройств с процами rt2880.
ХЗ как именно собираются дефолтные бины с одним разделом. В том файле сценарии уже для Dual Image.
С адресами выше разобрался. Там например даётся адрес старта (имхо отбалдёвый) разметки флешки на 2 Мб в 16-й системе:
BC000000 - при переводе его в 10-ю получится 3154116608
Первый банк памяти FLASH_1 начинается тоже с этого места.
BC100000 - это адрес уже FLASH_2 и при переводе в 10-ю получится 3155165184
3155165184 - 3154116608 = 1048576
1048576 / 1024 / 1024 = 1
Т.е. на 2 Мб флешке второй банк памяти находится на смещении 1 Мб от старта.
Убутособиратель для большого числа платформ и там применяются разные значения старта.
Все файлы о которых идёт речь имеются выше по ссылке здесь. Я например всё открываю с помощью нотепад++ включив подсветку синтаксиса. Только которые .о кракозябристые.
В стококовом убутособирателе выбор размера флеш включается только при активации Dual Image. Но без него тоже можно добавив в настройки для 7628-го в файле config.in (это в самом конце файла):
define_bool ON_BOARD_SPI_FLASH_COMPONENT y
choice 'Flash Size / PA3MEP FLASH' "4M ON_BOARD_4M_FLASH_COMPONENT \
8M ON_BOARD_8M_FLASH_COMPONENT \
16M ON_BOARD_16M_FLASH_COMPONENT
" 4M
if [ "$DUAL_IMAGE_SUPPORT" = "y" ]; then
choice 'Flash Size for DUAL IMAGE' "4M ON_BOARD_4M_FLASH_COMPONENT \
8M ON_BOARD_8M_FLASH_COMPONENT \
16M ON_BOARD_16M_FLASH_COMPONENT
" 4M
fi
Упомянутый ранее файл это include / configs / rt2880.h. Взялся за него по аналогии с этим (https://forum.archive.openwrt.org/viewtopic.php?id=32512&p=1).
Пока придумал по принципу: Если не нравятся правила, то задай свои. Вставил в rt2880.h на третьей строчке после коммента:
/*
* FLASH and environment organization
*/
#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */
#define CFG_MAX_FLASH_SECT (263) /* max number of sectors on one chip */
вот это:
#if defined (MT7628_FPGA_BOARD) || defined (MT7628_ASIC_BOARD)
#define PHYS_FLASH_START 0xBC000000
#elif defined (ON_BOARD_8M_FLASH_COMPONENT)
#define PHYS_FLASH_1 0xBC000000
#elif defined (ON_BOARD_16M_FLASH_COMPONENT)
#define PHYS_FLASH_1 0xBC000000
#endif
Проверял. Бин собирается. Про ошибки не пишет.
Но пообщался с челом который в этой теме. У него другой принцип деления флешки. Вернее место откуда даётся сценарий.
Вот Гитхаб (https://github.com/Ser9ei/u-boot_mtk) его. Сценарий деления задан в profiles/TP-LINK/TP-LINK_WR840N_V6_SPI-16M-64M.config аналог которого в стоковом убутособирателе в корневой папке WR840NV6_20_config.
Вот теперь вскочил вопрос. Откуда вернее задавать сценарий для разметки флешки?
С конфига для определённой модели или с rt2880.h?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.