TWR-MPC5125. Руководство пользователя

СОДЕРЖАНИЕ

1. Общее описание

1.1. Размещение компонентов и функции

2. Конструкция и архитектура аппаратных средств

2.1. Память

2.2. Подключения и функции

2.3. Интерфейс отладчика

2.4. Физические характеристики

3. Управление и настройка

3.1. Установки переключателей

3.2. SW7 — Сброс при включении напряжения питания

3.3. SW1 — Режим загрузки

3.4. Установки конфигурационного разъёма

3.4.1. J4 — Режим отладочного USB-порта

3.4.2. J4 — Режим отладочного микроконтроллера

4. Схемы

5. Работа

5.1. Центральное процессорное устройство

5.2. Источники питания

5.3. Сброс

5.3.1. Тактовые сигналы

5.4. Память

5.4.1. DDR2 SDRAM

5.4.2. Флэш-память NAND

6. Загрузчик U-boot, установка Linux (на целевой системе)

6.1. Настройка хост-компьютера

6.2. Установка целевой системы

6.3. Настройка загрузчика U-Boot

6.4. Развёртывание корневой файловой системы NFS при разработке

6.5. Загрузка с файловой системы net_ramboot

7. Компоновка загрузчика U-Boot, ядра и дерева каталогов

7.1. Настройки кросс-компилятора

7.2. Компоновка

8. Программирование флэш-памяти NAND

8.1. Программирование загрузчика программ и загрузчика U-boot

8.1.1. Использование интегрированной среды разработки

8.1.2. Использование командной строки

8.2. Программирование дерева каталогов устройства и ядра

8.3. Обновление файловой системы с диска USB

Приложение А. Назначение контактов разъёма J2

Приложение Б. Карта памяти

1. Общее описание

В плате MPC5125 Tower System используется микропроцессор MPC5125 компании Freescale. Плата содержит встроенную память DDR2 SDRAM и NAND-флэш, порты CAN, USB 2.0, 10/100 Ethernet, HDMI, а также отладочный USB-порт. Система питается от источника питания с выходным напряжением 5В, подключаемого к розетке электрической сети. Плата совместима с Freescale Tower System. Информация о системе Tower приведена на Web-сайте www.freescale.com/tower.

1.1. Размещение компонентов и функции

В этом разделе приводится описание разъёмов, джамперов (перемычек), переключателей и основных компонентов платы MPC5125. На Рис.1 и 2 показано расположение компонентов, перечисленных ниже.

Рис. 1

Рис. 2

Дополнительные описания функций переключателей и джамперов, а также рекомендованные для них установки можно найти в разделе 3 настоящего руководства.

  1. J2 — разъём JTAG, 16-контактный разъём для COP/JTAG. Этот порт используется для выполнения отладочного кода на микропроцессоре MPC5125. Назначение контактов данного разъёма приведено в Приложении А.
  2. CN1 — Ethernet-разъём RJ45, это стандартный входной Ethernet-разъём.
  3. J35 — разъём последовательного порта 2×2 контакта со следующим назначением выводов для микропроцессора MPC5125:
  4. SW1 — переключатель системной конфигурации. Установки переключателя описаны в разделе 3.
  5. U13 — микросхема USB PHY, это высокоскоростной трансивер (приёмопередатчик) USB 2.0 с ULPI-интерфейсом.
  6. Разъём mini-AB USB. DOWN4 — это разъём mini-AB USB, совместимый с форматом USB 2.0.
  7. CN3 — разъём HDMI, поддерживает HDMI-интерфейс.
  8. U20 — HMDI-передатчик.
  9. J27 — джампер включения второго Ethernet-порта. При соединении выводов джампером будет активирован второй Ethernet-порт, доступный через разъём для подключения к основной соединительной плате, в дополнение к разъёму CN1 RJ45 Ethernet. При установке данного джампера разъём mini-AB USB будет отключён.
  10. J3 — встроенный микрофон (MIC), аудиовход.
  11. J1 — разъём для подключения наушников, аудиовыход.
  12. U28 — аудиокодек.
  13. Разъём для подключения к дополнительной соединительной плате системы Freescale TOWER.
  14. Разъём для подключения к основной соединительной плате системы Freescale TOWER.
  15. J4 — конфигурационный разъём для подключения к отладочному микроконтроллеру. Установки конфигурационного разъёма описаны в разделе 3.4. Для отладки кода, выполняемого отладочным микроконтроллером, может быть подключён модуль BDM (см. Рис.3).

    Рис. 3
  16. U14 — отладочный микроконтроллер, который выполняет роль отладочного моста между отладочным USB-портом и микропроцессором MPC5125.
  17. J19 — отладочный USB-порт для микропроцессора MPC5125. Через данный USB-порт может подаваться питание системы.
  18. SW7 — переключатель Сброс. Однократное нажатие приводит к сбросу при включении питания (Power on reset).
  19. SW8 — переключатель «спящего» режима. Нажмите его для возобновления работы системы.
  20. J33 — место для установки батареи или ионистора для питания часов реального времени VBAT_RTC. Рекомендуется использовать ионистор EECEN0F204RT компании Panasonic.
  21. U1 — микропроцессор MPC5125 компании Freescale.
  22. Разъём для SD-карт.
  23. J31 — джампер подключения оконечной нагрузки CAN. Установка джампера между контактами подключает согласованную нагрузку для CAN-интерфейса, который в обычном состоянии не имеет оконечной нагрузки.
  24. J34 — разъём CAN.
  25. U6 — память DDR, оперативная DDR2-память системы.
  26. J20 — гнездо для подключения источника питания постоянного тока напряжением 5В.
  27. U7 — память DDR, оперативная DDR2-память системы.
  28. U10 — флэш-память NAND для загрузчика uboot, ядра Linux, файловой системы и пользовательских данных.
  29. U4 — цифровой акселерометр.
  30. U2 — микросхема Ethernet PHY с интерфейсом MII/RMII.

2. Конструкция и архитектура аппаратных средств

2.1. Память

  • 4ГБ флэш-памяти MLC NAND
  • 256МБ памяти DDR2

2.2. Подключения и функции

  • Цифровой акселерометр
  • HDMI-порт (видео/аудио) с адаптером HDMI — DVI-D
  • Порт RJ-45 10/100 Base T Ethernet
  • Порт mini-AB USB 2.0 OTG
  • Подключение USB-хоста к концентратору (клавиатура, мышь, аудиоустройство, карта, WiFi,....)
  • Подключение USB-устройств к внешней хост-системе USB
  • Встроенный микрофон и гнездо аудио стереовыхода
  • Порт расширения для SD-карт
  • Порт CAN 2.0 A/B

2.3. Интерфейс отладчика

  • Встроенный отладчик, доступный через порт mini-B USB
  • Разъём JTAG/COP для подключения внешнего BDM-интерфейса

Рис. 4

2.4. Физические характеристики

В данном разделе приведена общая информация о физических характеристиках микропроцессора MPC5125.

Размер платы: спецификация Freescale Tower (59мм х 90мм)

Требования к напряжению питания: 5В постоянного тока

Рабочая температура: от 0 до +70°С

Вес: 50г

Соответствие директиве RoHS: Да

Соответствие требованиям FCC/CE: Да

3. Управление и настройка

В данном разделе приведена общая информация о различных джамперах и переключателях на плате MPC5125.

3.1. Установки переключателей

В данном подразделе кратко описаны функциональные возможности и рекомендованные установки переключателей на плате MPC5125.

Расположение этих переключателей показано на Рис.1.

3.2. SW7 — Сброс при включении напряжения питания

SW7 — это кнопка, которая обеспечивает формирование сигнала Power On Reset (сброс при включении напряжения питания) для аппаратной части модуля на микропроцессоре MPC5125.

3.3. SW1 — Режим загрузки

Переключатель режимов позволяет конфигурировать различные режимы работы микропроцессора MPC5125.

Положение SW1Конфигурация сбросаОписание сигналаЗначение по умолчанию
6RST_CONF_ROMLOC0Выбор загрузочного устройства:
0 = загрузка LPC,
1 = загрузка NAND (NFC)

1
5RST_CONF_BMSВыбор режима загрузки:
0 = загрузка из нижних адресов,
1 = загрузка из верхних адресов

1
4RST_CONF_LPC_DBW0Размер порта данных LPC
00
3RST_CONF_LPC_DBW100 = 8 бит, 01 = 16 бит,
10 = зарезервировано, 11 = 32 бит
2RST_CONF_LPCWAРежим адресации LPC (пословный/побайтовый):
0 = пословная адресация,
1 = побайтовая адресация


1
1RST_CONF_LPCMX LPCМультиплексный режим:
0 = мультиплексный режим выключен,
1 = мультиплексный режим

0

3.4. Установки конфигурационного разъёма

3.4.1. J4 — Режим отладочного USB-порта

Этот джампер используется для выбора функций:

  • Выводы 1-2 соединены — отладочный USB-порт
  • Выводы 1-2 разомкнуты — мост «Последовательный порт — USB»

3.4.2. J4 — Режим отладочного микроконтроллера

  • Выводы 3-4 соединены — режим загрузчика
  • Выводы 3-4 разомкнуты — режим моста «UART — USB»

4. Схемы

Схемы и основную информацию в формате PDF о сборке платы на MPC5125 можно найти на компакт-диске, поставляемом вместе с платой.

Конструкция платы MPC5125 обеспечивает дополнительную гибкость и поддержку пользовательских интерфейсов благодаря возможности индивидуальной настройки, поэтому разработчики встраиваемых систем могут добиться снижения общей стоимости компонентов, комбинируя разнообразные фиксированные и изменяемые настройки.

Для этого используются разъёмы, джамперы и переключатели на плате.

На схемах даны рекомендации по использованию уже установленных, а также изменяемых пользователем настроек, имеющихся в схеме.

5. Работа

5.1. Центральное процессорное устройство

MCP5125 поддерживает интерфейс со следующими локальными встроенными ресурсами:
флэш-память NAND, оперативная память DDR2-SDRAM, MII (контроллер 10/100 Fast Ethernet), RMII (контроллер 10/100 Fast Ethernet), I2C (ЭСППЗУ), PSC (программируемый последовательный контроллер) для RS232 и AC97 (аудио), контроллер прерываний, USB 2.0 (ULPI — интерфейс с малым количеством выводов), контроллер DIU (интерфейс дисплея), интерфейс для SD-карт.

Подробное описание каждого интерфейса приведено в руководстве пользователя MPC5125.

5.2. Источники питания

Для питания MPC5125 используется только напряжение +5В.

Порядок подачи питания

Правила подачи питания требуют, чтобы напряжение питания на подсистему ввода/вывода подавалось раньше, чем на ядро микропроцессора.

5.3. Сброс

SW7 — кнопка, при нажатии на которую формируется сигнал Power On Reset (сброс при включении напряжения питания) для аппаратной части модуля на микропроцессоре MPC5125.

Сигнал MPC5125 POREST_B используется для конфигурирования системы и её внутренних регистров. Кроме того, он используется для сброса центрального процессора при включении напряжения питания.

5.3.1. Тактовые сигналы

Формирователь тактовых импульсов основной частоты представляет собой программируемую ИС синтезатора частоты.

SYS_CLK — тактовый сигнал основной частоты центрального процессора (32.768МГц).

Частота 4МГц используется отладочным микроконтроллером.

Сигнал CLK_24.000Mhz (24МГц) используется внутренней USB-схемой центрального процессора.

Сигнал CLK_50.000Mhz (50МГц) используется как внутренней схемой Fast Ethernet центрального процессора, так и микросхемой Ethernet PHY.

Сигнал CLK_32.768Khz (32.768кГц) используется внутренней схемой XTAL_RTC центрального процессора.

5.4. Память

5.4.1. DDR2 SDRAM

Выделенная шина DDR2-памяти имеет ширину 32 бита, тактовую частоту 200МГц и является однобанковой, без ECC (обнаружение и исправление ошибок).

Она использует контроллер MPC5125 DDR2 SDRAM и напрямую подключена к MPC5125.

5.4.2. Флэш-память NAND

Выделенная флэш-память NAND подключена непосредственно к флэш-контроллеру MPC5125 NFC NAND.

6. Загрузчик U-boot, установка Linux (на целевой системе)

6.1. Настройка хост-компьютера

Настройка хост-компьютера крайне важна для функционирования пакетов BSP. Чтобы целевая система работала, на хост-компьютере должны быть запущены серверы tftp и nfs. Приведённые ниже инструкции носят общий характер. Если ваша система отличается от описанной, то команды должны быть изменены соответствующим образом.

Инструкции для хост-компьютера под управлением ОС Linux

  1. Для работы tftp-сервера отключите межсетевую защиту (брандмауэр):
    $ sudo iptables –F
  2. Установите tftp-сервер на хост-компьютере.
  3. Установите nfs-сервер на хост-компьютере.
  4. Создайте каталог tftpboot, если он ещё не существует:
    $ sudo mkdir -p /tftpboot
    $ sudo chmod 777 /tftpboot
  5. Скопируйте ядро, загрузчик и дерево каталогов вашего устройства в каталог /tftpboot.
  6. Распакуйте основную файловую систему в каталог < ROOTFS_PATH>:
    $ sudo tar xpf < ROOTFS_PACKAGE>.tar –C /< ROOTFS_PATH>
  7. Отредактируйте файл /etc/exports, добавив в него следующую строку:
    /< ROOTFS_PATH>/ *(rw,anonuid=0,anongid=0,no_subtree_check)
  8. Чтобы включить tftp, отредактируйте файл /etc/xinetd.d/tftp следующим образом:
    {
    disable = no
    socket_type = dgram
    protocol = udp
    wait = yes
    user = root
    server = /usr/sbin/in.tftpd
    server_args =/tftpboot
    }
  9. Перезапустите серверы nfs и tftp на хост-компьютере:
    $ sudo /etc/init.d/xinetd restart
    $ sudo /etc/init.d/nfsserver restart

6.2. Установка целевой системы

  1. Подключите плату к сети через Ethernet-порт.
  2. Подключите плату к хост-компьютеру через последовательный порт.
  3. Подсоедините плату к источнику питания.
  4. Запустите minicom или другую программу (на ваше усмотрение) для последовательного обмена данными. Установки последовательного порта: Скорость — 115200 бит/с, Биты данных — 8, Чётность — Да.
  5. Включите питание платы — на экране появится загрузочное сообщение загрузчика u-boot:
    U-Boot 2009.03-00012-g21a175a-dirty (Jan 21 2010 - 11:03:07) MPC5125

    CPU: MPC5125 rev. 1.0, Core e300c4 at 400 MHz, CSB at 200 MHz
    board: mpc5125_mpu
    I2C: ready
    DRAM: 256 MB
    NAND: 2048 MiB
    In: serial
    Out: serial
    Err: serial
    Net: FEC ETHERNET

    Введите команду run nfsboot, чтобы смонтировать корневую файловую систему на NFS.

6.3. Настройка загрузчика U-Boot

Для загрузки ядра Linux в коде u-boot должно содержаться дерево каталогов устройства. Чтобы проверить это, напечатайте help bootm в строке приглашения загрузчика u-boot.

=> help bootm
bootm [addr [arg ...]]
— образ приложения для загрузки записан в память, аргументы 'arg ...' переданы; при загрузке ядра Linux 'arg' может быть адресом образа initrd.
При загрузке ядра Linux, которому требуется плоское дерево каталогов устройства, третий аргумент типа blob, содержащий адрес этого дерева, является обязательным. Чтобы загрузить это ядро без образа initrd, используйте '-' вместо второго аргумента. Если третий аргумент отсутствует, то вместо него будет подставлена структура bd_info

Если справочная система сообщает, что bootm требует трёх аргументов, значит, поддержка дерева каталогов устройства включена. Если нет — необходимо установить новый загрузчик u-boot.

Более подробная информация приведена в разделе 8.1.

Установленный в заводских условиях загрузчик u-boot поддерживает различные команды, предопределённые в среде по умолчанию.

  1. Распечатайте текущую конфигурацию u-boot — для этого введите print в строке приглашения u-boot.
    => print
    bootcmd=run nfsboot
    bootdelay=5
    baudrate=115200
    loads_echo=1
    preboot=echo;echo Чтобы смонтировать корневую файловую систему на NFS, введите \"run flash_nfs\";echo
    loadaddr=400000
    u-boot_addr_r=200000
    u-boot_addr=FFF00000
    kernel_addr=FC040000
    fdt_addr=FC2C0000
    ramdisk_addr=FC300000
    u-boot=ads5125/u-boot.bin
    netdev=eth0
    nfsargs=setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath}
    ramargs=setenv bootargs root=/dev/ram rw
    addip=setenv bootargs
    ${bootargs}ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:$
    {netdev}:off panic=1
    addtty=setenv bootargs ${bootargs}console=${consdev},${baudrate}
    flash_nfs=run nfsargs addip addtty;bootm ${kernel_addr}- ${fdt_addr}
    flash_self=run ramargs addip addtty;bootm
    ${kernel_addr}${ramdisk_addr}${fdt_addr}
    net_nfs=tftp ${kernel_addr_r}${bootfile};tftp ${fdt_addr_r}${fdtfile};run
    nfsargs addip addtty;bootm ${kernel_addr_r}- ${fdt_addr_r}
    net_self=tftp ${kernel_addr_r}${bootfile};tftp
    ${ramdisk_addr_r}${ramdiskfile};tftp ${fdt_addr_r}${fdtfile};run ramargs
    addip addtty;bootm ${kernel_addr_r}${ramdisk_addr_r}${fdt_addr_r}
    load=tftp ${u-boot_addr_r}${u-boot}
    update=protect off ${u-boot_addr}+${filesize};era ${uboot_
    addr}+${filesize};cp.b ${u-boot_addr_r}${u-boot_addr}${filesize}
    upd=run load update
    ethact=FEC ETHERNET
    ethaddr=AA:BB:CC:DD:EE:FF
    ramdiskfile=rootfs.ext2.gz.uboot
    hostname=limeos
    net_ramboot=setenv bootargs root=/dev/ram rw console=$consdev,$baudrate;tftp
    ${kernel_addr_r}${bootfile};tftp ${ramdisk_addr_r}${ramdiskfile};tftp
    ${fdt_addr_r}${fdtfile};bootm $kernel_addr_r $ramdisk_addr_r $fdt_addr_r
    bootargs=root=/dev/ram rw console=ttyPSC0,115200
    filesize=3000
    fileaddr=400000
    gatewayip=192.168.10.1
    netmask=255.255.255.0
    ipaddr=192.168.10.205
    serverip=192.168.10.227
    kernel_addr_r=3000000
    fdt_addr_r=4000000
    ramdisk_addr_r=5000000
    rootpath=/home/tony/nfs
    consdev=ttyPSC1
    fdtfile=mpc5125-twr.dtb
    bootfile=vmlinux-5125-twr.bin
    stdin=serial
    stdout=serial
    stderr=serial

    Environment size: 1947/131067 bytes

    Если значения переменных вашей среды u-boot отличаются от приведённых выше, то измените или добавьте их с помощью команды u-boot setenv.
  2. Из командной строки ядра сообщите ядру linux, какой последовательный порт должен использоваться для консоли. Добавьте переменную u-boot для настройки консоли в командной строке ядра:
    => setenv consoledev ttyPSC1
  3. Задайте сетевую конфигурацию платы, используя значения, соответствующие вашему устройству.
    => setenv ipaddr 172.27.152.21
    => setenv serverip 172.27.152.6
    => setenv netmask 255.255.0.0
    => setenv gatewayip 172.27.255.254
  4. Задайте некоторые пути доступа, которые потребуются позже:
    => setenv rootpath < ROOTFS-PATH>
    => setenv bootfile vmlinux-5125-twr.bin
    => setenv fdtfile mpc5125-twr.dtb
  5. Сохраните конфигурацию во флэш-памяти:
    => saveenv

6.4. Развёртывание корневой файловой системы NFS при разработке

В ходе разработки обычно загружают ядро через tftp и используют nfs в качестве корневой файловой системы.

  1. На хост-компьютере скопируйте ядро и файл дерева каталогов в каталог tftpboot.
  2. Задайте значение параметра nfsboot:
    => set nfsboot 'set bootargs ip=dhcp root=/dev/nfs rw
    nfsroot=$serverip:$rootpath,proto=tcp,nolock console=$consoledev,$baudrate
    $othbootargs;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr - $fdtaddr'
  3. Теперь произведите загрузку платы:
    => run nfsboot
  4. Чтобы загрузчик u-boot автоматически запускал nfsboot при загрузке, установите значение переменной bootcmd:
    => setenv bootcmd run nfsboot
    => saveenv

6.5. Загрузка с net_ramboot

  1. Скопируйте ядро, файл дерева каталогов и файловую систему оперативной памяти (rootfs.ext2.gz.uboot-common) в каталог tftpboot на хост-компьютере.
    Файловая система оперативной памяти (rootfs.ext2.gz.uboot-common) генерируется пакетами ltib. Дополнительную информацию можно найти в справочной документации к инструментальному средству LTIB.
  2. Задайте значение параметра net_ramboot:
    => set net_ramboot 'setenv bootargs root=/dev/ram rw
    console=$consdev,$baudrate;tftp $kernel_ld_addr $kernel_name;tftp
    $fdt_ld_addr $fdt_name;tftp $ramdisk_ld_addr $ramdisk_name;bootm
    $kernel_ld_addr $ramdisk_ld_addr $fdt_ld_addr'

    => setenv kernel_ld_addr 0x2000000
    => setenv fdt_ld_addr 0x2800000
    => setenv ramdisk_ld_addr 0x3000000

    => setenv kernel_name vmlinux-5125-twr.bin
    => setenv fdt_name mpc5125-twr.dtb
    => setenv ramdisk_name rootfs.ext2.gz.uboot-common

    => saveenv
  3. Теперь произведите загрузку платы:
    => run net_ramboot

7. Компоновка загрузчика U-Boot, ядра и дерева каталогов

7.1. Настройки кросс-компилятора

  1. Установите набор инструментальных средств, необходимых для кросс-компиляции.
    Установка инструментария производится из пакета LTIB, более подробные инструкции можно найти в справочной документации LTIB.
  2. Перед началом кросс-компиляции любого кода необходимо задать переменные среды ARCH, CROSS_COMPILE и PATH.
    Создайте файл сценария ppc с переменными среды:
    #!/bin/sh
    TOOLCHAIN=/opt/freescale/usr/local/gcc-4.1.78-eglibc-2.5.78-1/powerpce300c3-linux-gnu
    LTIB=/opt/freescale/ltib/usr
    export ARCH=powerpc
    export CROSS_COMPILE=powerpc-e300c3-linux-gnuexport
    PATH=$TOOLCHAIN/bin:$LTIB/bin:$PATH

    $ source ppc

7.2. Компоновка

  1. Скомпонуйте загрузчик U-boot:
    $ make distclean
    $ make ads5125_nand_config
    $ make –j 4
  2. Скомпонуйте ядро:
    $ cp arch/powerpc/configs/mpc5125_twr_defconfig .config
    $ make –j 4

    Сжатое ядро ulmage расположено по адресу arch/powerpc/boot/uImage.
    Распакуйте файл сценария mkvm для ядра uImage:
    #!/bin/bash
    cat vmlinux.bin.gz | gunzip > vmlinux.bin
    mkimage -A ppc -O Linux -T kernel -C none -a 0x0 -e 0x0 -n Linux-2.6 -d
    vmlinux.bin $1

    $ mkvm vmlinux-5125-twr.bin
  3. Скомпонуйте дерево каталогов устройства.
    Скомпилируйте файл сценария DTS «mkdts»:
    #!/bin/bash
    # Проверка правильности использования параметров командной строки
    if [ "$#" != "1" -a "$#" != "3" ]; then
    echo "Usage: `basename $0` dts-filename [-o dtb-filename]"
    exit 1
    fi
    DTS_FILE=$1
    DTB_FILE=${DTS_FILE%%dts}dtb
    if [ "${DTS_FILE##*.}" != "dts" ]; then
    echo "`basename $0`: '$DTS_FILE' input file type error."
    exit 1
    fi
    shift
    if [ "$1" == "-o" ]; then
    shift
    DTB_FILE=$1
    if [ "${DTB_FILE##*.}" != "dtb" ]; then
    echo "`basename $0`: '$DTB_FILE' output file type error."
    exit 1
    fi
    fi
    ./arch/powerpc/boot/dtc -I dts -O dtb -S 0x3000 -o $DTB_FILE $DTS_FILE

    $ mkdts arch/powerpc/boot/dts/mpc5125-twr.dts -o mpc5125-twr.dtb

8. Программирование флэш-памяти NAND

8.1. Программирование загрузчика программ и загрузчика U-boot

Имеется два способа программирования флэш-памяти NAND с использованием JTAG-порта CodeWarrior: через интегрированную среду разработки CodeWarrior for MobileGT или через сценарий командной строки CodeWarrior Connection Server.

8.1.1. Использование интегрированной среды разработки

Потребуются следующие инструментальные средства:

  • ИСР CodeWarrior for MobileGT v9.2
  • Патч ИСР CodeWarrior для платформы MPC5125
  • Codewarrior USB Tap

Исходный код загрузчика U-Boot компилируется на Linux-сервере, ПО Codewarrior MobileGT v9.2 работает на компьютере под управлением ОС Windows. Интегрированная среда разработки CW создает проект, необходимый для поиска источника информации в каталоге U-Boot, поэтому заказчик должен подключить сетевой диск с помощью службы linux samba.

Подключение сетевого диска с компьютера под управлением ОС Windows:

  • Сконфигурируйте сервер samba на Linux-сервере
  • Откройте «Мой компьютер», выберите в меню Tools > Map Network Drive (Сервис > Подключить сетевой диск)
  • Например, в следующей конфигурации:
    Диск: Z:
    Каталог: //server_ip/<каталог на linux-сервере с кодом U-Boot>

  1. Создайте проект.
    • Запустите интегрированную среду разработки CodeWarrior
    • Кликните File > Open (Файл > Открыть) и выберите u-boot в каталоге samba, ПО CodeWarrior импортирует загрузчик u-boot и создаст проект.

    Если появится сообщение «Couldn't find the file libgcc2.c» (Не удаётся найти файл libgcc2.c), то выберите вариант «Continue with next file» (Перейти к следующему файлу и продолжить), это никак не влияет на предыдущую работу.
  2. Установки: Edit > Default Project Settings > Target Settings Panels > Debugger > EPPC Debugger Settings (Правка >Установки проекта, используемые по умолчанию > Панели настроек целевого процессора > Отладчик > Установки отладчика EPPC):
    Процессор: 52xx Целевой процессор: 5125
    Используйте файл инициализации целевого устройства: 5125-twr-init.cfg, это важная инициализация параметров DDR (см. Приложение).
  3. Нажмите F5, начнётся работа u-boot, последовательного порта, появится загрузочное сообщение u-boot и командная строка.
  4. Скопируйте файлы nand_spl/u-boot-spl-2k.bin и u-boot-second.bin в каталог /tftpboot.
  5. Загрузчик программ:
    => tftp 0x4000000 u-boot-spl-2k.bin
    => nand_e 0x00 0x01
    => nand_loader 0x4000000 0x00 0x800 (file size)
    => nand_r 0x2000000 0x00 0x800
    => md 0x2000000
  6. Загрузчик u-boot:
    => tftp 0x4000000 u-boot-second.bin
    => nand_e 0x100 0x101
    => nand_w 0x4000000 0x100 0x40000 (file size)
    => nand_r 0x2000000 0x100 0x800
    => md 0x2000000
  7. Перезапустите u-boot:
    => reset

8.1.2. Использование командной строки

  1. Запустите приложение CodeWarrior Connection Server из C:/ Program Files/ Freescale/ CodeWarrior for MobileGT V9.2/ccs/bin/ccs.exe.
  2. Скопируйте файлы u-boot-second-scrip.txt и nand_spl/loader-script-5125.txt в папку windows, например, в c:/u-boot.
  3. Скопируйте файл 5125_init.txt в папку c:/u-boot (см. Приложение).
  4. Загрузчик программ и загрузчик U-boot:
    (bin) 1 % cd /u-boot/
    (bin) 2 % source 5125_init.txt
    (bin) 3 % source loader-script-5125.txt
    (bin) 4 % source u-boot-second-scrip.txt

8.2. Программирование дерева каталогов устройства и ядра

  1. Дерево каталогов:
    => setenv fdt_name mpc5125-twr.dtb
    => setenv flash_dtb 0xb00
    => tftp 0x3000000 $fdt_name
    => nand_e $flash_dtb 0xb01
    => nand_w 0x3000000 $flash_dtb 0x3000
  2. Ядро:
    => setenv kernel_name vmlinux-5125-twr.bin
    => setenv flash_kernel 0x300
    => tftp 0x3000000 $kernel_name
    => nand_e $flash_kernel 0xaff
    => nand_w 0x3000000 $flash_kernel 0x400000 (file size)

8.3. Обновление файловой системы с USB-диска

  1. Скопируйте файловую систему оперативной памяти rootfs.ext2.gz.uboot-common в каталог /tftpboot на хост-компьютере.
  2. Скопируйте файловую систему флэш-памяти NAND, < ROOTFS_PACKAGE>.tar, на USB-диск.
  3. Подключите USB-диск к целевой системе.
  4. Запустите файловую систему ramdisk из приглашения u-boot:
    => run net_ramboot
  5. Введите «3» для выхода из утилиты.
  6. Установите файловую систему rootfs флэш-памяти NAND с помощью USB-диска в файловой системе ramdisk. Введите следующие команды в строке приглашения файловой системы ramdisk:
    $ sudo flash_eraseall /dev/mtd6
    $ sudo mkdir -p /tmp/udisk /tmp/mtd
    $ sudo mount -t vfat /dev/sda1 /tmp/udisk
    $ sudo mount -t yaffs2 /dev/mtdblock6 /tmp/mtd
    $ sudo tar xpf /tmp/udisk/< ROOTFS_PACKAGE>.tar -C /tmp/mtd
    $ sudo umount /tmp/mtd
    $ sudo umount /tmp/udisk

Приложение А. Назначение контактов разъёма J2

J2 — 16-контактный JTAG-разъём MPC5125
Номер выводаОписание
1MPC JTAG COP TDO
2Не подключён
3MPC JTAG COP TDI
4MPC JTAG TRST
5Не подключён
63.3В постоянного тока
7MPC JTAG TCK
8Не подключён
9MPC JTAG TMS
10Не подключён
11MPC SRESET
12GND
13HRESET
14Не подключён
15MPC CKSTP OUT
16GND

Приложение Б. Карта памяти

Ниже приведён пример карты памяти; информацию о конкретных конфигурациях памяти можно найти в документе MPC5125 Quick Guide (Краткое руководство по MPC5125), многие настройки распределения памяти определяются пользователем.

ФункцияЗарезервированные байты32-битный адресCS#Размер
НачалоКонец
IMMRBAR — установка по умолчанию при сбросе FF40 00000x8000 00000x803F FFFF1МБ, рекомендуется 4МБ с запасом на будущее
DDR SDRAM256МБ0x0000 00000x0FFF FFFFDDR_MCSN256МБ
Область загрузки EBC NAND флэш-памяти — загрузка из верхних адресов2048МБ0xFFF0 00000xFFFF FFFFNFC_CE0_B1МБ
Флэш-память NAND до 2ГБ1МБ0x4000 00000x400F FFFF1МБ
SRAM256КБ0x3000 00000x3001 FFFF32КБ
Устройство USB ULPI 2.04КБIMMR_0x3000IMMR_3FFF4КБ
Локальные конфигураци­онные регистры1КБIMMR_0x10000 IMMR_0x1 01FF
RS232 на микропроцес­сореPSC1IMMR_0x1 1100IMMR_0x1 11FF
RS232 на модуле TWRPSC9IMMR_0x1 1900IMMR_0x1 19FF
IIC1IMMR_0x0 1720IMMR_0x0 173F32Б
IIC2IMMR_0x0 1740IMMR_0x0 17FF32Б
Контроллер Fast EthernetIMMR_0x0 2800IMMR_0x02FFF256Б

Электронные компоненты Freescale >>>
О компании Freescale >>>