Hi! En este post voy a resumir los pasos que tenía que hacer para conseguir KVM de trabajo en el tablero OMAP5 ARM utilizando las extensiones de virtualización.
Modo HYP A15 ARM.
En Cortex-A15 de ARM han introducido un nuevo modo de funcionamiento llamado HYP (hipervisor). Tiene permisos más bajos que TruztZone. De hecho, HYP divide el mundo «inseguro» en dos partes, una para el hipervisor y la otra para los huéspedes. Por defecto, en la mayoría de los tableros el sistema arranca en el modo no HYP inseguro. Para entrar en el modo de HYP, es necesario utilizar formas específicas de la plataforma. . Para OMAP5 este consiste en hacer una llamada a la TrustZone que reiniciar los núcleos modo inseguros Una buena visión general de cómo se ha añadido soporte de virtualización para ARM para Linux está disponible en LWN
http.: / / lwn.net/Articles/557132 /
parche Ingo Molnar HYP
Se ha producido un parche para el u-boot para permitir entrar en el modo HYP en OMAP5 por Ingo Molnar. Es una pena, que fue escrito, ya sea para una revisión temprana de OMAP5 o mal probado. No funcionó para mi pensión, así que tuve que aprender sobre OMAP5 TrustZone SMC comandos de varias fuentes y poner un parche (que está integrado a mi sucursal u-boot).
Si usted está interesado, puede echar un vistazo a la entrada de la lista de correo correspondiente.
http://u-boot.10912.n7.nabble.com/RFD-OMAP5-Working-HYP-mode-td163302.html
Preparando tarjeta SD u-boot
Obtener las imágenes android de TI o construir por sí mismo. Usted puede utilizar la herramienta usbboot para arrancar las imágenes de la PC. O mejor aún, usted puede construir u-boot (este es el modo preferido) y luego no tendrá imágenes de Android. Pero es posible que necesite la GLSDK TI para el x-loader (MLO). Creación de una tarjeta SD con u-boot es el mismo que para OMAP3 y OMAP4, así que voy a dejar esto. Hay algo de magia con la creación de una tabla de particiones adecuado, por lo que te aconsejo que te dan un poco de imagen creado previamente (como ubuntu para PandaBoard) y luego coloque los archivos en la partición FAT.
http://software-dl.ti.com/omap/omap5/omap5_public_sw/OMAP5432-EVM/5AJ_1_5_Release/index_FDS.html
Http://www.omappedia.com/wiki/6AJ.1.1_Release_Notes
Por favor consulte el manual de OMAP5432 sobre cómo configurar los interruptores DIP para que arranque desde la tarjeta SD. Compra u-boot: Para el kernel linux: kernel Linux está basado en 3,8-y la rama de TI omapzoom. He arreglado un puntero nulo en el controlador USB3 DWC y algunos problemas con las máscaras de bits DMA de 64 bits (I hackeado los controladores a trabajar con ARM LPAE, pero esto probablemente les rompí para nada más. La corriente arriba aún no ha decidido sobre la forma como debe ser manipulados). En primer lugar, vamos a construir la obtendrá el u-boot.bin y el u-boot.img (que se puede poner en la tarjeta SD). Además, que construirá la herramienta mkimage que vamos a necesitar más tarde. Ahora, tenemos que crear el script de arranque de u-boot que cargue el kernel y el archivo de árbol de dispositivos en la memoria RAM. i2c mw 0x48 0x15 0xd9 Ahora, compile al formato binario u-boot: export PATH = / home / alexander / handhelds / armv6/linaro-2012q2/bin: $ PATH / scripts / / dtc arch/arm/boot/dts/omap5-uevm.dts-o-OMAP5 uevm.dtb-O DTB
https://github.com/astarasikov/uboot-tegra/tree/omap5_hyp_test
https://github.com/astarasikov/linux/tree/omap5_kvm_hacks Compilar cosas
! # / bin / bash
export PATH = / home/alexander/handhelds/armv6/codesourcery/bin: $ PATH
exportación ARCH = brazo
CROSS_COMPILE exportación = brazo Coincidir eabi-
U_BOARD = omap5_uevm
make clean
hacer distclean
hacer $ {} U_BOARD _config
make-j8
i2c mw 0x48 0x05 0xd4
setenv fdt_high 0xffffffff
FDT addr 0x80F80000
mmc rescan
parte mmc
fatload mmc 0:1 0x80300000 uImage
fatload mmc 0:1 $ {} fdtaddr OMAP5-uevm.dtb
mmcargs setenv setenv bootargs console = ttyO2, 115200n8 root = / dev/sda1 rw rootdelay = 5 earlyprintk nosmp
printenv
mmcargs ejecutar
bootm 0x80300000 – $ {fdtaddr}
. / tools / mkimage-Un brazo-T guión-C no-n «boot.scr OMAP5»-d boot.txt boot.scr linux edificio:
exportación ARCH = brazo
de exportación CROSS_COMPILE = / home/alexander/handhelds/armv6/linaro-2012q2/bin/arm-none-eabi-
OMAP_ROOT exportación = / home / alexander / handhelds / omap
MAKE_OPTS exportación = «-j4 ARCH = $ ARCH CROSS_COMPILE = $ CROSS_COMPILE»
pushd
cd $ {} OMAP_ROOT / kernel_omapzoom
hacer $ MAKE_OPTS omap5uevm_defconfig
hacer $ MAKE_OPTS zImage
popd
Ahora, tenemos que compilar el DTS (dispositivo de código fuente de árbol) con la función DTC. Si usted elige utilizar el usbboot lugar de u-boot, puede activar la opción de configuración de kernel y simplemente añadir el blob DTB hasta el final de zImage
(Opciones de arranque -> Usar anexa dispositivo árbol blob para zImage)
. / usbboot-f; fastboot-c» console = ttyO2 console = rootwait tty0 root = / dev/sda1 «-b núcleo de arranque 0x83000000