2 votos

Acceso a los registros de la CPU durante el reinicio mediante DSTREAM y DS5

El problema que tengo actualmente es que deseo probar SecureBoot en un dispositivo sin modificar permanentemente un conjunto de registros de seguridad internos con información de hash computada. La forma en que la documentación sugiere que se haga esto es cargar un blob de configuración de restablecimiento modificado de tal manera que la ejecución se "retiene" en el momento del arranque. Esto le da suficiente tiempo para utilizar JTAG para establecer los registros de interés antes de liberar manualmente la CPU.

Sin embargo, mi problema es que mientras la CPU está en reset no soy capaz de conectarme y leer los valores de los registros. El dispositivo JTAG que estoy utilizando es el ARM DSTREAM junto con su entorno de desarrollo DS5. Mientras está en reinicio, el conjunto de herramientas identifica el dispositivo como "mantenido en reinicio", pero todos los intentos de utilizar la función de "navegador de memoria" no devuelven ningún resultado.

Esto funciona bien, por supuesto, si la CPU está primero en estado de ejecución y yo interrumpo manualmente la ejecución antes de intentar leer la memoria.


tl;dr

¿Pueden leerse los valores de los registros/el contenido de la memoria de una CPU a través de JTAG cuando el núcleo se mantiene en estado de reinicio?


EDITAR

Algunos de los detalles de cómo configurar el dispositivo para que se mantenga apagado en el arranque son muy específicos de este dispositivo, pero los núcleos se mantienen en un estado de reinicio cuando están habilitados. El SoC es un QorIQ LS1043A de NXP. Este chip es una variante de cuatro núcleos del LS1021, que tiene una nota de aplicación para este aquí . La referencia a la habilitación del estado de retención se establece como la configuración de BOOT_HO=1 en la palabra de configuración de reinicio.

Todo lo que veo al intentar leer de la memoria mientras los núcleos se mantienen en reset es lo siguiente, independientemente de la dirección que se lea: enter image description here

2voto

TheBonsai Puntos 3112

DS-5 admite el acceso a los registros del procesador mientras la lógica que no es de depuración del núcleo se mantiene en el estado de reinicio después de un reinicio en caliente. Esto se describe en términos generales en la Guía de configuración del hardware de depuración

Para este caso de uso específico, depende de cómo se secuencie el proceso de arranque para lograr esto internamente, y si el arranque en caliente es suficiente para proporcionar el acceso de depuración de forma genérica. Con el hold reset el estado del procesador se mantiene después de que se desactive el reset, hasta que se borre el bit.

Promover un detalle de los comentarios:

Resulta que tuve que decirle a DS5 que usara el espacio de nombres de la depuración del hardware de depuración. Este SoC específico tenía una interfaz AHB, así que el comando estaba prefijado como tal. Por ejemplo AHB_0:< dirección >

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X