Manual Kernelloader

KERNELLOADER 2.1 BY MEGAMAN


Kernelloader es un programa de la scene de PS2 creado por Megaman, este programa nos brinda la posiblidad de realizar facilmente la instalacion,configuracion y arranque de nuestra distribucion de Linux para PS2 gracias a sus numerosas opciones.

Para que los terminos que se emplean en el manual no os suenen a chino, el compañero manugarrote a realizado las siguientes definiciones:

Kernel: Es el software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma más básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema.

Initrd: El disco RAM inicial o initrd, por sus siglas en inglés es un sistema de archivos temporal usado por el núcleo Linux durante el inicio del sistema. Es usado típicamente para hacer los arreglos necesarios antes de que el sistema de archivos raíz pueda ser montado.

IOP: Procesador de Entrada/Salida, es el que controla el tráfico de datos en la Ps2.

Modulo (IRX): Se podría decir que cada módulo es como un driver para cada unos de los periféricos de entrada o salida de la consola (por ejemplo hay un módulo para las Memory cards, otro para los mandos,...).

RTE: Runtime Enviroment, son los servicios de software que están disponibles en tiempo de ejecución. El RTE carga la SBIOS y un pequeño conjunto de módulos IRX antes de cargar el kernel de Linux.

SBIOS: SIF BIOS, es el corazón del RTE que porporciona las librerias que Linux utiliza para comunicarse con el IOP.

TGE: The Great Experiment, fue un proyecto para sustituir el RTE y el bootloader propietarios del ps2linux por herramientas de software libre.

Una vez hemos arrancado el programa con cualquier lanzador de ELFs (ejecutables de PS2), veremos que lee unos cuantos archivos , estos son los modulos que carga el kernelloader para poder inicializarse el propio programa y después sale la pantalla principal del programa (BOOT MENU) con las siguientes opciones:


Boot Current Config
File Menu
Select Kernel
Select Initrd
Configuration Menu
Auto Boot: On/Off
Power off
Reboot


Nota: En cada sección del programa, siempre aparece en la parte inferior de la pantalla la descripción de los controles para el menú o submenú en el que estemos, en Boot Menu (pantalla principal de Kernelloader) y en casi todos los menús y submenús los controles son, X para seleccionar menú, arriba y abajo para desplazarte e izquierda y derecha para avances rápidos por la lista; además hay algunos menús y submenús que se editan con el teclado y para salir de ellos hay que pulsar X.

Boot Current Config: (Cargar configuración actual)

Esta opción nos permite lanzar nuestra distribución Linux o en el proceso de instalación, el minilinux para efectuar la misma, una vez hemos configurado los parámetros del resto de menús a nuestras necesidades y/o gustos (kernel, initrd, módulos cargados, configuración de la pantalla…)

File Menu: (Menú de archivos de configuración)

Este menú nos permite guardar/cargar la configuracion para Linux... para ello tendremos a nuestra disposición las siguientes opciones:

Boot Menu, regresamos al menú principal del programa.
Restore defaults, restaura la configuración del programa a sus valores predeterminados.
Load Config from DVD, carga el archivo de configuración desde el DVD.
Load Config, carga el archivo de configuración de la ruta predeterminada “mc0: kloader/config.txt”
Save Current Config, una vez hayas terminado de configurar los parámetros del programa, esta opción te servirá para guardar un archivo de configuración en formato de texto en la ruta predeterminada, así no tendremos que estar configurando el programa cada vez que queramos lanzar nuestra distro Linux para PS2.
Select Config File, este es un submenú que contiene las siguientes opciones:

    *File Menu, volver al menú anterior.
    *Edit Filename, permite editar el nombre del archivo de configuración y al parecer la ruta de su ubicación (pendiente aún de comprobar).
    *USB Memory Stick, nos permite navegar por el contenido de nuestro dispositivo USB y seleccionar nuestro archivo de configuración para cargarlo.
    *Memory Card 1, la misma función que con USB pero en la MC 1.
    *Memory Card 2, la misma función que con USB pero en la MC 2.
    *CD/DVD, la misma función que con USB pero en la unidad lectora de CD/DVD.

Select Kernel: (Seleccionar Kernel)

Este menú nos permite seleccionar el kernel con el que iniciaremos la distro o instalación de Linux, para ello tendremos a nuestra disposición las siguientes opciones:

Boot Menu, regresamos al menú principal del programa.
Edit Filename, permite editar el nombre del kernel y al parecer la ruta de su ubicación (pendiente aún de comprobar).
Example kernel, no se aun para que sirve.
USB Memory Stick, nos permite elegir el kernel desde cualquier ubicación en USB.
Memory Card 1, nos permite elegir el kernel desde cualquier ubicación en MC 1.
Memory Card 2, nos permite elegir el kernel desde cualquier ubicación en MC 2.
CD/DVD, nos permite elegir el kernel desde cualquier ubicación en CD/DVD.

Select Initrd: (Seleccionar Initrd)

Este menú nos permitirá cargar o desactivar el uso de este archivo, así como el lugar donde se encuentra mediante las siguientes opciones:

Boot Menu, regresamos al menú principal del programa.
Edit Filename, permite editar el nombre del archivo Initrd a emplear y al parecer la ruta de su ubicación (pendiente aún de comprobar).
Disable Initrd, desactiva el uso de Initrd, esta opcion se debe activar una vez hayamos instalado nuestra distribucion Linux para PS2, porque el empleo de Initrd es sólo para la instalacion de la distribucion.
USB Memory Stick, nos permite navegar por el contenido de nuestro dispositivo USB y seleccionar el archivo Initrd para cargarlo.
Memory Card 1, la misma función que con USB pero en MC1.
Memory Card 2, la misma función que con USB pero en MC2.
CD/DVD, la misma función que con USB pero en CD/DVD.

Configuration Menu: (Menu de Configuración)

Este menu es en el que se configuran los aspectos mas importantes del programa, todo lo que esta relacionado con la carga de modulos, activacion del soporte para HDD y red, parametros…

Boot Menu, regresamos al menú principal del programa.
Edit Kernel Parameter, aquí podemos editar los valores de arranque de linux respectivos al tipo de pantalla (pal/ntsc), servidor x (pal/ntsc) y el tamaño descomprimido del archivo Initrd que utilizamos.
Default Kernel Parameter, restaura todos los valores anteriores a sus valores por defecto.
Edit PCIC Type, aun no se que es.
Module List, puedes seleccionar que modulos IOP son cargados en kernelloader. Los modulos con prefijo “rom0”son los modulos “new rom”; los nombres de modulos sin prefijo “rom0” son los modulos “old rom”. Cada PlayStation tiene la misma version de modulos “old rom”.
Ps2link es solo para corregir problemas de kernenloader (desarrollo). Su proposito en este proyecto es mostrar mensajes debbug a traves de la red. Los mensajes pueden ser vistos en el host usando ps2client
Los modulos”new rom” pueden ser diferentes. Aqui hay mas informacion sobre los modulos
(los modulos estan listados en grupo, solo un modulo de cada grupo es requerido).
Cada modulo se puede activar/desactivar segun nuestras necesidades:

eedebug.irx
Requerido: No
Patch: linux-2.4.17_ps2-iop-debug.patch
El modulo envia toda la informacion del procesador IOP al host. Para ver esta informacion es preciso parchear Linux en "/proc/ps2iopdebug" (a la hora de crear el kernel).

init.irx
imodule1.irx
imodule2.irx
imodule3.irx
imodule4.irx
imodule5.irx
Requerido: No
Puedes copiar un modulo en mc0:kloader/ para agregar un modulo personalizado que quieras cargar.

SIO2MAN
XSIO2MAN
sio2man.irx
freesio2.irx
Requerido: Si
Modulo del Sistema. Requerido para iniciar otros modulos.

MCMAN
XMCMAN
mcman.irx
Requerido: Si, acceso a tarjetas de memoria.
Accede a las tarjetas de memoria de IOP.

MCSERV
XMCSERV
mcserv.irx
Requerido: Si, acceso a tarjetas de memoria.
RPC sirve para MCMAN. Linux puede llama la servidor RPC.

PADMAN
XPADMAN
padman.irx
freepad
Requerido: Si, para el acceso a los mandos de control de PlayStation.
El driver y el servidor RPC para acceder a los mandos mediante el EE.

iomanX.irx
Requerido: No, solo para ps2link.
Archivo IO driver de IOP.

poweroff.irx
Requerido: No, solo para ps2link.
Para que funcione el boton de apagado cuando el disco duro se esta usando (DEV9, ps2link).

dev9init.irx
Required: Si, solo para PS2 Fat. Incompatible con PSTwo slim.
Configura dev9 (bahia de expansion, ethernet + hdd).

ps2dev9.irx
Requerido: Si, para PSTwo slim y para ps2link.
Driver para DEV9 (Interfaz hardware para bahia de expansion o PCMCIA).
Concede el acceso a la red y al disco duro

ps2ip.irx
Requerido: No, solo para ps2link.
Pila de protocolo TCP/IP del procesador IOP.

ps2smap.irx
Requerido: No, solo para ps2link.
Driver de la tarjeta de red del procesador IOP. Linux tiene su propio driver. Cuando este driver es usado y el driver de Linux esta activado, el driver de Linux desactivara este. Cuando IOP intente usar la red el sistema se colgara.
Este modulo es incompatible con ps2smap.irx. ¿?

smaprpc.irx
Requerido: Si, para PSTwo si quieres usar ethernet.
Driver de la tarjeta de red del procesador IOP. Tambien necesitas cargar el modulo ps2dev9.irx.


ps2link.irx
Requerido: No, solo para ps2link.
ps2link es un modulo IOP el cual ayuda a solucionar problemas en el desarrollo del programa.

sharedmem.irx
Requerido: No, solo para ps2link o si aplicas el parche.
Patch: linux-2.4.17_ps2-printk.patch
Este modulo es solo para debugging y es mas facil que la interfaz RPC. Su proposito es tener un modo facil de mostrar mensajes de.
Si aplicas el parche, Linux solo iniciara si activas este modulo.

iopintr.irx
intrelay-direct.irx
intrelay-direct-rpc.irx
intrelay-dev9.irx
intrelay-dev9-rpc.irx
Requerido: Si
Redirecciona las interrupciones desde IOP a EE.
Solo necesitas un modulo. El modulo normal es "intrelay-direct.irx". Si usas ps2link o ps2dev9 necesitas cargar "intrelay-dev9.irx".
El modulo RTE "iopintr.irx" no incluye la inicializacion de USB; el modulo "intrelay-*.irx" si la incluye, por lo que esta recomendado usar "intrelay-*.irx" en lugar del modulo RTE.
Si tienes una PSTwo slim tienens que usar un modulo con “rpc” en el nombre y parchear :

linux-2.4.17_ps2-rpc-irq.patch

El sistema se puede colgar si intentas acceder a la red desde IOP y EE!

dmarelay.irx
Requerido: No
Redirecciona DMA desde EE a IOP y al reves. No hay driver de Linux que lo use correctamente. Su proposito es incrementar la velocidad de la red y el disco duro. Sólo el modulo RTE funciona.

CDVDMAN
XCDVDMAN
cdvdman.irx
Requerido: Si
Lee CDs y DVDs.

CDVDFSV
XCDVDFSV
Requerido: No
Creo que Linux no precisa de esto.

ADDDRV
Requerido: Si, para leer DVD Video.
Activa el acceso a rom1.

eromdrvloader
EROMDRV
Requerido: Si, para leer DVD Video.
Se necesita cargar y leer.

LIBSD
libsd.irx
freesd.irx
Requerido: Si, para sonido.
Se necesita cargar para que el sonido funcione. Solo el modulo RTE funciona
ROM1:/LIBSD del modelo SCPH-77004 funciona con sdrdrv.irx de RTE.

SDRDRV
sdrdrv.irx
Requerido: Si, para sonido con el kernel Linux original de Sony.
Servidor de sonido. Solo el modulo Rte y ROM1:/SDRDRV del modelo SCPH-39004 funcionan.
Modulos de SCPH-50004 en adelante no funcionan (SDR driver version 4.0.1 (C) SCEI).
La version RTE: SDR driver version 2.0.0 (C)SCEI
La version del modelo SCPH-39004 es: SDR driver version 1.4.0 (C)SCEI

audsrv.irx
Requerido: Si, para sonido con el kernel Linux especial.
Servidor de sonido.

ioptrap.irx
Requerido: No,solo para ps2link
Modulo es solo para debugging.

RMMAN
RMMAN2
Requerido: No
Driver para conrol remoto. Esto no esta soportado ni por TGE ni por RTE SBIOS.

Use SBIOS from TGE (ow RTE),
TGE SBIOS for New Modules,
Enable hard disc and network,
Patch libsd (enable USB),
Enable IOP debug output,
Enable SBIOS Calls, este es un submenú que contiene las siguientes opciones:</p>

    *Configuration Menu, regresamos al menu Configuration Menu.
    *Enable all Calls, activar todas la Calls.
    *Disable all Calls, desactivar todas las Calls
    *Set default for RTE,no se que es.
    *Un listado de las 218 Calls que hay en total para ser activadas o desactivadas individualmente


Net Options, este es un submenú que contiene las siguientes opciones:
    *Configuration Menu, regresamos al menu Configuration Menu.
    *Set IP address, aquí podremos editar la IP.
    *Set Netmask, aquí podremos editar la mascara de subred.
    *Set Gateway IP address, aquí podremos editar nuestra puerta de enlace.
    *Set DNS IP address, aquí podremos editar la IP de nuestro servidor DNS.
    *Reload modules, con esta opción cargarmos de nuevo los modulos que tengamos activados, pensado basicamente para que si hacemos cambios en la configuracion de red, estos se lleven a cabo.

Set Graphic Mode, aun no se que es, pero creo que aquí se deberia poner el comando para activar el entorno grafico.
RTE Copy Menu,
    *Configuration Menu, regresamos al menu Configuration Menu.
    *Edit RTE module path,
    *Copy RTE modules,
    *Edit RTE elf,
    *Edit RTE elf offset,
    *Copy RTE SBIOS,
    *Edit RTE CDVD ELF,
    *Edit RTE CDVDMAN nr,
    *Edit RTE CDVDFSV nr,
    *Extract RTE CDVDMAN,
    *Extract RTE CDVDFSV,


Auto Boot: On/Off: (Arranque automatico)

Esta opción sirve para que en cuanto se ejecute el Kernelloader, este cargue el archivo de configuración en la ruta por defecto (mc0: /kloader/config.txt); esto está por confirmar, pues no se si se podrá cambiar la ruta para el auto boot y por tanto personalizarlo.

Power off: (Apagar la PlayStation2)

Mediante esta opción podemos apagar en un instante nuestra PlayStation2.

Reboot: (Reiniciar PlayStation2)

Al elegir esta opción, reiniciamos nuestra PlayStation2, con lo que nos lleva a la pantalla de “Sony Computer Entertainment Presenta”.

Por favor, no contesteis en este hilo, ha sido creado unica y exclusivamente para alojar este manual pero no sus dudas o preguntas, para tal efecto dirigios al siguiente hilo: http://www.elotrolado.net/hilo_dudas-y-problemas-con-kernenlloader_1376937

Por ultimo no queda nada mas que poner las mejoras que ha ido teniendo el programa a lo largo de sus distintas versiones:


2.1
- Se desactiva el acceso al DVD si falla la carga de eromdrvloader.irx.
- Agregado cliente DNS el cual solo soporta conexion TCP.
- Agregado soporte para descargar archivos desde internet (HTTP).
El servidor DNS necesita ser configurado en el menú “Opciones de red”.
- Agregado parche para libsd que activa el soporte para USB cuando usamos los modulos de sonido de RTE con las nuevas slim PSTwo (v15).
Este parche puede no ser necesario porque esta solucionado activando USB desde EE en vez de IOP; por lo que el parche esta desactivado por defecto.
- Reconocer la region del DVD desde NVM. Esto deberia funcionar con
SCPH-77004. El error con eromdrvloader.irx deberia haberse solucionado
- Cambio de inicializacion de USB, de EE a IOP CPU. Esto hace al USB mas estable en PSTwo (Slim)
- Error corregido en codigo SBIOS para MC. El error causaba que el sistema se colgase si los modulos XMCMAN y XMCSERV eran usados de forma excesiva en USB en las PsTwo (slim).
- Error corregido en codigo SBIOS para PAD. El error causaba que el sistema se colgase de repente (sobre todo en el arranque) si XPADMAN era usado.
- Por defecto los nuevos modulos son usados en las consolas PSTwo slim Esto hace el USB mas estable. A veces hay problemas al escribir datos en los dispositivos USB en consolas PSTwo slim.
- Agregada la posibilidad de recargar los modulos (para activar un cambio en la configuracion de red).
- Agregado SBIOS call para poder leer DVD Video grabados. Esto nos permie ejecutar live Linux DVDs. Un kernel parcheado (vmlinux_fat_and_slim_v4.gz)es requerido para usar la nueva funcion “SBIOS call”.
- Fixed detection of wrong console type at startup if no configuration
was loaded from memory card.

2.0
- Actualizado PS2SDK SVN a la revision 1601.
- Actualizado gsKit SVN a la revision 1588.
- Solucionada la deteccion del modo PAL/NTSC en PSTwo slim.
- Solucionado ethernet PSTwo slim (smaprpc.irx + Linux patch).
- Inicializado dev9 desde IOP para PSW FAT (ethernet+hdd, dev9init.irx).
- Menu mas facil
- Agregada la opcion "Valores por defecto" en "Menu Archivos de configuracion". Esto restaurara todos los campos a sus valores por defecto menos el kernel y el parcheo Initrd.
- Deteccion de PSTwo slim o PS2 FAT automaticamente sino hay cargada ninguna configuracion o si hemos seleccionado “Valores por defecto”.
- No se si la autodeteccion funcion con la PS2 FAT V11(SCPH-5000?).Yo tengo una SCPH-50004 con version del ROM 0190, pero no estoy seguro si es V10 or V11. He elegido la version del ROM 0190 como el ultimo modelo de PS2 FAT.
- Deberia de haber menos problemas con los dispositivos USB en kernelloader.

1.9
- Soporte para PSTwo slim interrumpido hata que el USB funcione.
- Soporta arranque automatico (sin tener que presionar nigun boton o combinacion).
- Parada del engine de sonido cuando comienza kernelloader.
- Agregada posibilidad de extraer los modulos RTE y SBIOS a una memory card
- Ahora se pueden cargar desde la tarjeta de memoria SBIOS y los modulos RTE.
- El USB puede ser sustituido por una tarjeta de memoria.
- Caracteristica de arranque automatico (tiempo muerto)
- Agregado el modulo de sonido audsrv.irx.
- Agregadas versiones libres de padman, sio2man and libsd.
- Corregido el soporte para DVD Video en PSTwo slim (rom1:EROMDRV?detection)

1.8
- Soporte para DVD Video en kernelloader, para leer el kernel de Linux y el archivo initrd.
- Soporte para kernels comprimidos en la memory card para ahorrar espacio
- Comprobar si el ELF de kernelloader esta bien descargado. Se han detectado problemas por el uso de ELFs mal descargados.
- Erro corregido cuando se intentaba cargar pequeños kernels o archivos Initrd. Se muestra un mensaje de error cuando esto ocurre.
Initrd debe ser desactivado cuando usamos el kernel de ejemplo incluido con kloader.elf.
- Agregada la posibilidad de seleccionar diferentes archivos de configuracion.
- Kernelloader carga carga automaticamente el archivo config.txt desde el lector (CDFS) si lo encuentra.

1.7
- Carateristica de captura de pantalla añadid. La captura de pantalla en kernelloader se realiza presionando el boton R1. La imagen se guardara en el dispositivo USB.
- Solo se permite una RPC call al mismo tiempo. Esto soluciona el fallo con CDVD.
- Se permite el cambio del modo grafico. La implementacion de la funcion setdve ha desaparecido.
- Se ha solucionado el memory hole con SifSetDma() actualmente no es posible con SifCallRpc() y SifbindRpc().
- Revision de codigo de retorno cuando SBIOS call necesita ser “x” mas tarde.

1.6
- Initrd esta ahora soportado incluso si el kernel no esta parcheado.
- Initrd esta ahora en un area de memoria protegida para que no se pueda sobreescribir.
- Revision de pad.c.
- Limpieza de codigo.
- Problema corregido en la cumulacion de IOP.
- Quitadas las advertencias del compilador.
- Agregado soporte para apagar la consola.
- Agregado ¿modo silencioso? para algunas de las funciones, para estar seguro de que la funcion es solicitada correctamente.
- Mejor inicializacion de CDVD.
- Arreglados los bucles del ensamblador demasiado cortos.
- Agregado SBIOS_DEBUG en config.mk para la localizacion y solucion de problemas en SBIOS.
- Se han quitado las estructuras redundantes SIF DMA and SIF RPC.
- Corregidas las instrucciones cuando when debug esta apagado off (printf-if-combination).

1.5
- Se permiten las interrupciones al disco duro. El acceso es rapido.
- Cambiada la configuracion por defecto: Activado HDD y red
Desactivada la salida de IOP.

1.4
- Agregada una opcion en el menu para reiniciar y entrar al navegador de PS2.
- Corregida la autodeteccion del tipo de PCIC para SCPH-10350.
- Agregada la posiblidad de indicar el tipo de PCIC en el menu de kernelloader:
0: Sin nada
1: PCMCIA
2: PCMCIA
3: SCPH-10350 con PHY 83847A y MAC CXD9731GP.
Vacio: Autodetectar

1.3
- Sony Ps2 Linux puede cargar un kernel emulado o emular un kernel
- El disco duro empieza a funcionar, pero sin interrupciones. El acceso es muy lento

1.2
- Corregido “fuera de VRAM” en modo NTSC.
- Agregado codigo para crear capturas de pantalla. El codigo es inestable, por eso lo he desactivado.

1.1
- Mejor estilo y aspecto grafico de la pantalla de arranque.
- Error corregido cuando seleccionamos directorios de las ¿tarjetas de memoria? muchas veces.
- Autodeteccion de la version del modulo de la tarjeta de memoria en SBIOS.
- Corregido el problema de la perdida de señal de debug en eedebug.irx.
- Necesito cambiar las direcciones de carga¿? De kernelloader de 5MB a menos de 4MB,porque el kernel tiene problemas cargando Initrd en direcciones altas. El tamaño maximo del kernel debe ser 4MB.
- Comprobar que los archivos ELF se encuentren en su directorio correspondiente. Se puede desactivar en el menu ("Enable IOP debug output").
- Debug se muestra en la pantalla cuando kernelloader es iniciado.
- Agregado soporte para teclado USB en kernelloader, puedesseleccionar menu usando las teclas de direccion y enter.
- Los parametros del kernel pueden ser editados con un teclado USB.


1.0
- Agregado soporte para CDVD (Se puede leer Playstation CD y Playstation DVD).
- Terminado dmarelay.irx, estoy seguro de la correccion de la funcion leer en la parte ATA.
- El codigo para el disco duro y la red puede ser activado si ps2link esta desactivado por configuracion.
- Ethernet frames pueden mandarse,pero no recibirse.
- El disco duro todavia no funciona.
- Corregido error de manipulacion de interrupcion de SIF RPC.
- Agregados cambios a los modulos para las versiones new y old de la ROM,CDVD no funciona con los modulos new.
- Corregido el problema con “cache aliasing” en sifdma.c (sif1_dmatags).
- Agregado soporte para “RPC printf debug” (usando fileio.c).
- “Print module initialisation messages from IOP on EE GS screen”.
- Agregado un sistema de menus a kernelloade.

0.9
- Soporte para PAD.

0.8
- Soporte para memory card en linux.
- USB en linux tambien cuando ps2link esta cargado .

0.7
- SIFRPC funciona en linux (pero el codigo esta incompleto).
- iopheap RPC funciona en linux (completo).
- Corregida manipulacion de interrupcion.
- USB funciona en linux cuandolos modulos de ps2link de la red estan desconectados.
- Configuracion por defecto es USB linux.

0.6
- Se ha conseguido que SIFRPC working funcione con un kernel emulado.
- Agregado soporte para negative syscalls (syscalls con la primera letra "i", pueden ser safely called en interrupt routines).
- “Added support for semaphores in single thread environment including
Interrupts”.
- Configurado "Hello World!" como ejemplo por defecto para kernel emulado.

0.5
- Agregado soporte graficoen el cargador usando gsKit.
- Agregada opcion de configuracion en config.mk para seleccionar el tipo de SBIOS (RTE/TGE).
- Agregado script que puede extraer el sbios.bin from del DVD1 dePS2 Linux.
- Implemntadas algunas funciones de nivel sifcmd.
- Ampliado mi kernel de ejmplo para emular un kernel real de PS2.
- Ejemplos graficos simples funcionan usando un kernel emulado.
- Use el PS2 tutorial demo como ejemplo.
- Use el "hello world" demo como segundo ejemplo.
- Cambiados DOS line endings a linux line endings.
- Corregida la configuracion de la pila en el kernel de ejemplo.
- Flush TLBs in example kernel.
- El mapa de memoria del kernel de ejemplo es igual que en una PS2 real.
- Rewritten flush and invalidate functions.
- Handle some PS2 syscalls in example kernel.
- Agregados map files para analizar SBIOS, RTE PS2 linux loader y PS2 kernel.
- Agregados algunos syscall para el kernel emulado.
- Added handling of INTC and DMAC to emulated PS2 kernel.
- Added timer interrupt handling to emulated PS2 kernel.

0.4
- Uso de gsKit para mostrar los graficos.
- Uso normal de malloc() en lugar de mempool.

0.3
- Usa direcciones de carga altas (el tamaño maximo del kernel es 5 MB).
- Mempool automaticamente se coloca al final del archivo ELF.
- DesactivaRPC DMA channel antes de empezar linux.
- Problema corregido en exception handler that leads to random bus errors and page faults (at 0x80000204 must be a "nop" instruction).
- Setup some cp0 registers, just to be sure.

0.2
- Quitado el soporte grafico en el cargador.
- Agregado soporte para usar iop printf en memoria compartida.
- Output es rederigido via ps2link.
- Los modulos cargan desde host e iop es reseteado antes de que comience el kernel.
- Exception handler es instalado por el cargador para gestionar errores durante el arranque.

0.1
- Primera publicacion, parche necesario para Linux para manejar excepcion al inicio.
0 respuestas