From: Kevin O'Connor <kevin@koconnor.net> To: Gleb Natapov <gleb@redhat.com> Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org, blauwirbel@gmail.com, armbru@redhat.com, alex.williamson@redhat.com, mst@redhat.com, Anthony Liguori <aliguori@us.ibm.com> Subject: Re: [PATCHv6 00/16] boot order specification Date: Sat, 27 Nov 2010 13:40:12 -0500 [thread overview] Message-ID: <20101127184012.GA17455@morn.localdomain> (raw) In-Reply-To: <20101127181541.GC14385@redhat.com> On Sat, Nov 27, 2010 at 08:15:42PM +0200, Gleb Natapov wrote: > On Sat, Nov 27, 2010 at 12:47:26PM -0500, Kevin O'Connor wrote: > > I don't think seabios should try to parse the path. Instead, I think > > seabios should build a name for each device it finds using the same > > algorithm that qemu uses and then just do a string compare to see if > > there is a match. > > > > Also, if qemu wants seabios to boot from a rom, I think it should tell > > seabios that - something like "/pci@i0cf8/rom@4.0/bcv@0" to mean make > > the drive declared by the rom on pci device 4 function 0 in the first > > found bcv the c: drive. > > > Qemu does not know that Seabios needs optionrom to boot from a device. > It knows even less about bcvs in option rom. Qemu knows about device > itself, not how firmware boots from it. If the user wants to boot from a device and that device has an optionrom, then it's a safe bet that the optionrom is needed to boot from it. In any case, I'd rather have qemu know which devices seabios can boot then have seabios try to figure out what rom to run from a device path. > > > > There's the product name and there's the order it was registered in > > > > (ie, the third bcv on the rom). > > > Doesn't help much if we can't correlate bcv to device path. > > > > I'm confused by this. SeaBIOS can't boot the device in this situation > > - it can only run a rom. I think qemu should try to send info on > > which rom to run, not which device to boot. Each rom is uniquely > > identifiable by the pci device it came from (or fw_cfg slot), and each > > BCV can be identified by either its instance or its product name. > > > For Qemu those optionroms are just binary blobs. It doesn't know why they > are needed at all (there is no difference for qemu between vga rom and > e1000 rom). > > BTW are you actually aware of any option rom with multiple BCVs and, if > yes, how those BCVs differ? Multiple BCVs - yes. A SCSI card will define a BCV for each attached drive. I don't have a scsi card myself, but the support was added by a user who ran into the problem first hand. I don't know if there are SCSI card roms that will register all the drives on multiple cards in the first rom. I wouldn't be surprised if there are because of the scarcity of space in the 0xc0000-0xf0000 space. (Having secondary optionroms resize themselves to zero would be a big savings.) -Kevin
WARNING: multiple messages have this Message-ID (diff)
From: Kevin O'Connor <kevin@koconnor.net> To: Gleb Natapov <gleb@redhat.com> Cc: Anthony Liguori <aliguori@us.ibm.com>, kvm@vger.kernel.org, mst@redhat.com, qemu-devel@nongnu.org, armbru@redhat.com, blauwirbel@gmail.com, alex.williamson@redhat.com Subject: [Qemu-devel] Re: [PATCHv6 00/16] boot order specification Date: Sat, 27 Nov 2010 13:40:12 -0500 [thread overview] Message-ID: <20101127184012.GA17455@morn.localdomain> (raw) In-Reply-To: <20101127181541.GC14385@redhat.com> On Sat, Nov 27, 2010 at 08:15:42PM +0200, Gleb Natapov wrote: > On Sat, Nov 27, 2010 at 12:47:26PM -0500, Kevin O'Connor wrote: > > I don't think seabios should try to parse the path. Instead, I think > > seabios should build a name for each device it finds using the same > > algorithm that qemu uses and then just do a string compare to see if > > there is a match. > > > > Also, if qemu wants seabios to boot from a rom, I think it should tell > > seabios that - something like "/pci@i0cf8/rom@4.0/bcv@0" to mean make > > the drive declared by the rom on pci device 4 function 0 in the first > > found bcv the c: drive. > > > Qemu does not know that Seabios needs optionrom to boot from a device. > It knows even less about bcvs in option rom. Qemu knows about device > itself, not how firmware boots from it. If the user wants to boot from a device and that device has an optionrom, then it's a safe bet that the optionrom is needed to boot from it. In any case, I'd rather have qemu know which devices seabios can boot then have seabios try to figure out what rom to run from a device path. > > > > There's the product name and there's the order it was registered in > > > > (ie, the third bcv on the rom). > > > Doesn't help much if we can't correlate bcv to device path. > > > > I'm confused by this. SeaBIOS can't boot the device in this situation > > - it can only run a rom. I think qemu should try to send info on > > which rom to run, not which device to boot. Each rom is uniquely > > identifiable by the pci device it came from (or fw_cfg slot), and each > > BCV can be identified by either its instance or its product name. > > > For Qemu those optionroms are just binary blobs. It doesn't know why they > are needed at all (there is no difference for qemu between vga rom and > e1000 rom). > > BTW are you actually aware of any option rom with multiple BCVs and, if > yes, how those BCVs differ? Multiple BCVs - yes. A SCSI card will define a BCV for each attached drive. I don't have a scsi card myself, but the support was added by a user who ran into the problem first hand. I don't know if there are SCSI card roms that will register all the drives on multiple cards in the first rom. I wouldn't be surprised if there are because of the scarcity of space in the 0xc0000-0xf0000 space. (Having secondary optionroms resize themselves to zero would be a big savings.) -Kevin
next prev parent reply other threads:[~2010-11-27 18:40 UTC|newest] Thread overview: 136+ messages / expand[flat|nested] mbox.gz Atom feed top 2010-11-17 16:43 [PATCHv6 00/16] boot order specification Gleb Natapov 2010-11-17 16:43 ` [Qemu-devel] " Gleb Natapov 2010-11-17 16:43 ` [PATCHv6 01/16] Introduce fw_name field to DeviceInfo structure Gleb Natapov 2010-11-17 16:43 ` [Qemu-devel] " Gleb Natapov 2010-11-17 16:43 ` [PATCHv6 02/16] Introduce new BusInfo callback get_fw_dev_path Gleb Natapov 2010-11-17 16:43 ` [Qemu-devel] " Gleb Natapov 2010-11-17 16:43 ` [PATCHv6 03/16] Keep track of ISA ports ISA device is using in qdev Gleb Natapov 2010-11-17 16:43 ` [Qemu-devel] " Gleb Natapov 2010-11-17 16:43 ` [PATCHv6 04/16] Add get_fw_dev_path callback to ISA bus " Gleb Natapov 2010-11-17 16:43 ` [Qemu-devel] " Gleb Natapov 2010-11-17 16:43 ` [PATCHv6 05/16] Store IDE bus id in IDEBus structure for easy access Gleb Natapov 2010-11-17 16:43 ` [Qemu-devel] " Gleb Natapov 2010-11-17 16:43 ` [PATCHv6 06/16] Add get_fw_dev_path callback to IDE bus Gleb Natapov 2010-11-17 16:43 ` [Qemu-devel] " Gleb Natapov 2010-11-17 16:43 ` [PATCHv6 07/16] Add get_dev_path callback for system bus Gleb Natapov 2010-11-17 16:43 ` [Qemu-devel] " Gleb Natapov 2010-11-17 16:43 ` [PATCHv6 08/16] Add get_fw_dev_path callback for pci bus Gleb Natapov 2010-11-17 16:43 ` [Qemu-devel] " Gleb Natapov 2010-11-17 16:43 ` [PATCHv6 09/16] Record which USBDevice USBPort belongs too Gleb Natapov 2010-11-17 16:43 ` [Qemu-devel] " Gleb Natapov 2010-11-17 16:43 ` [PATCHv6 10/16] Add get_dev_path callback for usb bus Gleb Natapov 2010-11-17 16:43 ` [Qemu-devel] " Gleb Natapov 2010-11-17 16:43 ` [PATCHv6 11/16] Add get_dev_path callback to scsi bus Gleb Natapov 2010-11-17 16:43 ` [Qemu-devel] " Gleb Natapov 2010-11-17 16:43 ` [PATCHv6 12/16] Add bootindex parameter to net/block/fd device Gleb Natapov 2010-11-17 16:43 ` [Qemu-devel] " Gleb Natapov 2010-11-17 16:44 ` [PATCHv6 13/16] Change fw_cfg_add_file() to get full file path as a parameter Gleb Natapov 2010-11-17 16:44 ` [Qemu-devel] " Gleb Natapov 2010-11-17 16:44 ` [PATCHv6 14/16] Add bootindex for option roms Gleb Natapov 2010-11-17 16:44 ` [Qemu-devel] " Gleb Natapov 2010-11-17 16:44 ` [PATCHv6 15/16] Add notifier that will be called when machine is fully created Gleb Natapov 2010-11-17 16:44 ` [Qemu-devel] " Gleb Natapov 2010-11-17 16:44 ` [PATCHv6 16/16] Pass boot device list to firmware Gleb Natapov 2010-11-17 16:44 ` [Qemu-devel] " Gleb Natapov 2010-11-23 15:31 ` [PATCHv6 00/16] boot order specification Gleb Natapov 2010-11-23 15:31 ` [Qemu-devel] " Gleb Natapov 2010-11-23 16:12 ` Anthony Liguori 2010-11-23 16:12 ` [Qemu-devel] " Anthony Liguori 2010-11-23 19:30 ` Blue Swirl 2010-11-23 19:30 ` [Qemu-devel] " Blue Swirl 2010-11-27 20:56 ` Avi Kivity 2010-11-27 20:56 ` [Qemu-devel] " Avi Kivity 2010-11-28 7:54 ` Gleb Natapov 2010-11-28 7:54 ` [Qemu-devel] " Gleb Natapov 2010-11-28 9:38 ` Avi Kivity 2010-11-28 9:38 ` [Qemu-devel] " Avi Kivity 2010-11-28 9:47 ` Gleb Natapov 2010-11-28 9:47 ` [Qemu-devel] " Gleb Natapov 2010-11-28 12:39 ` Blue Swirl 2010-11-28 12:39 ` [Qemu-devel] " Blue Swirl 2010-11-28 13:03 ` Gleb Natapov 2010-11-28 13:03 ` [Qemu-devel] " Gleb Natapov 2010-11-28 13:13 ` Michael S. Tsirkin 2010-11-28 13:13 ` [Qemu-devel] " Michael S. Tsirkin 2010-11-28 13:19 ` Gleb Natapov 2010-11-28 13:19 ` [Qemu-devel] " Gleb Natapov 2010-11-28 13:22 ` Blue Swirl 2010-11-28 13:22 ` [Qemu-devel] " Blue Swirl 2010-11-28 17:02 ` Michael S. Tsirkin 2010-11-28 17:02 ` [Qemu-devel] " Michael S. Tsirkin 2010-11-28 17:23 ` Michael S. Tsirkin 2010-11-28 17:23 ` [Qemu-devel] " Michael S. Tsirkin 2010-11-28 18:54 ` Gleb Natapov 2010-11-28 18:54 ` [Qemu-devel] " Gleb Natapov 2010-11-28 19:09 ` Michael S. Tsirkin 2010-11-28 19:09 ` [Qemu-devel] " Michael S. Tsirkin 2010-11-28 19:20 ` Gleb Natapov 2010-11-28 19:20 ` [Qemu-devel] " Gleb Natapov 2010-11-28 13:25 ` Gleb Natapov 2010-11-28 13:25 ` [Qemu-devel] " Gleb Natapov 2010-11-24 1:19 ` Kevin O'Connor 2010-11-24 1:19 ` [Qemu-devel] " Kevin O'Connor 2010-11-24 10:03 ` Gleb Natapov 2010-11-24 10:03 ` [Qemu-devel] " Gleb Natapov 2010-11-27 15:41 ` Kevin O'Connor 2010-11-27 15:41 ` [Qemu-devel] " Kevin O'Connor 2010-11-27 16:22 ` Gleb Natapov 2010-11-27 16:22 ` [Qemu-devel] " Gleb Natapov 2010-11-27 16:49 ` Kevin O'Connor 2010-11-27 16:49 ` [Qemu-devel] " Kevin O'Connor 2010-11-27 17:06 ` Gleb Natapov 2010-11-27 17:06 ` [Qemu-devel] " Gleb Natapov 2010-11-27 17:47 ` Kevin O'Connor 2010-11-27 17:47 ` [Qemu-devel] " Kevin O'Connor 2010-11-27 18:15 ` Gleb Natapov 2010-11-27 18:15 ` [Qemu-devel] " Gleb Natapov 2010-11-27 18:40 ` Kevin O'Connor [this message] 2010-11-27 18:40 ` Kevin O'Connor 2010-11-27 19:04 ` Gleb Natapov 2010-11-27 19:04 ` [Qemu-devel] " Gleb Natapov 2010-11-27 21:07 ` Kevin O'Connor 2010-11-27 21:07 ` [Qemu-devel] " Kevin O'Connor 2010-11-28 7:45 ` Gleb Natapov 2010-11-28 7:45 ` [Qemu-devel] " Gleb Natapov 2010-11-28 17:15 ` Kevin O'Connor 2010-11-28 17:15 ` [Qemu-devel] " Kevin O'Connor 2010-11-28 18:47 ` Gleb Natapov 2010-11-28 18:47 ` [Qemu-devel] " Gleb Natapov 2010-11-30 1:34 ` Kevin O'Connor 2010-11-30 14:01 ` Gleb Natapov 2010-11-30 14:01 ` [Qemu-devel] " Gleb Natapov 2010-12-01 2:53 ` Kevin O'Connor 2010-12-01 2:53 ` [Qemu-devel] " Kevin O'Connor 2010-12-01 12:27 ` Gleb Natapov 2010-12-01 12:27 ` [Qemu-devel] " Gleb Natapov 2010-12-02 2:25 ` Kevin O'Connor 2010-12-02 2:25 ` [Qemu-devel] " Kevin O'Connor 2010-12-02 12:30 ` Gleb Natapov 2010-12-02 12:30 ` [Qemu-devel] " Gleb Natapov 2010-12-02 15:07 ` [SeaBIOS] " Peter Stuge 2010-12-02 15:07 ` [Qemu-devel] " Peter Stuge 2010-12-02 17:13 ` Gleb Natapov 2010-12-02 17:13 ` [Qemu-devel] " Gleb Natapov 2010-12-02 21:22 ` Sebastian Herbszt 2010-12-02 21:22 ` [Qemu-devel] " Sebastian Herbszt 2010-12-03 2:01 ` Kevin O'Connor 2010-12-03 2:01 ` [Qemu-devel] " Kevin O'Connor 2010-12-03 5:55 ` Gleb Natapov 2010-12-03 5:55 ` [Qemu-devel] " Gleb Natapov 2010-11-29 10:50 ` Gerd Hoffmann 2010-11-29 10:50 ` [Qemu-devel] " Gerd Hoffmann 2010-11-30 1:55 ` Kevin O'Connor 2010-11-30 14:59 ` Gleb Natapov 2010-11-30 14:59 ` [Qemu-devel] " Gleb Natapov 2010-11-28 19:00 ` [SeaBIOS] " Peter Stuge 2010-11-28 19:00 ` [Qemu-devel] " Peter Stuge 2010-11-28 19:11 ` Peter Stuge 2010-11-28 19:11 ` [Qemu-devel] " Peter Stuge 2010-11-28 19:52 ` Gleb Natapov 2010-11-28 19:52 ` [Qemu-devel] " Gleb Natapov 2010-11-28 19:16 ` Gleb Natapov 2010-11-28 19:16 ` [Qemu-devel] " Gleb Natapov 2010-11-29 10:19 ` Gerd Hoffmann 2010-11-29 10:19 ` [Qemu-devel] " Gerd Hoffmann 2010-11-29 12:07 ` Gleb Natapov 2010-11-29 12:07 ` [Qemu-devel] " Gleb Natapov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20101127184012.GA17455@morn.localdomain \ --to=kevin@koconnor.net \ --cc=alex.williamson@redhat.com \ --cc=aliguori@us.ibm.com \ --cc=armbru@redhat.com \ --cc=blauwirbel@gmail.com \ --cc=gleb@redhat.com \ --cc=kvm@vger.kernel.org \ --cc=mst@redhat.com \ --cc=qemu-devel@nongnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.