Инструменты пользователя

Инструменты сайта


equipment:embedded:voipac_pxa270_baseboard

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
equipment:embedded:voipac_pxa270_baseboard [2012/04/24 13:48]
sergey
equipment:embedded:voipac_pxa270_baseboard [2026/04/03 07:22] (текущий)
sergey [Flash with JTAG]
Строка 3: Строка 3:
   * http://​www.voipac.com/ ​   * http://​www.voipac.com/ ​
   * [[http://​www.lancesimms.com/​PXA270Tips.html|Marvell PXA270 and ARM Microprocessor Tips]]   * [[http://​www.lancesimms.com/​PXA270Tips.html|Marvell PXA270 and ARM Microprocessor Tips]]
 +
 +{{equipment:​embedded:​voipac_pxa270_27m-dmm-144_l.jpg?​200|}} {{equipment:​embedded:​voipac_pxa270_27m-dmm-144_l_b.jpg?​200|}}
 +
 +{{ :​equipment:​embedded:​voipac-pxa270-src.zip |}}
 +
 +{{ :​equipment:​embedded:​voipac-pxa270-docs.zip |}}
 +
 +{{ :​equipment:​embedded:​voipac-pxa270-bin.zip |}}
 +
 +PXA270M DIMM Module Basic specification:​
 +  * PXA270M / 312MHz
 +  * 64MB NAND Flash (16bit)
 +  * 64MB SDRAM (32bit)
 +  * Audio AC'97 with controller and support for touchscreen
 +  * 10/100 Mbps Ethernet
 +  * 121 GPIOs
 +  * 200pin SODIMM connector
 +  * JTAG connector pads
 +  * Power supply 3.3V with flexible PMIC
 +  * Dimensions 67.6 x 38.0mm
 +  * 0°C to +70°C commercial temperature range
 +
 +PXA270M DIMM Module Pro specification:​
 +  * PXA270M / 520MHz (by default set to 312MHz)
 +  * 128MB NAND Flash (16bit)
 +  * 128MB SDRAM (32bit)
 +  * Audio AC'97 with controller and support for touchscreen
 +  * 10/100 Mbps Ethernet
 +  * 121 GPIOs
 +  * 200pin SODIMM connector
 +  * JTAG connector pads
 +  * Power supply 3.3V with flexible PMIC
 +  * Dimensions 67.6 x 38.0mm
 +  * 0°C to +70°C commercial temperature range
  
 ===== buildroot config ===== ===== buildroot config =====
Строка 10: Строка 44:
 Target Architecture Variant (xscale) Target Architecture Variant (xscale)
 Target ABI (OABI) Target ABI (OABI)
 +Build options
 +[*] Enable compiler cache
 System configuration System configuration
   (em5) System hostname   (em5) System hostname
   (ttyS0) Port to run a getty (login prompt) on    (ttyS0) Port to run a getty (login prompt) on 
   Baudrate to use (38400)   Baudrate to use (38400)
 +Filesystem images
 +[*] jffs2 root filesystem
 +[*]   Do not use Cleanmarker
 Kernel  ​ Kernel  ​
   Kernel binary format (zImage) ​ ---> ​   Kernel binary format (zImage) ​ ---> ​
Строка 26: Строка 65:
 </​code>​ </​code>​
  
-===== Pxa270 DMA ===== +make linux-menuconfig
-  * 32 DMA channels, DMA[31:0] +
-  * supports flow-through and fly-by transfer +
-  * 32 channels, 68 PBP (peripherial-bus peripherals) requests, 3 IBP (internal-bus peripherals,​ only quick-capture interface in this chip) requests, and 3 external device requests. ​+
  
-A **companion chip** is defined ​as a device ​that has the ability ​to +===== Flash with JTAG ===== 
-control the external buswhereas an external peripheral must be controlled by the memory +Прошиваем обновленный загрузчик через JTAG. 
-controller.+ 
 +Удобно это делать на отладочной baseboard:​ 
 +{{ :​equipment:​embedded:​pxa270_dimm_base_board-datasheet.pdf |}} {{ :​equipment:​embedded:​pxa270_dimm_base_board-schematic.pdf |}} 
 + 
 +К плате подключаем JLINK, 12V и COM-порт. 
 + 
 +На компьютер устанавливаем openocd: 
 +   $ sudo apt install openocd 
 +   $ openocd --version 
 +     Open On-Chip Debugger 0.12.0 
 + 
 +В отдельном окне запускаем minicom или miniterm 
 +     ​pyserial-miniterm /​dev/​ttyUSB2 38400 
 +     ​minicom -D /​dev/​ttyUSB2 ​ -b 38400 
 +    
 +Запускаем отладчик с правильным конфигурационным файлом. 
 + 
 +:!: В разных JLINK сделанных на чипе ftdi может быть по-разному распаян пин RST. 
 +Поэтому пробуем разные значения 'ftdi layout_init'​ пока не заработает. 
 + 
 +<file cfg vpac270_openocd_v0.12.cfg>​ 
 +#Voipac PXA270 Script 
 + 
 +telnet_port ​    ​4444 
 +gdb_port ​       3333 
 +adapter driver ​ ftdi 
 +transport select jtag 
 +ftdi vid_pid 0x0403 0x6010 
 +ftdi channel 1 
 +#ftdi layout_init 0x0018 0x00fb 
 +ftdi layout_init 0x0078 0x007b 
 +ftdi layout_signal nTRST -data 0x0010 -oe 0x0010 
 +ftdi layout_signal nSRST -data 0x0040 -oe 0x0040  
 + 
 +# JTAG speed (kHz) – adjust ​as needed 
 +adapter speed 1000 
 + 
 +# Variables for PXA270 
 +if { [info exists CHIPNAME] } {     
 +   set _CHIPNAME $CHIPNAME ​    
 +} else {      
 +   set _CHIPNAME pxa270 
 +
 + 
 +if { [info exists ENDIAN] } {     
 +   set _ENDIAN $ENDIAN ​    
 +} else {      
 +   set _ENDIAN little 
 +
 + 
 +if { [info exists CPUTAPID ] } { 
 +   set _CPUTAPID $CPUTAPID 
 +} else { 
 +   set _CPUTAPID 0x79265013 
 +
 + 
 +adapter srst delay 260 
 +jtag_ntrst_delay 0 
 + 
 +#use combined on interfaces or targets ​that can't set TRST/SRST separately 
 +reset_config trst_and_srst separate 
 + 
 +# JTAG scan chain 
 +set _TARGETNAME $_CHIPNAME.cpu 
 +jtag newtap $_CHIPNAME cpu -irlen 7 -ircapture 0x1 -irmask 0x7f -expected-id $_CPUTAPID 
 + 
 +# Target creation 
 +target create $_TARGETNAME xscale -endian $_ENDIAN -chain-position $_TARGETNAME 
 + 
 +# Work area configuration 
 +$_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x5c000000 -work-area-size 0x10000 -work-area-backup 0 
 + 
 +# Flash banks (CFI driver remains valid) 
 +flash bank flash0 cfi 0x00000000 0x2000000 2 2 $_TARGETNAME 
 +flash bank flash1 cfi 0x02000000 0x2000000 2 2 $_TARGETNAME 
 + 
 +</​file>​ 
 + 
 + 
 +    $ openocd -f vpac270_openocd_v0.12.cfg 
 +    Open On-Chip Debugger 0.12.0 
 +    Licensed under GNU GPL v2 
 +    For bug reports, read 
 +    http://​openocd.org/​doc/​doxygen/​bugs.html 
 +    Info : pxa270.cpu: hardware ​has 2 breakpoints and 2 watchpoints 
 +    Info : Listening on port 6666 for tcl connections 
 +    Info : Listening on port 4444 for telnet connections 
 +    Info : clock speed 1000 kHz 
 +    Info : JTAG tap: pxa270.cpu tap/device found: 0x79265013 (mfg: 0x009 (Intel), part: 0x9265, ver: 0x7) 
 +    Info : starting gdb server for pxa270.cpu on 3333 
 +    Info : Listening on port 3333 for gdb connections 
 + 
 + 
 +Подключаемся к консоли отладчика и загружаем в память u-boot:  
 + 
 +{{ :​equipment:​embedded:​vpac270_x-boot_u-boot.zip |}} 
 + 
 +    > telnet localhost 4444 
 + 
 +    Trying 127.0.0.1... 
 +    Connected ​to localhost. 
 +    ​Escape character is '​^]'​. 
 +    Open On-Chip Debugger 
 +    > reset halt        
 +        JTAG tap: pxa270.cpu tap/device found: 0x79265013 (mfg: 0x009 (Intel), part: 0x9265, ver: 0x7) 
 +        Bad value '​00'​ captured during DR or IR scan: 
 +         ​check_value:​ 0x02 
 +         ​check_mask:​ 0x07 
 +        JTAG error while writing DCSR 
 +        target halted in ARM state due to debug-request,​ current mode: Supervisor 
 +        cpsr: 0x080000d3 pc: 0x00000000 
 +        MMU: disabled, D-Cache: disabled, I-Cache: disabled 
 +        (processor reset) 
 +    > load_image /​tftpboot/​u-boot-1.1.2-vpac4.bin 0x5c010000 
 +        51568 bytes written at address 0x5c010000 
 +        downloaded 51568 bytes in 0.555464s (90.662 KiB/s) 
 +    > resume 0x5c010000 ​  
 +     
 +Успеваем переключиться на окно с minicom/​miniterm и нажать любую клавишу.  
 + 
 +Должны увидеть приглашение командной строки u-boot: 
 + 
 +U-Boot 1.1.2-vpac4 (Feb 26 2009 - 15:19:32) 
 + 
 +    U-Boot code: 5C010000 -> 5C01C970 ​ BSS: -> 5C020454 
 +    RAM Configuration:​ 
 +    Bank #0: a0000000 128 MB 
 +    Bank #1: 80000000 128 MB 
 +    Flash: 64 MB 
 +    dm9000 i/o: 0x8000300 (32bit), id: 0x90000a46  
 +    MAC: 00:​0d:​15:​00:​a2:​74 
 +    Hit any key to stop autoboot: ​ 0  
 +    u-boot>  
 + 
 + 
 +Use TFT to download first stage boot loader x-load.bin and write it to flash at offset 0. 
 + 
 +  u-boot> erase all 
 +  u-boot> tftp x-load.bin 
 +  u-boot> cp.b a1000000 0 400 
 + 
 + 
 +NOTE: During erase some blocks may fail to erase, those are bad blocks which may appear. 
 + 
 +Download second stage bootloader and write it to flash at offset 0x800. 
 + 
 +  u-boot> tftp u-boot-1.1.2-vpac4.bin 
 +  u-boot> cp.b $(fileaddr) 800 $(filesize) 
 + 
 + 
 +After power cycling baseboard, the first stage X-Loader and next u-boot bootloader should come up. 
 + 
 + 
 +Или одним файлом сразу оба загрузчика:​ 
 + 
 +  set serverip 172.22.0.101 
 +  set ipaddr 172.22.0.123 
 +  tftp x.img 
 +  erase 1:0- 
 +  cp.b $(fileaddr) 0 $(filesize) 
 +===== DMA =====
  
 ==== Приотритеты каналов ==== ==== Приотритеты каналов ====
Строка 46: Строка 242:
 controller register bits: controller register bits:
 <​code>​ <​code>​
-Read:+Write to device:
 DCMDx[FLYBYS] and DCMDx[FLYBYT] = 0 DCMDx[FLYBYS] and DCMDx[FLYBYT] = 0
 DSADRx[SRCADDR] = memory address DSADRx[SRCADDR] = memory address
Строка 55: Строка 251:
 DCMDx[FLOWTRG] = 1 DCMDx[FLOWTRG] = 1
  
-Write:+Read to memory:
 DCMDx[FLYBYS] and DCMDx[FLYBYT] = 0 DCMDx[FLYBYS] and DCMDx[FLYBYT] = 0
 DSADRx[SRCADDR] = internal peripheral address DSADRx[SRCADDR] = internal peripheral address
Строка 64: Строка 260:
 DCMDx[FLOWTRG] = 0 DCMDx[FLOWTRG] = 0
 </​code>​ </​code>​
 +
 +All companion-chip-related transfers must use 64-bit aligned addresses for both source and target
 +locations.
 +
 +Restricting memory addresses to 8-byte boundaries can be helpful because the DMA controller
 +encounters overhead while it works with misaligned data. Align the source and target addresses to
 +32-byte boundaries for optimal DMA controller and memory controller performance.
 +
 +By default, during data transfers the DMA controller forces the least significant three bits of all
 +external addresses to zeros and the least significant two bits of all peripheral addresses to zeros.
 +Software must activate the alignment register to activate byte-aligned addressing.
 +
 +
 +**Companion Chip to Memory:**
 +
 +Source Alignment (Bytes) : 8 \\
 +Target Alignment (Bytes) : 8 \\
 +DCMD [IncSrcAddr] (Binary) : 0 or 1 \\
 +DCMD [IncTrgAddr] (Binary) : 1 \\
 +DCMD[Width] (Binary) : 00
 +
 +The companion chip or external peripheral must be connected as a variable-latency I/O memory.
 +
 +If either DCMDx[IncSrcAddr] or DCMDx[IncTrgAddr] is set, then the DMA controller
 +increments the source or target address, after each bursting transaction,​ by a number equal to the
 +transaction burst size (8, 16 or 32 bytes) or DCMDx[Len]. The latter is used if DCMDx[Len] is
 +less than the burst size.
 +
 +DCMD_WIDTH must be 0b00 for memory-to-memory moves or companion-chip-related operations.
 +
 +---
 +===== Под Linux =====
 +Состояние регистров DMA смотри в debugfs: /​debug/​pxa_dma/​channels/​0/​state ​
 +
 +Большинство полезных функций уже определены в файлах
 +  /​arch/​arm/​plat-pxa/​dma.c ​
 +  /​arch/​arm/​plat-pxa/​include/​plat/​dma.h
 +так что изобретать свои велосипеды нет необходимости.
 +
 +
equipment/embedded/voipac_pxa270_baseboard.1335260928.txt.gz · Последние изменения: 2012/11/30 12:38 (внешнее изменение)