LINUX.ORG.RU

Allwinner A20 - определить где на плате UART и определить почему девайс может виснуть.

 


0

2

Есть платка. Типа cubietruck, на самом деле «вариация на тему», некая очередная итерация cubieboard, сделанная в виде некого A19 Android TV Box, который потом под заказ компании АТОЛ был чуть перепилен в продукт «Атол Хаб-19».

http://at89.ru/wp-content/uploads/2019/02/word-image-20.png

http://0x0.st/XZ-O.png - копия если первый урл сдох.

Хочется там найти UART, который при вдумчивом осмотре никак никуда не выведен и не распаян.

Единственное похожее на него место: смотрим на самый левый чип RAM, поднимаем взгляд чуть вверх - там кварц, идём от кварца влево - там нераспаянный трёхдырочный разьём. Это может быть оно? Дорожки идут прямо в камень. Если глянуть на даташит проца, где все ножки подписаны https://www.olimex.com/Products/SOM/A20/_resources/A20-Brief-2013-02-27.pdf - UART там явно не обозначен, ну может через GPIO реализован как-то какой-то, хз.

Так вот, задача проверить эти три дырки на то, являются ли они UART. Берём USB->TTL 3.3V штуку, втыкаем GND, TX, RX в эти дырки в разных комбинациях и пытаемся увидеть выхлоп. Вопрос: достаточно ли будет напихать на линии TX, RX по резистору в 1 кОм дабы не спалить этот A20 проц в случае чего?

Второй вопрос: как вообще дебажить такого рода железки на предмет зависания? Даже не кернел-паника, а просто впадания в говнище? Работала-работала день, херак стала кирпичом. Питание выдернули, вернули - дальше работает. Народ на форумах что-то там обсуждает про игры с параметрами U-Boot в области частот RAM. Вот думаю какой-бы физический интерфейс с такого рода железкой иметь, чтобы понимать что же в ней происходит. Пока что самым очевидным приколом кажется проблема с питанием, типа нагрузить оба ядра какой-то хренью и БП просаживается, от чего всё встаёт колом. Но там БП штатный, 5V 2A, должно хватать…

Выкинуть и купить нормальное - совет понятный.

Вполне возможно что чип труп.
У этих A20 качество отвратительное было
по поводу поиска uart - обычно сначала сединяют землю. её просто найти - она - минус на питании + она присутствует на многих интерфейсах.
Дальше нужно найти TX на плате. Включаешь usb-ttl со скоростью 115200 и тыкаешься его RX'ом в предполагаемый TX, должен получиться текст загрузчика итд.
uart может быть объёдинён с gpio - смотри в конфигурацию pinmux в fex файлах. Но дефолт должен быть как у A10 (они pin-совместимые).
Память инициализируется загрузчиком, потому вероятно надо будет выставлять его параметры прямо в исходниках u-boot.

mittorn ★★★★★
()

проверка на уартность достаточно элементарна и делается напряжометром - на TX выходе рабочего уарт должен быть уровень единицы - сиречъ напряжение питания.
RX иногда подтянут к vcc иногда нет.

вообще uart это програмные игрушки, а не дебаг. для дебага должен быть выведен JTAG вот в нем (при наличии допуска конечно же) вообще всё можно набедокурить.

pfg ★★★★★
()
Ответ на: комментарий от lesopilorama

Ну я не говорю, что это 100% так. Просто не стоит исключать такую возможность. Аппаратный watchdog там есть какой-нибудь? Может приколхозить внешний?

mittorn ★★★★★
()
Ответ на: комментарий от pfg

монолитность линукса очень часто приводит к полному затыку всего кроме консолей по весьма пустяковым, казалось бы, поводам, так что проверить uart всё-таки есть смысл.
Но мне на тегре это нифига не помогало, ничего полезного при зависании не выводилось ни в uart ни в ramops

mittorn ★★★★★
()

Пока что самым очевидным приколом кажется проблема с питанием, типа нагрузить оба ядра какой-то хренью и БП просаживается, от чего всё встаёт колом. Но там БП штатный, 5V 2A, должно хватать…

Предлагаю до начала ТБМ взаимодействия с консолью:
0 Поменять БП / поменять конденсатор в БП
1 Поменять конденсатор на плате около разъема питания (маленький бочёнок электролит)
2 Наколхозить радиатор на проц

2015 год как ни как.

anonymous
()
Ответ на: комментарий от anonymous

Вот тоже обо всём этом подумал. А пока что заюзал аппаратный /dev/watchdog и это уже за последнюю ночь однажды, как ни странно, железку перезагрузило. На железке перед этим наблюдался пестетс: моя самописная софтина впала в бесконечный цикл и усрала /var/log/syslog повторяющимися сообщениями, в сотку стояло два процесса - rsyslogd и journal-что-то-там - файлы ротировали. Корень был ro примонтирован, поэтому всё это в памяти, но в целом ясно как могла отвалиться жопа: именно цепь питания, повышенное потребление тока в моменте критично просадило напругу. Странно только что апаратный watchdog внутри того же процессора справился с задачей, а не так же завис нахрен. Ещё хочу нагрузить оба ядра каким-нибудь калом уровня sha1sum /dev/urandom и померять мультиметром ток потребляемый и напругу. У меня к железке подключен ещё один USB-девайс довольно жрущий, но подвисания наблюдались с разными внешними USB девайсами: с этим «жрущим» и с вебкамерой. Хотя оба жрали, оба греются. Вебка в HD гнала картинку, а этот жрущий тоже мегабит 10 USB трафика потреблял и грелся (TV тюнер).

lesopilorama
() автор топика
Последнее исправление: lesopilorama (всего исправлений: 3)

Ты даташит приложил, там прямо написано на каких пинах юарты висят, прозвони выходы и всё.

Вопрос: достаточно ли будет напихать на линии TX, RX по резистору в 1 кОм дабы не спалить этот A20 проц в случае чего?

Если хочется надёжно то возьми оптическую развязку для UART.

Но учитывая что плата сама непонятная то и результат непонятный будет, методом тыка короче раз нет схемы развязки всей платы. А ещё никто не гарантирует что для активации юарта не нужно перемычку где кинуть или наоборот выпаять что-то :)

Может на железных форумах поспрашивать сначала типа cxem.net или типа того.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)

никак ты отвал платы с linux не отладишь по uart, на плате может любой элемент со временем деградировать от процессора до переходных отверстий и при нагреве увеличивать ток потребления, при этом система тупо повиснет и всё.

можно попробовать взять БП с бОльшим током или как-то мониторить его напряжение внешне, если есть подозрение, что это из-за питания.

но может ведь сбоить не только из-за питания, а из-за ошибок внешней памяти, например.

anonymous
()
Ответ на: комментарий от lesopilorama

моя самописная софтина впала в бесконечный цикл и усрала /var/log/syslog повторяющимися сообщениями, в сотку стояло два процесса - rsyslogd и journal-что-то-там - файлы ротировали. Корень был ro примонтирован, поэтому всё это в памяти, но в целом ясно как могла отвалиться жопа: именно цепь питания, повышенное потребление тока в моменте критично просадило напругу.

Кажется справился и без UART :) Но непонятно почему причиной зависания выбрано питание, а не закончившеяся ОЗУ.

Странно только что апаратный watchdog внутри того же процессора справился с задачей, а не так же завис нахрен.

Не особо странно.
Была одна фоторамка… работала 5+ лет нормально, но в какойто момент стала переставать показывать фотачке с SD-карты (после года-двух с момента записи). SD-карта была отформатирована, новые фотачке записаны - фоторамка дальше показывала год или два. А в каойто момент фоторамка перестала видеть любую SD-карточку, и стабильно полгода-год показывала фото из внутренней памяти пока у хозяина руки не дошли. Когда был перепаян кондер (1шт 470МкФ 6В ЕМНИП) в искаробачном БП - работает как много лет назад не первый год уже. И да, с той же самой SD-картой которая была с самого начала.
К чему эта прохладная? А к тому, что разные модули по-разному отзываются на постоянное, но не вполне постоянное напряжение, в том числе без заметной нагрузки.
Но, как отметил выше, это похоже случай отличный от сабжа.

anonymous
()
Ответ на: комментарий от anonymous

а не закончившеяся ОЗУ.

А оно по мониторингу (правда тупо ручному) не заканчивалось. Ну и как бы это служило причиной зависания-то. OOM бы пришёл кому-нибудь навалял и всё.

lesopilorama
() автор топика

По теме: тема со встроенным в allwinner A20 вотчдогом оказалась топовой. Разобрался в этом, настроил, железку переодически начало ребутать. Видимо вотчдог и ребутает. В общем, теперь она почти месяц валяется включенной на окне и в 99% случаев доступна по ssh. Причин зависания пока не нашёл, всё откладываю эксперимент по напайке доп конденсатора на вход питания или замене БП на более мощный, хотя текущий выглядит сносно (размером с зарядник от мобилы, но внутри плотно напихано добротных компонентов, не полный дешман.

lesopilorama
() автор топика
Последнее исправление: lesopilorama (всего исправлений: 1)