From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gleb Natapov Subject: Re: [PATCHv4 15/15] Pass boot device list to firmware. Date: Tue, 16 Nov 2010 09:22:45 +0200 Message-ID: <20101116072245.GP7948@redhat.com> References: <1289749181-12070-1-git-send-email-gleb@redhat.com> <1289749181-12070-16-git-send-email-gleb@redhat.com> <20101115034033.GA1309@morn.localdomain> <20101115074008.GF7948@redhat.com> <20101115132635.GA14119@morn.localdomain> <20101115133625.GN7948@redhat.com> <20101116025219.GA6423@morn.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org, blauwirbel@gmail.com, armbru@redhat.com, alex.williamson@redhat.com, mst@redhat.com To: "Kevin O'Connor" Return-path: Received: from mx1.redhat.com ([209.132.183.28]:18311 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759415Ab0KPHWw (ORCPT ); Tue, 16 Nov 2010 02:22:52 -0500 Content-Disposition: inline In-Reply-To: <20101116025219.GA6423@morn.localdomain> Sender: kvm-owner@vger.kernel.org List-ID: On Mon, Nov 15, 2010 at 09:52:19PM -0500, Kevin O'Connor wrote: > On Mon, Nov 15, 2010 at 03:36:25PM +0200, Gleb Natapov wrote: > > On Mon, Nov 15, 2010 at 08:26:35AM -0500, Kevin O'Connor wrote: > > > On Mon, Nov 15, 2010 at 09:40:08AM +0200, Gleb Natapov wrote: > > > > On Sun, Nov 14, 2010 at 10:40:33PM -0500, Kevin O'Connor wrote: > > > > > Why not just return a newline separated list that is null terminated? > > > > > > > > > Doing it like this will needlessly complicate firmware side. How do you > > > > know how much memory to allocate before reading device list? > > > > > > My preference would be for the size to be exposed via the > > > QEMU_CFG_FILE_DIR selector. (My preference would be for all objects > > > in fw_cfg to have entries in QEMU_CFG_FILE_DIR describing their size > > > in a reliable manner.) > > > > > Will interface suggested by Blue will be good for you? The one with two > > fw_cfg ids. BOOTINDEX_LEN for len and BOOTINDEX_DATA for device list. I > > I dislike how different fw_cfg objects pass the length in different > ways (eg, QEMU_CFG_E820_TABLE passes length as first 4 bytes). This > is a common problem - I'd prefer if we could adopt one uniform way of > passing length. I think QEMU_CFG_FILE_DIR solves this problem well. > Looking at available fw cfg option I see that _SIZE _DATA is also a common pattern. The problem with QEMU_CFG_FILE_DIR is that we have very little available slots right now. If we a going to require everything to use it we better grow number of available slots considerably now while it is easily done (no option defined above file slots yet). I personally do not have preferences one way or the other. Blue are you OK with using QEMU_CFG_FILE_DIR? > I also have an ulterior motive here. If the boot order is exposed as > a newline separated list via an entry in QEMU_CFG_FILE_DIR, then this > becomes free for coreboot users as well. (On coreboot, the boot order > could be placed in a "file" in flash with no change to the seabios > code.) > You can define get_boot_order() function and implement it differently for qemu and coreboot. For coreboot it will be one linear. Just call cbfs_copyfile("bootorder"). BTW why newline separation is important? -- Gleb.