diff --git a/base-hw/src/core/imx53/trustzone/csu.h b/base-hw/src/core/imx53/trustzone/csu.h index 5a40507c8e..345955111c 100644 --- a/base-hw/src/core/imx53/trustzone/csu.h +++ b/base-hw/src/core/imx53/trustzone/csu.h @@ -41,8 +41,8 @@ namespace Genode { enum { SECURE_UNLOCKED, - SECURE_LOCKED, UNSECURE_UNLOCKED, + SECURE_LOCKED, UNSECURE_LOCKED }; @@ -123,10 +123,10 @@ namespace Genode write(Csl00::UNSECURE); /* GPIO */ - //write(Csl00::UNSECURE); - //write(Csl00::UNSECURE); - //write(Csl00::UNSECURE); - //write(Csl00::UNSECURE); + write(Csl00::SECURE); + write(Csl00::SECURE); + write(Csl00::SECURE); + write(Csl00::SECURE); /* IOMUXC TODO */ write(Csl00::UNSECURE); @@ -138,15 +138,15 @@ namespace Genode write(Csl00::UNSECURE); /* TVE */ - //write(Csl00::UNSECURE); + write(Csl00::SECURE); /* I2C */ - //write(Csl00::UNSECURE); - //write(Csl00::UNSECURE); - //write(Csl00::UNSECURE); + write(Csl00::SECURE); + write(Csl00::SECURE); + write(Csl00::SECURE); /* IPU */ - //write(Csl00::UNSECURE); + write(Csl00::SECURE); /* Audio */ write(Csl00::UNSECURE); @@ -167,10 +167,10 @@ namespace Genode write(Csl00::UNSECURE); /* GPU 2D */ - write(Csl00::UNSECURE); + write(Csl00::SECURE); /* GPU 3D */ - write(Csl00::UNSECURE); + write(Csl00::SECURE); write(Csl00::UNSECURE); write(Csl00::UNSECURE); @@ -196,7 +196,7 @@ namespace Genode write(Csl00::UNSECURE); write(Csl00::UNSECURE); write(Csl00::UNSECURE); - //write(Csl00::UNSECURE); //VPU + write(Csl00::SECURE); //VPU write(Csl00::UNSECURE); write(Csl00::UNSECURE); write(Csl00::UNSECURE); @@ -204,16 +204,19 @@ namespace Genode write(Csl00::UNSECURE); write(Csl00::UNSECURE); + /* DMA from graphical subsystem is considered to be secure */ + write(Master::SECURE_UNLOCKED); + + /* all other DMA operations are insecure */ write(Master::UNSECURE_UNLOCKED); - write(Master::UNSECURE_UNLOCKED); - write(Master::UNSECURE_UNLOCKED); write(Master::UNSECURE_UNLOCKED); write(Master::UNSECURE_UNLOCKED); - write(Master::UNSECURE_UNLOCKED); write(Master::UNSECURE_UNLOCKED); write(Master::UNSECURE_UNLOCKED); write(Master::UNSECURE_UNLOCKED); write(Master::UNSECURE_UNLOCKED); + write(Master::UNSECURE_UNLOCKED); + write(Master::UNSECURE_UNLOCKED); } };