As the hardware complexity of embedded systems is increasing exponentially and flexibility is required to adapt them to a wide variety of applications, virtualization technology brings an effective and clean way of isolating applications from hardware. However, a virtualization-ready SoC platform must support the necessary extensions across the HW/SW stack: applications, programming model, hypervisor and hardware platform. In this work we present the main hardware extensions and architecture of a heterogeneous multicore embedded system supporting virtualization, which provides improved security and isolation among virtualized environments. At the same time, we detail the architecture of a hardware I/O management unit that enables virtualization and provides support for global coherent address space, flow isolation and security, resource utilization and runtime monitoring.