1*46c4c49dSIbrahim KanoucheLegacy classifier identifies GPL-3.0 2*46c4c49dSIbrahim KanoucheEXPECTED:Copyright,GPL-2.0 3*46c4c49dSIbrahim Kanouche/* 4*46c4c49dSIbrahim Kanouche * ARM mach-virt emulation 5*46c4c49dSIbrahim Kanouche * 6*46c4c49dSIbrahim Kanouche * Copyright (c) 2013 Linaro Limited 7*46c4c49dSIbrahim Kanouche * 8*46c4c49dSIbrahim Kanouche * This program is free software; you can redistribute it and/or modify it 9*46c4c49dSIbrahim Kanouche * under the terms and conditions of the GNU General Public License, 10*46c4c49dSIbrahim Kanouche * version 2 or later, as published by the Free Software Foundation. 11*46c4c49dSIbrahim Kanouche * 12*46c4c49dSIbrahim Kanouche * This program is distributed in the hope it will be useful, but WITHOUT 13*46c4c49dSIbrahim Kanouche * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 14*46c4c49dSIbrahim Kanouche * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 15*46c4c49dSIbrahim Kanouche * more details. 16*46c4c49dSIbrahim Kanouche * 17*46c4c49dSIbrahim Kanouche * You should have received a copy of the GNU General Public License along with 18*46c4c49dSIbrahim Kanouche * this program. If not, see <http://www.gnu.org/licenses/>. 19*46c4c49dSIbrahim Kanouche * 20*46c4c49dSIbrahim Kanouche * Emulate a virtual board which works by passing Linux all the information 21*46c4c49dSIbrahim Kanouche * it needs about what devices are present via the device tree. 22*46c4c49dSIbrahim Kanouche * There are some restrictions about what we can do here: 23*46c4c49dSIbrahim Kanouche * + we can only present devices whose Linux drivers will work based 24*46c4c49dSIbrahim Kanouche * purely on the device tree with no platform data at all 25*46c4c49dSIbrahim Kanouche * + we want to present a very stripped-down minimalist platform, 26*46c4c49dSIbrahim Kanouche * both because this reduces the security attack surface from the guest 27*46c4c49dSIbrahim Kanouche * and also because it reduces our exposure to being broken when 28*46c4c49dSIbrahim Kanouche * the kernel updates its device tree bindings and requires further 29*46c4c49dSIbrahim Kanouche * information in a device binding that we aren't providing. 30*46c4c49dSIbrahim Kanouche * This is essentially the same approach kvmtool uses. 31*46c4c49dSIbrahim Kanouche */ 32