Разработка и портирование прошивок для устройств на SOC Amlogic



Реп: (543)
Разработка и портирование прошивок для устройств на SOC Amlogic

Устройство или ОС, прошивка: Android OS
Полезная информация о портирование и разработке прошивок, обсуждение различных нюансов.

Сообщения, не относящиеся к теме обсуждения (оффтоп), удаляются без предупреждения.

Готовые прошивки
Сбор отладочной информации(лог-файлов)
UART

Сбор лог-файлов в android


Компиляция и редактирование разделов(PARTITION) Android
Драйверы и утилиты
Полезная информация


В теме нет куратора. По вопросам наполнения шапки обращайтесь к модераторам раздела через кнопку Изображение под сообщениями, на которые необходимо добавить ссылки.

Сообщение отредактировал Boy77ruS - 31.08.22, 22:39
Причина редактирования: Авторский подъем девайса на amlogic m3



Реп: (543)
toxtarparavos @ 11.07.20, 18:44 *
возможно вам понадобиться включить питание в узле usb3phy@d0078080 на GPIOAO_5 (если он не занят уже)
понял, попробую. Dtb на 9 как обычно редактируется?



Реп: (75)
да обычно, если через dd, просто обрежьте заголовок.. первые 2048 байт и потом по смещению отжимайте dts



Реп: (75)
@Brahner
пример распаковки multi-dtb в Linux, нужны device-tree-compiler (DTC), за ранее скомпилированый dtbTool, hexdump
1. Узнаем смещение, по которому хранятся отдельные dts
hexdump _aml_dtb.PARTITION | grep '0dd0 edfe'

я получил следущее
0000800 0dd0 edfe 0000 77e0 0000 3800 0000 38c8
000f000 0dd0 edfe 0000 77e0 0000 3800 0000 38c8

где 0dd0 edfe (d00d feed это header_magic single dtb, hexdump его отображает немного наоборот), 0х00000800 смещение 1-го dts,
0x0000f000 смещение 2-го dts.
0х00000800=2048byte (размер aml_dt_header multi dtb)
0x0000f000=61440byte
2. Теперь сама разборка/отжатие dts
dd if=_aml_dtb.PARTITION of=meson0.dtb bs=61440 && dd if=meson0.dtb skip=1 bs=2048 > gxm_q201_2g.dtb; rm meson0.dtb
dd if=_aml_dtb.PARTITION skip=1 bs=61440 > gxm_q201_3g.dtb
dtc -I dtb gxm_q201_2g.dtb > gxm_q201_2g.dts && dtc -I dtb gxm_q201_3g.dtb > gxm_q201_3g.dts


3. Редактируем dts
4. Удаляем старые бинарики, иначе dtbTool соберёт как старые, так и новые воедино
rm *g.dtb

5. Собираем dts в single dtb и конвертируем в multi-dtb
dtc -I dts -O dtb -o dtb_0.dtb gxm_q201_2g.dts && dtc -I dts -O dtb -o dtb_1.dtb gxm_q201_3g.dts
rm _arm_dtb.PARTITION && ./dtbTool -o _aml_dtb.PARTITION -s 2048


Сообщение отредактировал toxtarparavos - 08.09.20, 13:03
Причина редактирования: поправка описания



Реп: (543)
* toxtarparavos, я на 7 в hex editor находил D0 0D FE ED, а строки перед этим удалял. Конвертировал dtb в dts. Редактировал и сохранил сингл для 3г.
Огромное спасибо за полную инструкцию. Вы как всегда кладец знаний. Спасибо

Сообщение отредактировал Brahner - 11.07.20, 21:08



Реп: (75)
@Brahner
Oтредактируйте узел usb3phy@d0078080 следующим образом.., если в последних сборках dtb код не менялся, должно выглядеть так:
usb3phy@d0078080 {
compatible = "amlogic, amlogic-new-usb3";
portnum = <0x0>;
reg = <0x0 0xd0078080 0x0 0x20>;
phandle = <0x5c>;
otg = <0x1>;
gpio-vbus-power = "GPIOAO_5";
gpios = <0x94 0x5 0x0>;
phandle = <0x51>;
};


значение 0х94 -> "gpios = <0x94 0x5 0x0>;" должно совпадать со значением phandle = <0x94>; узла bank@14 (gpio_ao bus).
Второе значение 0х5 компайлер берёт здесь #include <dt-bindings/gpio/gxl.h>, линия "#define GPIOAO_5 5".
Родной код можете посмотреть здесь, линия 632.
Успех не гарантирую, возможно падение ядра..



Реп: (543)
* toxtarparavos,на тот момент я использовал прошивку от Davietpda для ddr3/ddr3 образ aml_upgrade_package_s912-pie-beta2.img и ваш загрузчик для lpddr3. Количество озу в андроид я не проверял, но предполагаю только 2гб из 3гб. В вашем загрузчике правильно определяется количество моей памяти, а потом грузится сингл дтб. Но объем я в логе не нашел. Дтб по заголовку едет для 2гб.
amlogic-dt-id = "gxm_q201_2g"
По поводу usb, там gpio не прописано.
usb3phy@d0078080 {
compatible = "amlogic, amlogic-new-usb3";
portnum = <0x00>;
reg = <0xd0078080 0x20>;
phandle = <0x61>;
Не пойму, в тот момент прошивка от Davietpda была одна. Спросил, у кого то есть проблемы с usb, ответ был нет. Хотя, сейчас этого поста уже нет. По этому я подумал, что проблема из-за загрузчика. Сейчас не знаю, поправил ли автор проблему с usb в версии для ddr3/ddr4. Зато у него вышла своя версия для lpddr3, aml_upgrade_package_s912-pie-beta2-lpddr3-3G-wifi9377-1000, у которой нет проблем с usb и с 3гб.
Прикрепленное изображение


Сообщение отредактировал Brahner - 13.07.20, 12:07



Реп: (733)
Подобрал навесной TWRP для Android 9 Pie для s912 но в нем многое не работает :D
Можно бекап на карту памяти сделать без дата раздела.
Ну и zip или img прошить вот пока и всё.


Завелся с использованием стокового/стандартного recovery (через пункт меню "Apply update from EXT" далее выбрать внешний носитель содержащий этот zip файл и после сам zip файл, sd карту "Apply from sdcard"

Скачать: Прикрепленный файлTWRP_322.zip ( 5.27 МБ )


Скачать: Прикрепленный файлTWRP_3.2.2_A95X_F2.zip ( 5.27 МБ )


Сообщение отредактировал Mediacenter - 18.07.20, 11:19
Причина редактирования: TWRP с vendor



Реп: (1086)
Девайс Satxtrem WT18 lp3/32 прошивка на 9 установилась, только при загрузке(кружочки) зависает на мертво, может дело в частоте памяти кто знает как понизить в прошивке?



Реп: (543)
* toxtarparavos,* HighwayStar,
Подскажите в вопросе. Например в прошивке ddr3/ddr4(про остальные версии не знаю)от Davietpda, идет singl-dtb, с заголовком на 2гб. В нем не прописано объем озу. Нет строк
memory@00000000 {
device_type = "memory";
linux,usable-memory = <0x0 0x100000 0x0 0x7ff00000>;
При этом, на 3гб приставке отображаются все доступное озу.
Прикрепленное изображение
Я так понимаю, на 2гб версия все так же будет работать. Правильно понимаю, теперь можно не делать отдельное дтб, для 512-3гб озу?



Реп: (1326)
M
Здравствуйте Уважаемые пользователи.
Вы находитесь в разделе Разработка.
Просьба внимательно ознакомится с Правилами раздела Объявление: Правила раздела "Android - Разработка и программирование" и Правила ресурса
В течение сегодняшнего и завтрашнего дня, в теме, и в шапке, будут произведены корректировки согласно правилам раздела.
Ссылки сторонних ресурсов будут удалены, согласно пункту правил раздела 3.4



Реп: (1415)
Brahner @ 13.07.20, 22:12 *
linux,usable-memory = <0x0 0x100000 0x0 0x7ff00000>;

Для 3 гб тут должно быть
linux,usable-memory = <0x0 0x100000 0x0 0xbff00000>;



Реп: (75)
Brahner @ 13.07.20, 16:12 *
Я так понимаю, на 2гб версия все так же будет работать. Правильно понимаю, теперь можно не делать отдельное дтб, для 512-3гб озу?

в стандартном коде убота совершается выбор нужного dt-id по размеру инициализированной памяти, используя только 2г dtb, вы вряд ли сможете прошить 3г девайс.. но я не в курсе что там daividpda использует



Реп: (1307)
* HighwayStar,
Привет, может быть у вас получится добавить в вашей multiwifi ещё один wifi чип 4335/6335 ampak.
Логи от вашей мульти и от стока 7.1.1, где wifi работает.
Прикрепленный файлdmesg_andr9.txt ( 466.71 КБ )

Прикрепленный файлdmesg_stock_andr7.txt ( 214.43 КБ )

Спасибо. Для тестов бокс приготовлен :D

Сообщение отредактировал 11asd11 - 13.07.20, 19:39



Реп: (780)
HighwayStar @ 13.07.20, 16:38 *
Для 3 гб тут должно быть


В 9 от DaivietPDA
прописано так
linux,usable-memory = <0x100000 0xbff00000>;



Реп: (674)
* sergej_a_g,

В моём случае, это неработает ((. Отображается 2.



Реп: (75)
* xam1988,
что у вас за зверь то такой, сделайте фото озу, нужно посмотреть на данные



Реп: (674)
* toxtarparavos,

H96 Pro plus [Android] (Пост michey #98153976)

Точно такая же как в посте.



Реп: (780)
* xam1988,

А прошивка какая ?



Реп: (75)
xam1988 @ 13.07.20, 21:51 *
Точно такая же как в посте

это не то, нужно точное наименование чипа озу, что бы вбить его в part number decoder производителя, тогда можно узнать точное значение CL и соответственно частоту инициализазии подогнать..
не поленитесь, откройте коробку..



Реп: (674)
* sergej_a_g,

Ваше же сборка, Андроид 6 отображает ОЗУ корректно.
X92 [Android] (Пост sergej_a_g #78123114)

Прикрепленное изображение


Полная версия   Текстовая версия

Помощь   Правила

Сейчас: 28.03.24, 22:56