All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] enable quietbios and biosprompt checks
Date: Sat, 14 Feb 2009 16:28:59 -0600	[thread overview]
Message-ID: <499745AB.9070107@codemonkey.ws> (raw)
In-Reply-To: <1234421329-8119-4-git-send-email-FOSS@AtlasTechnologiesInc.com>

Cory Fields wrote:
> Note: Default behavior is changed. Now it will default to skipping
> the boot menu.
>
> Signed-off-by: Cory Fields <FOSS@AtlasTechnologiesInc.com>
> ---
>  bios/rombios.c |   90 +++++++++++++++++++++++++++++++++++++++++--------------
>  1 files changed, 67 insertions(+), 23 deletions(-)
>
> diff --git a/bios/rombios.c b/bios/rombios.c
> index ee46e42..39a79b1 100644
> --- a/bios/rombios.c
> +++ b/bios/rombios.c
> @@ -144,6 +144,12 @@
>  #define BX_PCIBIOS       1
>  #define BX_APM           1
>  
> +#define BX_CFG_CTL_PORT    0x510
> +#define BX_CFG_DATA_PORT   0x511
> +#define BX_CFG_SIGNATURE   0x0
> +#define BX_CFG_BIOSPROMPT  0x07
> +#define BX_CFG_QUIETBIOS   0x08
> +
>  #define BX_USE_ATADRV    1
>  #define BX_ELTORITO_BOOT 1
>  
> @@ -2014,6 +2020,32 @@ Bit16u i; ipl_entry_t *e;
>    return 1;
>  }
>  
> +int qemu_cfg_port_probe()
> +{
> +  outw(BX_CFG_CTL_PORT, BX_CFG_SIGNATURE);
> +  if (inb(BX_CFG_DATA_PORT) != 'Q') return 0;
> +  if (inb(BX_CFG_DATA_PORT) != 'E') return 0;
> +  if (inb(BX_CFG_DATA_PORT) != 'M') return 0;
> +  if (inb(BX_CFG_DATA_PORT) != 'U') return 0;
> +  return 1;
> +}
> +
> +int qemu_biosprompt_probe()
> +{
> +  if(qemu_cfg_port_probe()) 
> +    outw(BX_CFG_CTL_PORT, BX_CFG_BIOSPROMPT);
> +      if (inb(BX_CFG_DATA_PORT)) return 1;
> +  return 0;
> +}
> +
> +int qemu_quietbios_probe()
> +{
> +  if(qemu_cfg_port_probe())
> +    outw(BX_CFG_CTL_PORT, BX_CFG_QUIETBIOS);
> +      if (inb(BX_CFG_DATA_PORT)) return 1;
> +  return 0;
> +}
> +
>  #if BX_ELTORITO_BOOT
>    void
>  interactive_bootkey()
> @@ -2478,7 +2510,7 @@ static int await_ide(when_done,base,timeout)
>  void ata_detect( )
>  {
>    Bit16u ebda_seg=read_word(0x0040,0x000E);
> -  Bit8u  hdcount, cdcount, device, type;
> +  Bit8u  hdcount, cdcount, device, type, quietbios;
>    Bit8u  buffer[0x0200];
>  
>  #if BX_MAX_ATA_INTERFACES > 0
> @@ -2738,26 +2770,28 @@ void ata_detect( )
>            break;
>          }
>  
> -      switch (type) {
> -        case ATA_TYPE_ATA:
> -          printf("ata%d %s: ",channel,slave?" slave":"master");
> -          i=0; while(c=read_byte(get_SS(),model+i++)) printf("%c",c);
> -	  if (sizeinmb < (1UL<<16))
> -            printf(" ATA-%d Hard-Disk (%4u MBytes)\n", version, (Bit16u)sizeinmb);
> -	  else
> -            printf(" ATA-%d Hard-Disk (%4u GBytes)\n", version, (Bit16u)(sizeinmb>>10));
> -          break;
> -        case ATA_TYPE_ATAPI:
> -          printf("ata%d %s: ",channel,slave?" slave":"master");
> -          i=0; while(c=read_byte(get_SS(),model+i++)) printf("%c",c);
> -          if(read_byte(ebda_seg,&EbdaData->ata.devices[device].device)==ATA_DEVICE_CDROM)
> -            printf(" ATAPI-%d CD-Rom/DVD-Rom\n",version);
> -          else
> -            printf(" ATAPI-%d Device\n",version);
> -          break;
> -        case ATA_TYPE_UNKNOWN:
> -          printf("ata%d %s: Unknown device\n",channel,slave?" slave":"master");
> -          break;
> +      if (!quietbios){
> +        switch (type) {
> +          case ATA_TYPE_ATA:
> +            printf("ata%d %s: ",channel,slave?" slave":"master");
> +            i=0; while(c=read_byte(get_SS(),model+i++)) printf("%c",c);
> +	    if (sizeinmb < (1UL<<16))
> +              printf(" ATA-%d Hard-Disk (%4u MBytes)\n", version, (Bit16u)sizeinmb);
> +            else
> +              printf(" ATA-%d Hard-Disk (%4u GBytes)\n", version, (Bit16u)(sizeinmb>>10));
> +            break;
> +          case ATA_TYPE_ATAPI:
> +            printf("ata%d %s: ",channel,slave?" slave":"master");
> +            i=0; while(c=read_byte(get_SS(),model+i++)) printf("%c",c);
> +            if(read_byte(ebda_seg,&EbdaData->ata.devices[device].device)==ATA_DEVICE_CDROM)
> +              printf(" ATAPI-%d CD-Rom/DVD-Rom\n",version);
> +            else
> +              printf(" ATAPI-%d Device\n",version);
> +            break;
> +          case ATA_TYPE_UNKNOWN:
> +            printf("ata%d %s: Unknown device\n",channel,slave?" slave":"master");
> +            break;
> +          }
>          }
>        }
>      }
> @@ -2767,7 +2801,7 @@ void ata_detect( )
>    write_byte(ebda_seg,&EbdaData->ata.cdcount, cdcount);
>    write_byte(0x40,0x75, hdcount);
>  
> -  printf("\n");
> +  if (!quietbios) printf("\n");
>   

Maybe just make a change in printf() to suppress output if quietbios?

Regards,

Anthony Liguori

>    // FIXME : should use bios=cmos|auto|disable bits
>    // FIXME : should know about translation bits
> @@ -10613,7 +10647,11 @@ post_default_ints:
>    mov  ax, #0xc780
>    call rom_scan
>  
> +  call   _qemu_quietbios_probe
> +  test   al,al
> +  jnz    skip_bios_print
>    call _print_bios_banner
> +  skip_bios_print:
>  
>  #if BX_ROMBIOS32
>    call rombios32_init
> @@ -10660,7 +10698,13 @@ post_default_ints:
>    call rom_scan
>  
>  #if BX_ELTORITO_BOOT
> -  call _interactive_bootkey
> +
> + call   _qemu_biosprompt_probe
> + test   al,al
> + jz    skip_timer
> + call _interactive_bootkey
> + 
> +skip_timer:
>  #endif // BX_ELTORITO_BOOT
>  
>    sti        ;; enable interrupts
>   

  reply	other threads:[~2009-02-14 22:29 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-12  6:48 [Qemu-devel] [PATCH 0/4] Cory Fields
2009-02-12  6:48 ` [Qemu-devel] [PATCH] Define a new route for sending data to bios Cory Fields
2009-02-12  6:41   ` Gleb Natapov
2009-02-12 15:50     ` Blue Swirl
2009-02-12  6:48 ` [Qemu-devel] [PATCH] Add args for quiet and prompt Cory Fields
2009-02-12 10:42   ` Kevin Wolf
2009-02-14 22:27   ` Anthony Liguori
2009-02-15  0:07     ` Cory Fields
2009-02-12  6:48 ` [Qemu-devel] [PATCH] enable quietbios and biosprompt checks Cory Fields
2009-02-14 22:28   ` Anthony Liguori [this message]
2009-02-15  0:09     ` Cory Fields
2009-02-12  6:48 ` [Qemu-devel] [PATCH] enable quietbios check Cory Fields
  -- strict thread matches above, loose matches on Subject: below --
2009-02-14 23:57 [Qemu-devel] [PATCH 0/4] Option to suppress bios output and prompt (v2) Cory Fields
2009-02-14 23:57 ` [Qemu-devel] [PATCH] enable quietbios and biosprompt checks Cory Fields

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=499745AB.9070107@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --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: link
Be 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.