From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40477) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZA16E-00073k-A7 for qemu-devel@nongnu.org; Tue, 30 Jun 2015 15:21:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZA16A-0008AA-3P for qemu-devel@nongnu.org; Tue, 30 Jun 2015 15:21:42 -0400 Received: from mail-yk0-f174.google.com ([209.85.160.174]:35858) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZA169-0008A3-W0 for qemu-devel@nongnu.org; Tue, 30 Jun 2015 15:21:38 -0400 Received: by ykdr198 with SMTP id r198so18365563ykd.3 for ; Tue, 30 Jun 2015 12:21:37 -0700 (PDT) Sender: Peter Crosthwaite From: Peter Crosthwaite Date: Tue, 30 Jun 2015 12:21:32 -0700 Message-Id: Subject: [Qemu-devel] [RFC v0 0/4] Linux boot API and usage in ARM boots List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: edgar.iglesias@xilinx.com, afaerber@suse.de, alistair.francis@xilinx.com Hi Peter and All, QEMU continues to support booting Linux kernels directly without firmware, but Linux is becoming more and more reliant on firmware or bootloader setup. In cases where the firmware is very complicated, the firmware should just be run as the guest and Linux boot is defeatured. But in many cases there is only a handful of operations needed to get into a well defined linux-operable state. So add an interface that devices can implement that allow definition of that state. QEMU Bootloaders can call the linux_init fn for these devices when it is identified that the boot image is Linux sans firmware. Not complete. Need to solve the problem of conditionals. I.e. how to handle a GIC NS setup only in a NS boot. Opaque data might do it. RFCing as Peter sent a related series for GIC NS setup. P1 adds a recursive version of object_child_for_each which allows full QOM tree iterations. I have another use of this out of tree (but well out of scope of this series). P2 is the new API. P3 adds it to GIC, but I have #if 0'd the functional code as it should be rebased to Peter's implementation of the GIC-side functionality. P4 adds boot.c support for Linux devs. Regards, Peter Peter Crosthwaite (4): qom: Add recursive version of object_child_for_each hw: Introduce Linux Device API intc: arm_gic: Implement Linux boot arm: boot: Add support for Linux specific boot devs hw/Makefile.objs | 1 + hw/arm/boot.c | 18 ++++++++++++++++++ hw/guest/Makefile.objs | 1 + hw/guest/linux.c | 14 ++++++++++++++ hw/intc/arm_gic.c | 21 +++++++++++++++++++++ include/hw/guest/linux.h | 32 ++++++++++++++++++++++++++++++++ include/qom/object.h | 15 +++++++++++++++ qom/object.c | 25 ++++++++++++++++++++++--- 8 files changed, 124 insertions(+), 3 deletions(-) create mode 100644 hw/guest/Makefile.objs create mode 100644 hw/guest/linux.c create mode 100644 include/hw/guest/linux.h -- 2.4.5.3.g6a5966f