[Explicación] Arranque de la PSP

Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, dark_sasuke, m0skit0, LnD, ka69, zacky06

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

[Explicación] Arranque de la PSP

Mensaje por m0skit0 »

Os dejo una vista por encima al proceso que tiene la PSP para arrancar desde el apagado. Espero que os aclare los conceptos de Pre-IPL, IPL, kernel y firmware.

  1. El chip Syscon detecta la pulsación del botón de power y enciende el procesador.
  2. El procesador comienza a ejecutar el programa que se encuentra en la dirección 0xBFC00000 (dirección de la ROM de 4KB embebida en el chip del procesador): la famosa Pre-IPL. La Pre-IPL NO está cifrada, pues de lo contrario el procesador no podría ejecutarla.
  3. Pre-IPL:
    Spoiler:
    1. Comprueba si hay una batería de servicio (pandora). Si la hay, trabaja con MS, sino trabaja con la NAND.
    2. Inicializa el hardware correspondiente: lector de MS en caso de haber batería de servicio, NAND en caso de no haberla.
    3. Inicializa el chip de seguridad (Kirk) encargado del cifrado/descifrado.
    4. Carga bloques de 0x1000 bytes (4096, 4 K) del sector de arranque del dispositivo (MS o NAND), y por cada uno comprueba la firma y lo descifra en RAM. Si alguno de los bloques no está bien firmado, bucle infinito (lo que comúnmente llamamos brick). Este conjunto de bloques es la llamada IPL (Initial Program Loader, cargador inicial de programa).
    5. Una vez cargada, verificada y descifrada la IPL, se le traspasa el control.

  4. IPL:
    Spoiler:
    1. La IPL vuelve a mapear la memoria: desmapea la ROM que contiene la Pre-IPL (a partir de ahora no va a ser accesible el contenido de esta ROM) y se coloca a sí misma en la direccion de arranque (0xBFC00000).
    2. Resetea el procesador.
    3. El procesador vuelve a iniciarse pero esta vez ejecutando la IPL.
    4. Inicialización del resto del hardware (memoria principal de 32/64 MB, vídeo, sonido, sistema de ficheros FAT, etc...). Algunas de estas inicialziaciones dependen de ciertos valores del IdStorage de la NAND.
    5. La IPL verifica la firma, descifra y carga los módulos del firmware según lo indicado en flash0:/kd/pspbtcnf.bin. Si alguno de los módulos no está bien firmado, bucle infinito ( :ladrillo: ). Estos módulos componen el kernel del firmware.
    6. Se transfiere el control al kernel.

  5. Kernel:
    Spoiler:
    1. Arranca el resto del kernel.
    2. Carga los controladores (drivers) del hardware.
    3. Carga el XMB y lo inicia como hilos de ejecución. El kernel mantiene en todo momento el control de la PSP. Su memoria es inaccesible para el código que se ejecuta en memoria de usuario (desde las direcciones 0x00000000 hasta 0x7FFFFFFF), pero sí ofrece ciertos "servicios" a este software de usuario (por ejemplo el XMB o los juegos) como la posibilidad de crear ficheros, leer el disco UMD, comprobar la pulsación de botones, arrancar la Wifi, etc... Estos servicios se acceden mediante lo que se denominan llamadas al sistema (system calls o syscalls).

Espero os haya servido para aclarar conceptos. Saludos!!! ;)
Imagen

mm_david_mm
Habitual
Habitual
Mensajes: 257
Registrado: 05 Sep 2009, 17:47

Re: [Explicación] Arranque de la PSP

Mensaje por mm_david_mm »

Muchas gracias por el aporte, muy curioso y útil :D

Saludos!



Por cierto, si no te supone mucho esfuerzo, ¿podrías poner el proceso de "ejecución" de un eboot/iso/umd? Sólo por curiosidad; si te supone mucho lío no es necesario, pocos aparte de tí lo entenderíamos xD

Avatar de Usuario
dark_sasuke
Moderador Global
Moderador Global
Mensajes: 3379
Registrado: 03 Sep 2009, 02:13
Twitter: D4rkyt0

Re: [Explicación] Arranque de la PSP

Mensaje por dark_sasuke »

gracias profe.....algo mas que aprendi hoy :).....deberias dedicarte a hacer un CFW RAID XD
Imagen

Avatar de Usuario
NEOBARON
ViP Hordes
ViP Hordes
Mensajes: 769
Registrado: 03 Sep 2009, 16:56
PSN ID: NEOBARON

Re: [Explicación] Arranque de la PSP

Mensaje por NEOBARON »

Muy interesante, es decir, que la pre-IPL se queda en ROM y supongo que alguien con la habilidad en electronica suficiente podria leerla antes de que esta desaparezca del mapa en el arranque no?

Otra duda, en el caso de cuando estamos jugando y la dejamos en "standby" para volverla a encender despues... que arranca directamente en el ultimo paso (el kernel) o vuelve a hacer alguna comprobacion de algun tipo?

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Explicación] Arranque de la PSP

Mensaje por m0skit0 »

NEOBARON escribió:la pre-IPL se queda en ROM y supongo que alguien con la habilidad en electronica suficiente podria leerla antes de que esta desaparezca del mapa en el arranque no?

Ten en cuenta que la ROM se encuentra DENTRO del chip (encapsulado) de la CPU... Ya me dirás como vas a pinchar la señal :cry:

NEOBARON escribió:en "standby" para volverla a encender despues...

Te explico el modo standby: el Syscon apaga la CPU y todo el hardware pero mantiene la corriente de la RAM (así no se pierde la información). Al salir del standby, se le aplica corriente al procesador con lo cual es como si iniciara desde el principio. Por tanto, al salir del standby el procesador pasa a ejecutar la direccion de arranque (0x1FC00000, el llamado vector de reseteo en MIPS) que es donde se encuentra la IPL. Por tanto se vuelve a ejecutar la IPL.
Imagen

Avatar de Usuario
NEOBARON
ViP Hordes
ViP Hordes
Mensajes: 769
Registrado: 03 Sep 2009, 16:56
PSN ID: NEOBARON

Re: [Explicación] Arranque de la PSP

Mensaje por NEOBARON »

Um... y no se podria "deshilar" la informacion de la CPU y sacar unicamente lo que corresponde a la ROM?

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Explicación] Arranque de la PSP

Mensaje por m0skit0 »

Habría que desencapsular el chip y eso es jodido que te cagas (miles de euros). Aparte, necesitarías un microscopio de la hostia (miles de euros) para poder ver el interior y aparte alguien que sepa qué cojones está mirando (miles de euros) :D Resumiendo: miles de euros x 3
Imagen

Avatar de Usuario
miguelamacias
Experto
Experto
Mensajes: 960
Registrado: 03 Sep 2009, 14:16
Ubicación: Coria del Río, Sevilla
Contactar:

Re: [Explicación] Arranque de la PSP

Mensaje por miguelamacias »

Ya me ha quedado más claro el problema de la pre-IPL. Gracias por la info.

Avatar de Usuario
dark_sasuke
Moderador Global
Moderador Global
Mensajes: 3379
Registrado: 03 Sep 2009, 02:13
Twitter: D4rkyt0

Re: [Explicación] Arranque de la PSP

Mensaje por dark_sasuke »

m0skit0 escribió:Habría que desencapsular el chip y eso es jodido que te cagas (miles de euros). Aparte, necesitarías un microscopio de la hostia (miles de euros) para poder ver el interior y aparte alguien que sepa qué cojones está mirando (miles de euros) :D Resumiendo: miles de euros x 3


pero vamos tu eres un m0skit0 eres lo suficientemente pequeño para entrar al la CPU y echarle un ojo XD
Imagen

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Explicación] Arranque de la PSP

Mensaje por m0skit0 »

Desgraciadamente no lo suficientemente pequeño :cry:
Imagen

Responder