1. VREFP на AM335x
Q: Мы закоротили 27 контакт X5 Разъёма на GND (VREFP на GND), т.к. аналоговый вход нам не нужен.
A: Контакт 27 разъёма X5 помимо подключения к AM335x VREF имеет резистор 0 Ом (R41) к AM_ADC_VCCA (1,8В). Посему предлагается оставить данный вход без подключения.
2. Греются модули с Ethernet PHY вставленные в плату
Q: Мы купили модуль с запаянной Ethernet PHY и вставили в плату - как следствие модуль не работает и греется.
A: Начиная с ревизии 4 появилась возможность заказывать модули MTAX-SoM-AM335x с Ethernet PHY 100Mbit. Однако выводы №74, 75, 76, 77, 79 разъёма X4 были раньше GND, а в данной ревизии - выход PHY с установленными согласующими резисторами 50 Ом, которые подключены к линии 3.3В . Если вы спроектировали плату с собственным PHY - вам достаточно заказать модуль без установленного PHY.
Либо если уже заказали модуль с PHY и нужно вставить в плату - достаточно удалить следующие компоненты:
3. Не работает HE910 модем на отладочной плате MTAX-MB-AM335x-v1
Q: Совершенно на ровном месте возникла проблема с работоспособность HE910 на MTAX-MB-AM335x v.1 в Linux: модем не виден в ОС, устройства /dev/ttyACMx не появляются.
Подгружается модуль modprobe cdc-acm. dmesg:
[ 440.209472] usbcore: registered new interface driver cdc_acm
[ 440.215484] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
Модуль подгружается, но модема не видит, устройств /dev/ttyACMx нет.
A: Дело в том, что для работы модема необходимо проделать следующие операции:
В Linux должны увидеть приведенные вами строчки инициализации модема.
На MTAX-MB-AM335x-v2 - для включения модема используется GPIO(AM_HE910_ONOFF).
4. Создание ubifs образа из каталога targetNFS
Q: Собрали файлы для корневой файловой системы в каталоге targetNFS. Записали на SD карту, все работает. Как теперь создать образ ubi-fs?
A: Если применялся патч для MTAX модуля (например https://drive.google.com/open?id=0B1nl8q4_-tA-OUlBVVFFdWZPNUk), то в Makefile есть цель для сборки UBI образа корневой файловой системы:
ubi: @echo ================================================== @echo Creating ubi.img root filesystem for NAND @echo ================================================== mkfs.ubifs -r ${DESTDIR} -F -o ubifs.img -m 2048 -e 126976 -c 2400 ubinize -o ubi.img -p 128KiB -m 2048 ubinize.cfg
то есть можно собрать ubi.img, выполнив команду:make ubi
Правда, следует отметить, что файлы из targetNFS могут не поместиться в образ, созданный с такими параметрами. Поэтому можно перед созданием UBI образа запустить скрипт rm_files.sh, удаляющий некоторые ненужные файлы:
rm -R targetNFS/opt/* rm targetNFS/boot/MLO-* rm targetNFS/boot/u-boot-* rm targetNFS/boot/uImage-3.2.0 rm targetNFS/boot/vmlinux-3.2.0 rm targetNFS/usr/share/ti/video/* rm -R targetNFS/usr/share/doc/* rm targetNFS/usr/share/wl1271-demos/bluetooth/gallery/* rm -R targetNFS/usr/bin/qtopia/*
5. Как сконфигурировать 2 Ethernet на модуле MTAX-SOM-AM335x
Q: В нашей материнской плате используется 2 ethernet порта: RGMII 1Gb и MII 100Mb. как и каким образом правильно активировать порты ethernet. в процессоре TI AM335X предусмотрено использование 2 ethernet контроллеров через свич.
A: Переконфигурировать ядро Linux(поправить Pin Mux для вашей периферии) можно в файле linux-3.2.0-psp04.06.00.11/arch/arm/mach-omap2/board-mtax-am335x.c. Пример того как используется 2 eth можно посмотреть в board-am335xevm.c. Например:
static struct pinmux_config mii1_pin_mux[] = { // Для нашего PHY {"mii1_rxerr.mii1_rxerr", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN}, {"mii1_txen.mii1_txen", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, {"mii1_rxdv.mii1_rxdv", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN}, {"mii1_txd3.mii1_txd3", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, {"mii1_txd2.mii1_txd2", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, {"mii1_txd1.mii1_txd1", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, {"mii1_txd0.mii1_txd0", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, {"mii1_txclk.mii1_txclk", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN}, {"mii1_rxclk.mii1_rxclk", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN}, {"mii1_rxd3.mii1_rxd3", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN}, {"mii1_rxd2.mii1_rxd2", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN}, {"mii1_rxd1.mii1_rxd1", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN}, {"mii1_rxd0.mii1_rxd0", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN}, {"mdio_data.mdio_data", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, {"mdio_clk.mdio_clk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT_PULLUP}, {NULL, 0}, }; /* Module pin mux for rgmii2 */ static struct pinmux_config rgmii2_pin_mux[] = { // для вашего PHY {"gpmc_a0.rgmii2_tctl", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT}, {"gpmc_a1.rgmii2_rctl", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN}, {"gpmc_a2.rgmii2_td3", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT}, {"gpmc_a3.rgmii2_td2", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT}, {"gpmc_a4.rgmii2_td1", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT}, {"gpmc_a5.rgmii2_td0", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT}, {"gpmc_a6.rgmii2_tclk", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT}, {"gpmc_a7.rgmii2_rclk", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN}, {"gpmc_a8.rgmii2_rd3", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN}, {"gpmc_a9.rgmii2_rd2", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN}, {"gpmc_a10.rgmii2_rd1", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN}, {"gpmc_a11.rgmii2_rd0", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN}, {"mdio_data.mdio_data", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP}, {"mdio_clk.mdio_clk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT_PULLUP}, {NULL, 0}, }; static void rgmii2_init(int evm_id, int profile) { setup_pin_mux(rgmii2_pin_mux); return; } static struct evm_dev_cfg mtax_mb_dev_cfg[] = { .... {mii1_init, DEV_ON_BASEBOARD, PROFILE_ALL}, {rgmii2_init, DEV_ON_BASEBOARD, PROFILE_ALL},//Добавьте для поддержки вашего PHY .... {NULL, 0, 0}, };
Проверьте соответствие выводов и указанных выше PinMix значений.