====== ЕМ-5 Контроллер ======
pxa270
com: 38400 8N1
miniterm /dev/ttyUSB0 38400 --raw
0x00000000 : "Bootloader"
0x00020000 : "Kernel"
0x00220000 : "Filesystem"
==== Socket-can ====
SocketCAN: No buffer space available
В соответствии с рекомендациями из первой, добавь в can_init.sh строчку:
echo 1000 > /sys/class/net/can0/tx_queue_len
==== Настройки UUCP ====
system em5
port com1-38400
time any
port com1-38400
type direct
device /dev/ttyS1
speed 38400
hardflow false
=== Компиляция ===
Исходные коды Buildroot и Linux собираются в виртуальной машине em5-dev.
В домашней папке есть директории buildroot/ (ссылка на buildroot2013-5) и linuxdir/ (ссылка на buildroot/output/build/linux...).
Конфиг buildroot лежит в директории configs/ в домашней папке пользователя. Обратите внимание, что Linux собирается вемсте с buildroot (чтобы автоматом применились патчи).
Путь к конфигу Linux прописан в конфиге buildroot. Там же прописана директория с патчами, которые нужно применить к исходному коду Linux и директория, в которой искать скачанные файлы пакетов (вероятно, URL многих из них через 15 лет "протухнут", так что берегите эти файлы).
Для редактирования конфига используется команда make-menuconfig или make-gconfig.
Конфиг busybox -- `make busybox-menuconfig`.
Сборка ядра -- `make linux-rebuild`, uboot -- `make uboot-rebuild`.
Артефакты сборки Buildroot лежат в output/images: zImage, rootfs.tar (+rootfs.jffs) и u-boot.bin.
Их нужно залить на флеш-память контроллера. Для сбойных флешек рекомендуется заливать не образ jffs, а создавать пустую jffs, после чего распаковывать в неё файлы из rootfs.tar.
Когда создается rootfs, поверх неё копируется содержимое директории em5_rootfs_overlay.
Именно в неё нужно добавлять свои файлы, чтобы они в конечном итоге оказались в образе файловой системы.
=== Параметры uboot ===
setenv bootdelay 3
setenv baudrate 38400
setenv ethaddr 00:0d:15:00:72:b4
setenv filesize 140000
или 3МБ
setenv filesize 3145728
setenv fileaddr A1000000
setenv netmask 255.255.0.0
setenv ipaddr 10.163.2.121
setenv serverip 10.163.2.126
setenv nfspath /home/user/nfsroot
setenv hostname pandapc01
setenv bootargs_nfs root=/dev/nfs rw nfsroot=\$(serverip):\$(nfspath),rsize=1024,wsize=1024 ip=\$(ipaddr):::\$(netmask):\$(hostname) debug console=ttyS0,\$(baudrate) nfsrootdebug
setenv bootargs_flash root=/dev/mtdblock2 rootfstype=jffs2 console=ttyS0,38400
#256bit controller:
setenv bootargs_flash root=/dev/mtdblock2 rootfstype=jffs2 console=ttyS0,38400 mem=128M@0xA0000000
setenv bootargs_nfs root=/dev/nfs rw nfsroot=\$(serverip):\$(nfspath),rsize=1024,wsize=1024 ip=\$(ipaddr):::\$(netmask):\$(hostname) debug console=ttyS0,\$(baudrate) mem=128M@0xA0000000
setenv bootcmd_nfs tftpboot zImage\\;wtags\\;go
setenv bootcmd_flash cp.b 20000 \$(fileaddr) \$(filesize)\\;wtags\\;go
printenv
saveenv
:!: Интерфейс с ip $(ipaddr) должен быть eth0, иначе будет останавливаться с ошибкой:
nfs: server <$(ipaddr)> not responding, still trying
===== flash images =====
Boot image zImage from 10.163.2.126 via tftp.
setenv serverip 10.163.2.126
tftpboot zImage
wtags
go
Flash filesystem image.
tftpboot rootfs.jffs2
# По неведомой причине (особенности jffs?) стирать нужно до конца.
erase 1:18-
cp.b $(fileaddr) 220000 $(filesize)
Flash kernel images.
tftpboot zImage
erase 1:4-17
cp.b $(fileaddr) 20000 $(filesize)
setenv bootcmd cp.b 20000 $(fileaddr) $(filesize)\;wtags\;go
reset
==== Current problems ====
uboot is not setting MAC address on em5-3
Check out a patch: http://armadeus.svn.sourceforge.net/viewvc/armadeus/trunk/buildroot/target/u-boot/u-boot-1.3.4-111-apf9328-DM9000.patch?revision=1009&view=markup
==== Сборка проекта: ====
Прошивка Xilinx Spartan собирается в Xilinx ISE.
Под Linux:
- Запускаем settings64.sh
- Запускаем lmgrd (менеджер лицензий).
- Запускаем ISE: ISE/bin/lin64/ise
- Открываем проект, обычным образом запускам Build.
- Запускаем ISE Impact
- Переключаем output на xsvf
- Выполняем команду "Program"
- Output -> Stop writing