Cómo jugar zynq7000 sin hardware
El archivo ejecutable proporcionado por el sitio web oficial está basado en Linux de 64 bits: zynq_linux.tar.gz.
Para sistemas de 32 bits, debe compilarlo usted mismo. la solución es la siguiente:
1) Código de descarga: git clone git://git.xilinx.com/qemu-xarm.git
2) Configurar proyecto:
cd qemu-xarm
./configure --target-list=arm-softmmu --disable-werror --disable-kvm
3) Compilar: make p>
4) Resultado de la compilación:
[walt@zynq7k qemu-xarm]$ ls -l arm-softmmu/qemu-system-arm
-rwxrwxr-x. 1 walt walt 18428427 6 de noviembre 15: 27 arm-softmmu/qemu-system-arm
5) Compruebe si el entorno está bien. La prueba es la siguiente:
[walt@. zynq7k qemu-xarm]$ ./arm-softmmu/qemu -system-arm -h
Emulador QEMU versión 1.0.50, Copyright (c) 2003-2008 Fabrice Bellard
uso : qemu-system-arm [opciones] [disk_image]
'disk_image' es una imagen de disco duro sin formato para el disco duro IDE 0
Opciones estándar:
-h o -help muestra esta ayuda y sale
-version muestra información de la versión y sale
-machine [type=]name[,prop[=value][,... ]]
selecciona la máquina emulada ( -machine ? para la lista)
propiedad accel=accel1[:accel2[:...]] selecciona el acelerador
compatible los aceleradores son kvm, xen, tcg (predeterminado: tcg)
-cpu cpu seleccione CPU (-cpu ? para ver la lista)
…………
Nota : Si no se puede ejecutar, siga el mensaje /zynq-qemu para instalar la biblioteca dinámica faltante.
Reemplace los archivos en el paquete comprimido descargado oficialmente con el qemu-system-arm recién compilado. La prueba se ejecuta de la siguiente manera:
[walt@zynq7k zynq_linux]# ./start_qemu. .sh
tamaño de ram=40000000
error al leer el dispositivo de bloque QSPI
error sin unidad mtd para nand flash
a0mpcore_priv: smp_priv_base f8f00000
error sin unidad SD para el controlador sdhci (0)
error sin unidad SD para el controlador sdhci (1)
Número de NIC configuradas 0×1 p>
ram_size 40000000, board_id d32, loader_start 0
Descomprimiendo Linux… listo, arrancando el kernel.
Arrancando Linux en CPU física 0
Linux versión 3.3.0-14.2-build1 (relman@xcobldal824) (gcc versión 4.6.1 (Sourcery CodeBench Lite 2011.09-50)) #1 SMP PREEMPT jueves 12 de julio 09:04:32 MDT 2012
CPU : Procesador ARMv7 [410fc090] revisión 0 (ARMv7), cr=10c5387d
CPU: caché de datos sin alias PIPT / VIPT, caché de instrucciones con alias VIPT
Máquina: plataforma Xilinx Zynq, modelo: Xilinx Zynq ZC702
consola de arranque [earlycon0] habilitada
Política de memoria: ECC deshabilitado, asignación de escritura de caché de datos
PERCPU: 7 páginas integradas/cpu @c190b000 s5696 r8192 d14784 u32768
p>Construimos 1 listas de zonas en orden de zona, agrupación de movilidad en total de páginas: 255744
Línea de comando del kernel: console=ttyPS0, 115200 root=/dev/ram rw initrd=. 0×800000, 8M ip=:::::eth0:dhcp earlyprintk
Entradas de la tabla hash PID: 4096 (orden: 2, 16384 bytes)
Entradas de la tabla hash de caché Dentry: 131072 (orden: 7, 524288 bytes)
Inodo-c
entradas de la tabla hash de dolor: 65536 (orden: 6, 262144 bytes)
Memoria: 240 MB 768 MB = 1008 MB en total
Memoria: 1009280 k/1009280 k disponibles, 39296 k reservados, 270336 K de memoria alta
Disposición de la memoria del kernel virtual:
vector: 0xffff0000 – 0xffff1000 (4 kB)
fixmap: 0xfff00000 – 0xfffe0000 (896 kB)
vmalloc: 0xf0000000 – 0xff000000 (240 MB)
lowmem: 0xc0000000 – 0xef800000 (760 MB)
pkmap: 0xbfe00000 – 0xc0000000 (2 MB)
módulos: 0x bf000000 – 0xbfe00000 (14 MB)
.text: 0xc0008000 – 0xc040bdb0 (4112 kB)
.init: 0xc040c000 – 0xc0430640 (146 kB)
.datos: 0xc0432000 – 0xc045fd20 (184 kB)
.bss: 0xc045fd44 – 0xc0479f5c (105 kB)
Implementación de RCU jerárquica preferible.
La detección detallada de CPU detenidas está deshabilitada
NR_IRQS: 128
xlnx, ps7-ttc-1.00.a #0 at 0xf0000000, irq=43
Consola: dispositivo ficticio de color 80×30.
Calibración del bucle de retardo... 147,35 BogoMIPS (lpj=736768)
pid_max: predeterminado: 32768 mínimo: 301
Entradas de la tabla hash de caché de montaje: 512 p >
CPU: Prueba de coherencia del búfer de escritura: ok
CPU0: subproceso -1, cpu 0, socket 0, mpidr 80000000
smp_twd: reloj no encontrado: -2< / p>
Calibración del temporizador local… 84,48 MHz.
Hw perfevents: habilitado con el controlador PMU ARMv7 Cortex-A9, 1 contador disponible
Configuración del mapa de identidad estático para 0x2f3000 – 0x2f3034
CPU1: proceso secundario iniciado
ssor
CPU1: hilo -1, cpu 1, socket 0, mpidr 80000001
Aparecieron 2 CPU
SMP: Total de 2 procesadores activados (271.66 BogoMIPS ).
devtmpfs: inicializado
NET: familia de protocolos registrados 16
Controlador de caché serie L2x0 habilitado
l2x0: 8 vías, CACHE_ID 0×00000000, AUX_CTRL 0×72060000, Tamaño de caché: 524288 B
registro del dispositivo de plataforma 'pl330′ id 0
registro del dispositivo de plataforma 'arm-pmu' id 0
hw-breakpoint: arquitectura de depuración 0×0 no compatible.
xslcr xslcr.0: en 0xF8000000 asignado a 0xF0008000
bio: crear losa en 0
gpiochip_add: GPIO registrados de 0 a 245 en el dispositivo: nuevo controlador de interfaz usbfs
usbcore: nuevo concentrador de controlador de interfaz registrado
usbcore: nuevo controlador de dispositivo registrado usb
Cambiando a clocksource xttcpss_timer1
NET: Familia de protocolos registrados 2
Entradas de la tabla hash de caché de ruta IP: 32768 (orden: 5, 131072 bytes)
Hash establecido TCP entradas de la tabla: 131072 (orden: 8, 1048576 bytes))
Entradas de la tabla hash de enlace TCP: 65536 (orden: 7, 786432 bytes)
TCP: tablas hash configuradas (establecidas 131072 bind 65536)
TCP reno registrado
Entradas de la tabla hash UDP: 512 (orden: 2, 16384 bytes)
Entradas de la tabla hash UDP-Lite: 512 ( orden: 2, 1638
4 bytes)
NET: Familia de protocolos registrados 1
RPC: Módulo de transporte de socket UNIX con nombre registrado.
RPC: Módulo de transporte udp registrado.
RPC: módulo de transporte tcp registrado.
RPC: módulo de transporte backchannel tcp NFSv4.1 registrado.
Intentando descomprimir la imagen de rootfs como initramfs…
la imagen de rootfs no es initramfs (la basura en el archivo comprimido parece un initrd
Liberando memoria initrd: 8192K
xscugtimer xscugtimer.0: ioremap fe00c200 a f000c200 con tamaño 400
pl330 dev 0 sonda exitosa
tamaño del grupo de rebote de memoria alta: 64 páginas
JFFS2 versión 2.2 (NAND) (RESUMEN) 2001-2006 Red Hat, Inc.<. /p>
msgmni se ha establecido en 1459
io planificador noop registrado
fecha límite del planificador io registrado
planificador io cfq registrado (predeterminado) p>
e0001000.uart: ttyPS0 en MMIO 0xe0001000 (irq = 82) es una consola xuartps
activada [ttyPS0], consola de arranque deshabilitada
consola [ttyPS0] habilitada, consola de arranque deshabilitado
e0000000.uart: ttyPS1 en MMIO 0xe0000000 (irq = 59) es un xuartps
xdevcfg f8007000.devcfg: ioremap f8007000 a f0060000 con tamaño 100
brd: módulo cargado
bucle: módulo cargado
GEM: BASEADDRESS hw: e000b000 virt: f0062000
Bus XEMACPS mii: sondeado
xemacps e000b000.eth: dirección no válida, use MAC asignado
actualizado d2:c4:43:31:6b:d0
eth0, pdev-gt;id -1, baseaddr 0xe000b000, irq 54
ehci_hcd: Controlador de host USB 2.0 'mejorado' (EHCI)
xusbps-ehci xusbps-ehci.0: Controlador de host Xilinx PS USB EHCI
xusbps -ehci xusbps-ehci.0: nuevo bus USB registrado, número de bus asignado 1
xusbps-ehci xusbps-ehci.0: irq 53, io mem 0×00000000
xusbps- ehci xusbps-ehci.0: USB 2.0 iniciado, EHCI 0.00
hub 1-0: 1.0: concentrador USB encontrado
hub 1-0: 1.0: 0 puertos detectados
Inicializando el controlador de almacenamiento masivo USB…
usbcore: nuevo controlador de interfaz registrado de almacenamiento USB
Soporte de almacenamiento masivo USB registrado.
Dispositivo USB Xilinx PS Controlador del controlador (01 de abril de 2011)
mousedev: dispositivo de mouse PS/2 común para todos los ratones
controlador de entradas i2c /dev
Interfaz de captura de video de Linux: v2.00
gspca_main: v2.14.0 registrado
uvcvideo: no se puede crear el directorio debugfs
usbcore: nuevo controlador de interfaz registrado uvcvideo
Controlador USB Video Class (1.1.1)
WDT OF probe
xwdtps f8005000.swdt: Temporizador de vigilancia Xilinx en 0xf0066000 con tiempo de espera de 10 segundos
sdhci: Controlador de interfaz de controlador de host Secure Digital
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: plataforma SDHCI y asistente de controlador OF
mmc0: controlador SDHCI activado e0100000.sdhci [e0100000.sdhci] usando ADMA
usbcore: nuevo controlador de interfaz registrado usbhid
usbhid: controlador central USB HID
TCP cúbico registrado
NET: Protocolo registrado f
amily 17
Soporte VFP v0.3: implementador 41 arquitectura 3 parte 40 variante 0 rev 0
Registro del controlador de emulación SWP/SWPB
drivers/rtc/hctosys .c: no se puede abrir el dispositivo rtc (rtc0)
GEM: lp-gt; tx_bd ffdfb000 lp-gt; tx_bd_dma 2f2b2000 lp-gt; ;rx_bd ffdfc000 lp-gt; rx_bd_dma 2f2b1000 lp-gt; rx_skb ee9198c0
GEM: MAC 0x3143c4d2, 0x0000d06b, d2:c4:43:31:6b:d0
GEM: phydev ee90ec00, phydev-gt; phy_id 0x1410cc2, phydev-gt; addr 0×17
eth0, phy_addr 0×17, phy_id 0x01410cc2
eth0, adjunte [Marvell 88E1111] controlador phy
Enviando solicitudes DHCP., OK
IP-Config: Recibí respuesta DHCP de 10.0.2.2, mi dirección es 10.0.2.15
IP-Config: Completa:
dispositivo=eth0, addr=10.0.2.15, máscara=255.255.255.0, gw=10.0.2.2,
host=10.0.2.15, dominio=, nis-dominio=( none),
bootserver=10.0.2.2, rootserver=10.0.2.2, rootpath=
RAMDISK: sistema de archivos ext2 encontrado en el bloque 0
RAMDISK: cargando 8192 KB [1 disco] en el disco RAM... listo.
VFS: raíz montada (sistema de archivos ext2) en el dispositivo 1:0.
devtmpfs: montado
Liberando init memoria: 144K
Iniciando rcS…
Montando el sistema de archivos
Configurando mdev
eth0: enlace (1000/COMPLETO) p> p>
Iniciando el demonio telnet
Iniciando el demonio http
Iniciando el demonio ftp
Iniciando el demonio dropbear (ssh)
rcS completo
zynqgt; uname -v
#1 SMP
PREEMPT Jue 12 de julio 09:04:32 MDT 2012
zynqgt; df
Sistema de archivos 1K-bloques Usado Disponible Uso Montado en
ninguno 508808 0 508808 0 / tmp
zynqgt;