Message ID | 1549390526-24246-21-git-send-email-pbonzini@redhat.com |
---|---|
State | New |
Headers | show
Return-Path: <qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org> X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=<UNKNOWN>) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ppY+SNMV"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 43vD532L2yz9s7h for <incoming@patchwork.ozlabs.org>; Wed, 6 Feb 2019 05:44:23 +1100 (AEDT) Received: from localhost ([127.0.0.1]:37743 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>) id 1gr5hl-0008OK-Ag for incoming@patchwork.ozlabs.org; Tue, 05 Feb 2019 13:44:21 -0500 Received: from eggs.gnu.org ([209.51.188.92]:36026) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <paolo.bonzini@gmail.com>) id 1gr5GL-0002O9-US for qemu-devel@nongnu.org; Tue, 05 Feb 2019 13:16:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <paolo.bonzini@gmail.com>) id 1gr5GI-0003oa-Cf for qemu-devel@nongnu.org; Tue, 05 Feb 2019 13:16:01 -0500 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]:35490) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from <paolo.bonzini@gmail.com>) id 1gr5GH-0003eH-PY for qemu-devel@nongnu.org; Tue, 05 Feb 2019 13:15:58 -0500 Received: by mail-wm1-x32d.google.com with SMTP id t200so4796957wmt.0 for <qemu-devel@nongnu.org>; Tue, 05 Feb 2019 10:15:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=5CBtt4xfXFFq047st/rPFliA064FpqbSDIzcqCQR2U8=; b=ppY+SNMVV5343gBY39X7b2vEjhb1FTPSR+yi7h4IXaalIw7XiPZ9qyjq8nhuWlgnTt MMyW0KSw4yl/aLarK9yrHoKGDNhYDzIrONht6ceZ/+IYavFj8wWolBHdwaK0XPKou9Kx zJ2ibsK6kZtlQzOA5rDjqhz56vK6rgRp87YR20IZ9VS+e5ujChno+JaEX6iXTze4IE2u LbnrRtfqwfLiFr8dUZfrqhhQk+X4QfraI7KS0O+1qc0Nvamoce4RXowJizH2MyUnTIwp wbvmBoByl7ghxn6WD7tnTgxFU0pe27NXZKOteqZm8DxPPkZI8LNEnGyrEOj7Ke0ZqwoW oNFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=5CBtt4xfXFFq047st/rPFliA064FpqbSDIzcqCQR2U8=; b=mNGW1tKG6/BIDJyrCm0GSrQqabWu7HAry5fmgTnIqUfUrh2WPGRHm4KPDbrpRweTZz 9XTMWg2M10TeJLdIC4HBTthXeHoha2YPFFiEbX5uGBlgIJSP0QLGN6BtzEmzKJDddil2 7tHhrb3+awS6eZGk1Ltw/v0z9IAgKV1PlUrupX06sCvfE5nLs75+yd9pOEakhOQRmvku KmW29jR8Nx6CVddzmhYYanj7IJvwicNJUknFEXaJp0unKlQG84v/P1V/5ubdcJbwBHPf XaSVEBmHsjxvWCSJZPeXZ15P22HmqoQRYVvVj5Wt71Hnn0LKE0iKN+IgRCrv+jSNMAPB 49jg== X-Gm-Message-State: AHQUAubG7K6joF1QRSP6Uvf5ZoLq18vYm1RHvW0aLi12ejECqp5l+nM5 TylPbmrdq3VhW0XpY8XuV3tI7Kg2 X-Google-Smtp-Source: AHgI3IZNkIygTEGjSPmauR4WwERvCawHT7crU5AbqlLdx3JcBpf/YFp3enSOhGVWBuUfswZ+UKSQLg== X-Received: by 2002:a1c:7e56:: with SMTP id z83mr18216wmc.100.1549390549357; Tue, 05 Feb 2019 10:15:49 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id p5sm8931665wmh.16.2019.02.05.10.15.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 05 Feb 2019 10:15:48 -0800 (PST) From: Paolo Bonzini <pbonzini@redhat.com> To: qemu-devel@nongnu.org Date: Tue, 5 Feb 2019 19:14:30 +0100 Message-Id: <1549390526-24246-21-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1549390526-24246-1-git-send-email-pbonzini@redhat.com> References: <1549390526-24246-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::32d Subject: [Qemu-devel] [PULL 20/76] optionrom/pvh: load initrd from fw_cfg X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: <qemu-devel.nongnu.org> List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe> List-Archive: <http://lists.nongnu.org/archive/html/qemu-devel/> List-Post: <mailto:qemu-devel@nongnu.org> List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help> List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>, <mailto:qemu-devel-request@nongnu.org?subject=subscribe> Cc: Stefano Garzarella <sgarzare@redhat.com> Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" <qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org> |
Series |
[PULL,01/76] vhost-user-test: use g_cond_broadcast
|
expand
|
diff --git a/pc-bios/optionrom/pvh_main.c b/pc-bios/optionrom/pvh_main.c index 1dcc5c9..a015e1b 100644 --- a/pc-bios/optionrom/pvh_main.c +++ b/pc-bios/optionrom/pvh_main.c @@ -46,6 +46,7 @@ struct pvh_e820_table { struct pvh_e820_table pvh_e820 asm("pvh_e820") __attribute__ ((aligned)); static struct hvm_start_info start_info; +static struct hvm_modlist_entry ramdisk_mod; static uint8_t cmdline_buffer[CMDLINE_BUFSIZE]; @@ -71,8 +72,8 @@ extern void pvh_load_kernel(void) asm("pvh_load_kernel"); void pvh_load_kernel(void) { void *cmdline_addr = &cmdline_buffer; - void *kernel_entry; - uint32_t cmdline_size, fw_cfg_version = bios_cfg_version(); + void *kernel_entry, *initrd_addr; + uint32_t cmdline_size, initrd_size, fw_cfg_version = bios_cfg_version(); start_info.magic = XEN_HVM_START_MAGIC_VALUE; start_info.version = 1; @@ -110,6 +111,22 @@ void pvh_load_kernel(void) fw_cfg_version); start_info.cmdline_paddr = (uintptr_t)cmdline_addr; + /* Check if we have the initrd to load */ + bios_cfg_read_entry(&initrd_size, FW_CFG_INITRD_SIZE, 4, fw_cfg_version); + if (initrd_size) { + bios_cfg_read_entry(&initrd_addr, FW_CFG_INITRD_ADDR, 4, + fw_cfg_version); + bios_cfg_read_entry(initrd_addr, FW_CFG_INITRD_DATA, initrd_size, + fw_cfg_version); + + ramdisk_mod.paddr = (uintptr_t)initrd_addr; + ramdisk_mod.size = initrd_size; + + /* The first module is always ramdisk. */ + start_info.modlist_paddr = (uintptr_t)&ramdisk_mod; + start_info.nr_modules = 1; + } + bios_cfg_read_entry(&kernel_entry, FW_CFG_KERNEL_ENTRY, 4, fw_cfg_version); asm volatile("jmp *%1" : : "b"(&start_info), "c"(kernel_entry));