- 22 Ago 2009
- 1.679
- 2
- 0
Bueno viendo que varios users han reclamado un tuto de como poder usar el puerto RS232 del Azbox y luego usar la consola Yamon voy hacer un pequeño tuto de como hacerlo.
Nuestro Azbox dispone de conector de 4 pins en la placa como podemos observar en la siguiente foto, este puerto no podemos conectarlo directamente al PC porque emite señales de bajo nivel y al puerto serie del PC no le llegarian datos legibles por lo que tendremos que usar un conversor TTL a RS232 con chip Max232 o Max233 este conversor lo podremos comprar en Ebay por unos 8 euros y no merece la pena construirlo, es valido cualquier conversor que tengais siempre que adapteis las conexiones como esta en el grafico.
Dependiendo del conversor que compreis necesitareis un cable yo en mi caso lo que he hecho ha sido coger un conector de alimentacion de un Disquetera de 3.5 y con un alfiler o aguja podreis desmontar sus pins para luego soldar los cables en el ordes descrito e insertarlos de nuevo asi podreis usar el dispositivo las veces que querais de manera commoda y sencilla.
Aqui os pongo una captura del conversor TTL a RS232 con Max232:
Despues de todo esto ya podemos conectarlo al PC para ello usaremos simplente un cable SERIE OJO importante no un cable NULLMODEM sino un simple DB9 o cable serie, la conexion debe hacerse con ambos equipos tanto PC o Azbox apagados.
EL ARRANQUE:
El Azbox cuando lo encendemos lo primero que hace es arrancar el zboot este le pasa el control al Yamon que es un software que se encuentra grabado en una parte de la flash de deficil acceso para evitar su borrarlo y se encarga de cargar el kernel, dispone de una serie de comandos basicos que permiten leer, modificar, la flash y la SDRAM en tiempo real.
Esto tiene multitud de ventajas como:
Poder cambiar cambiar el kernel o incluso cargar el kernel en la SDRAM salir del yamon y pasar el control al firmware y probar dicho kernel luego al apagar el equipo vuelve el kernel original almacenado en la flash esto es ideal para pruebas rapidas sin tener que flashear todo el dia.
Para que nos entendamos el Yamon es como un Jtag muy sencillo de usar y sin muchas historias con un simple cable serie y que cualquiera puede realizar, eso si, si borramos la parte de la flash donde esta el YAMON si que tendremos que usar un verdero JTAG para recuperar el azbox por eso digo que todo lo probeis lo hagais sabiendo donde lo haceis.
Ahora tendreis que usar o bien el putty o hyperteminal para conectarlos logicamente teniendo el cable conversor previamente conectado encendeis el azbox en el boton trasero y os saldra un log como este:
Ahora ya tenemos conexion Red con el Pc voy a detallar ahora algunos comandos:
1) PROCESO PRUEBAS DE KERNEL EN LA RAM
En el Linux tendremos que activar el servidor TFTP y luego en la carpeta que hayamos creado a tal efecto metemos el archivo miarchivo.ram.srec este tipo de formato es para cargar en la RAM se obtiene con compilador y el kernel esto todavia hay que estudiarlo de como obtenerlo.
Como instalar y arrancar TFTP en ubuntu:
http://infrabeta.com/tutoriales/item.php?itemid=18
2) PROCESO GRABAR EN LA FLASH CUANDO NO ES POSIBLE EL ARRANQUE.
El formato de archivo que copiaremos en el sever TFTP sera miarchivo.flash.srec este formato es para poder grabarlo en la flash. Tengo que estudiarlo mas detenidamente los offset y tamaño de los mismos para no liarla gorda, jeje seguire ampiando este tuto con mas avances.
Y aqui un listado de todos los comandos disponibles del sistema yamon y el funcionamiento del mismo:
http://pvtridvs.net/pool/docs/mips/MD00008-2B-YAMON-USM-02.01.pdf
La FLASH
El Azbox dispone de una Flash de 8 MB de tipo NOR su mapeo es el siguiente:
Creating 5 MTD partitions on "CS2: Physically mapped flash":
0x00000000-0x00020000 : "CS2-Part1" Tamaño hex 20.000 = 131.072 bytes
0x00020000-0x00040000 : "CS2-Part2" Tamaño hex 20.000 = 131.072 bytes
0x00040000-0x00080000 : "CS2-Part3" Tamaño hex 40.000 = 262.144 bytes
0x00080000-0x00700000 : "CS2-Part4" Tamaño hex 620.000 = 6.422.528 bytes
0x00700000-0x00800000 : "CS2-Part5" Tamaño hex 100.000 = 1.048.576 bytes
Con el siguiente comando de telnet podemos ver como temos montado nuestro sistema incluida la flash y los distintos mtd luego detallare que contiend cada parte:
Part1 MTD1: No estoy muy seguro pero creo que es el Boot de arranque
Part2 MTD2: Contiene el Zboot
Part3 MTD3: Contiene el Yamon (xrpc_xload_yamon_ES4_prod.bin)
Part4 MTD4: Contiene el Kernel (xrpc_xload_vmlinux_ES4_prod.bin)
Part5 MTD5: Contiene la carpeta DISK1 encargada del arranque del azbox.
Con esta info ya podreis trastear y hacer pruebas espero que os sirva de ayuda, yo ahora ando muy mal de tiempo asi de momento lo tengo parado todo pero espero en breve retomar las investigaciones, no obstante para trastear podreis cargar los datos en la SDRAM asi no dañareis nunca la flash y al apagarlo y encenderlo mantendra la que teniais antes.
Salu2.
Nuestro Azbox dispone de conector de 4 pins en la placa como podemos observar en la siguiente foto, este puerto no podemos conectarlo directamente al PC porque emite señales de bajo nivel y al puerto serie del PC no le llegarian datos legibles por lo que tendremos que usar un conversor TTL a RS232 con chip Max232 o Max233 este conversor lo podremos comprar en Ebay por unos 8 euros y no merece la pena construirlo, es valido cualquier conversor que tengais siempre que adapteis las conexiones como esta en el grafico.
Vcc: Tensión 3v
GND (masa)
Tx (transmisión de datos)
Rx (recepción de datos)
Dependiendo del conversor que compreis necesitareis un cable yo en mi caso lo que he hecho ha sido coger un conector de alimentacion de un Disquetera de 3.5 y con un alfiler o aguja podreis desmontar sus pins para luego soldar los cables en el ordes descrito e insertarlos de nuevo asi podreis usar el dispositivo las veces que querais de manera commoda y sencilla.
Aqui os pongo una captura del conversor TTL a RS232 con Max232:
Despues de todo esto ya podemos conectarlo al PC para ello usaremos simplente un cable SERIE OJO importante no un cable NULLMODEM sino un simple DB9 o cable serie, la conexion debe hacerse con ambos equipos tanto PC o Azbox apagados.
EL ARRANQUE:
El Azbox cuando lo encendemos lo primero que hace es arrancar el zboot este le pasa el control al Yamon que es un software que se encuentra grabado en una parte de la flash de deficil acceso para evitar su borrarlo y se encarga de cargar el kernel, dispone de una serie de comandos basicos que permiten leer, modificar, la flash y la SDRAM en tiempo real.
Esto tiene multitud de ventajas como:
Poder cambiar cambiar el kernel o incluso cargar el kernel en la SDRAM salir del yamon y pasar el control al firmware y probar dicho kernel luego al apagar el equipo vuelve el kernel original almacenado en la flash esto es ideal para pruebas rapidas sin tener que flashear todo el dia.
Para que nos entendamos el Yamon es como un Jtag muy sencillo de usar y sin muchas historias con un simple cable serie y que cualquiera puede realizar, eso si, si borramos la parte de la flash donde esta el YAMON si que tendremos que usar un verdero JTAG para recuperar el azbox por eso digo que todo lo probeis lo hagais sabiendo donde lo haceis.
Ahora tendreis que usar o bien el putty o hyperteminal para conectarlos logicamente teniendo el cable conversor previamente conectado encendeis el azbox en el boton trasero y os saldra un log como este:
Y cuando llega a este punto hay que pulsar control+C para acceder a la consola yamon luego a continuacion para poder cargar/enviar cosas tenemos que establecer o habilitar nuestro puerto Ethernet con el siguiente comando:xosPe0 serial#eeb58f965774f62c6348aa0bdfca3a17 subid 0x50
xenv cs2 ok
power supply: ok
dram0 ok (9)
dram1 ok (a)
zboot (0) ok
>
**************************************
* SMP863x zboot start ...
* Version: 2.4.0-2.8.0.1
* Started at 0x91000000.
* Configurations (chip revision: 6):
* Use 8KB DRAM as stack.
* Support XLoad format.
* Enabled BIST mode.
* Enabled memory test mode.
* Use internal memory for stage0/1.
**************************************
Boot from flash (0x48000000) mapped to 0x8c000000.
Found XENV block at 0x8c000000.
CPU clock frequency: 300.37MHz.
System clock frequency: 200.25MHz.
DRAM0 dunit_cfg/delay0_ctrl (0xf34111ba/0x000a8788).
DRAM1 dunit_cfg/delay0_ctrl (0xf34111ba/0x00098887).
Using UART port 0 as console.
Board ID.: "852-E2"
Chip Revision: 0x8634:0x86 .. Matched.
Setting up H/W from XENV block at 0x8c000000.
Setting <SYSCLK avclk_mux> to 0x00000000.
Setting <SYSCLK hostclk_mux> to 0x00000100.
Setting <IRQ rise edge trigger lo> to 0xff28ca00.
Setting <IRQ fall edge trigger lo> to 0x0000c000.
Setting <IRQ rise edge trigger hi> to 0x0000009f.
Setting <IRQ fall edge trigger hi> to 0x00000000.
Setting <IRQ GPIO map> to 0x20090820.
Setting <PB default timing> to 0x10101010.
Setting <PB timing0> to 0x10101010.
Setting <PB Use timing0> to 0x000003f4.
Setting <PB timing1> to 0x00110101.
Setting <PB Use timing1> to 0x000003f3.
Setting <PB timing2> to 0x105f1010.
Setting <PB Use timing2> to 0x000003f8.
PB cs config: 0x000e0040 (use 0x000e0040)
Enabled Devices: 0x00021ace
BM/IDE PCIHost Ethernet I2CM I2CS USB PCIDev2 PCIDev3 SCARD
MAC: 00:02:14:13:ef:f9
PCI IRQ routing:
IDSEL 2: INTA(#14) INTB(#14) INTC(#14) INTD(#14)
IDSEL 3: INTA(#15) INTB(#15) INTC(#15) INTD(#15)
Smartcard pin assignments:
OFF pin = 0
5V pin = 1
CMD pin = 2
Setting up Clean Divider 2 to 96000000Hz.
Setting up Clean Divider 4 to 33333333Hz.
Setting up Clean Divider 5 to 25000000Hz.
Setting up Clean Divider 6 to 20000000Hz.
Setting up Clean Divider 7 to 20000000Hz.
GPIO dir/data = 0x76000038/0x76000000
UART0 GPIO mode/dir/data = 0x6e/0x00/0x00
UART1 GPIO mode/dir/data = 0x6e/0x00/0x00
XENV block processing completed.
Found existing memcfg: DRAM0(0x08000000), DRAM1(0x08000000)
Heap/Temp/Temp1/Dest start at 0x14000000/0x16000000/0x15000000/0x12000000.
Default boot index: 0
Scanning ROMFS image at 0x8c040000 (0x48040000) .. Found.
ROMFS found at 0x8c040000, Volume name = YAMON_XRPC
Found 1 file(s) to be processed in ROMFS.
Processing xrpc_xload_yamon_ES4_prod.bin (start: 0x8c040090, size: 0x0002fe84)
Checking zboot file signature .. Not found.
Trying xrpc_xload format .. OK
Checking zboot file signature at 0x13000000 .. OK
Decompressing to 0x91200000 .. OK (453328/0x6ead0).
Load time total 173/255 msec.
Execute final at 0x91200000 ..
**********************************
* YAMON ROM Monitor
* Revision 02.06-SIGMADESIGNS-01-2.8.0.1
**********************************
Memory: code: 0x11000000-0x11040000, 0x11200000-0x11204000
reserved data: 0x11240000-0x12440000, PCI memory: 0x12440000-0x12840000
Environment variable 'start' exists. After 1 seconds
it will be interpreted as a YAMON command and executed.
Press Ctrl-C (or do BREAK) to bypass this.
desconecta la red ethernetnet down
direccion Ip del Pc o serverYAMON> setenv bootserver 192.168.1.2
direccion gateway de la redYAMON> setenv gateway 192.168.1.1
direccion Ip del azboxYAMON> set ipaddr 192.168.1.80
mascara de redYAMON> set netmask 255.255.255.0
Iniciamos la red y la arrancamos.net init
net up
Ahora ya tenemos conexion Red con el Pc voy a detallar ahora algunos comandos:
1) PROCESO PRUEBAS DE KERNEL EN LA RAM
En el Linux tendremos que activar el servidor TFTP y luego en la carpeta que hayamos creado a tal efecto metemos el archivo miarchivo.ram.srec este tipo de formato es para cargar en la RAM se obtiene con compilador y el kernel esto todavia hay que estudiarlo de como obtenerlo.
Como instalar y arrancar TFTP en ubuntu:
http://infrabeta.com/tutoriales/item.php?itemid=18
Con el comando load podremos cargar el kernel en este caso en la SDRAM ojo no en la flash.YAMON>load tftp://192.168.1.2/vmlinux.flash.srec
El comando go ejecutaria el kernel que ya esta en la RAM desde el primer bloque osea el 0.YAMON> go . / root=dev/mtdblock/0
2) PROCESO GRABAR EN LA FLASH CUANDO NO ES POSIBLE EL ARRANQUE.
El formato de archivo que copiaremos en el sever TFTP sera miarchivo.flash.srec este formato es para poder grabarlo en la flash. Tengo que estudiarlo mas detenidamente los offset y tamaño de los mismos para no liarla gorda, jeje seguire ampiando este tuto con mas avances.
Y aqui un listado de todos los comandos disponibles del sistema yamon y el funcionamiento del mismo:
http://pvtridvs.net/pool/docs/mips/MD00008-2B-YAMON-USM-02.01.pdf
La FLASH
El Azbox dispone de una Flash de 8 MB de tipo NOR su mapeo es el siguiente:
Creating 5 MTD partitions on "CS2: Physically mapped flash":
0x00000000-0x00020000 : "CS2-Part1" Tamaño hex 20.000 = 131.072 bytes
0x00020000-0x00040000 : "CS2-Part2" Tamaño hex 20.000 = 131.072 bytes
0x00040000-0x00080000 : "CS2-Part3" Tamaño hex 40.000 = 262.144 bytes
0x00080000-0x00700000 : "CS2-Part4" Tamaño hex 620.000 = 6.422.528 bytes
0x00700000-0x00800000 : "CS2-Part5" Tamaño hex 100.000 = 1.048.576 bytes
Con el siguiente comando de telnet podemos ver como temos montado nuestro sistema incluida la flash y los distintos mtd luego detallare que contiend cada parte:
MTD0: Contiene los 8mb de la flashMMP[~]$ cat /proc/mtd
dev: size erasesize name
mtd0: 00800000 00010000 "CS2: Physically mapped flash"
mtd1: 00020000 00010000 "CS2-Part1"
mtd2: 00020000 00010000 "CS2-Part2"
mtd3: 00040000 00010000 "CS2-Part3"
mtd4: 00680000 00010000 "CS2-Part4"
mtd5: 00100000 00010000 "CS2-Part5"
Part1 MTD1: No estoy muy seguro pero creo que es el Boot de arranque
Part2 MTD2: Contiene el Zboot
Part3 MTD3: Contiene el Yamon (xrpc_xload_yamon_ES4_prod.bin)
Part4 MTD4: Contiene el Kernel (xrpc_xload_vmlinux_ES4_prod.bin)
Part5 MTD5: Contiene la carpeta DISK1 encargada del arranque del azbox.
Con esta info ya podreis trastear y hacer pruebas espero que os sirva de ayuda, yo ahora ando muy mal de tiempo asi de momento lo tengo parado todo pero espero en breve retomar las investigaciones, no obstante para trastear podreis cargar los datos en la SDRAM asi no dañareis nunca la flash y al apagarlo y encenderlo mantendra la que teniais antes.
Salu2.