Hi,
         Sorry, I misunderstand. You said the monitor and video controller 
support both of 1280*1024 and 1920×1080, but ParseEdidData returing EDID does 
not report 1920×1080? Do you know the reason? I never see this case before. In 
my mind, EDID is the only source for code to know the monitor resolution.

Thanks
Elvin
From: Li, Elvin [mailto:[email protected]]
Sent: Tuesday, November 27, 2012 11:53 AM
To: [email protected]
Subject: Re: [edk2] 答复: 答复: Question about BIOS Video Driver

I think 1920x1080 may not be set successfully and no video may not display, 
because monitor does not support it. I do not really try such scenario.

From: Hawk 
[mailto:[email protected]]<mailto:[mailto:[email protected]]>
Sent: Tuesday, November 27, 2012 11:48 AM
To: [email protected]<mailto:[email protected]>
Subject: [edk2] 答复: 答复: Question about BIOS Video Driver

Elvin,

I’m not sure if there is any confusion. Take one example, if the monitor and 
video controller support both of 1280*1024 and 1920×1080, EDID information can 
only tell us 1280*1024 is supported, but nothing about 1920*1080. So if we want 
to force to set this mode, what will happen?

Thanks,
Hawk.

发件人: Li, Elvin [mailto:[email protected]]<mailto:[mailto:[email protected]]>
发送时间: 2012年11月27日 11:00
收件人: [email protected]<mailto:[email protected]>
主题: Re: [edk2] 答复: Question about BIOS Video Driver

Hi:
         When adding a new mode into GOP modes, BiosVideo uses SearchEdidTiming 
make a check with EDID and each resolution. ParseEdidData only fills EDID data 
for SearchEdidTiming’s use.

    if (EdidFound && (ValidEdidTiming.ValidNumber > 0)) {
      //
      // EDID exist, check whether this mode match with any mode in EDID
      //
      Timing.HorizontalResolution = 
BiosVideoPrivate->VbeModeInformationBlock->XResolution;
      Timing.VerticalResolution = 
BiosVideoPrivate->VbeModeInformationBlock->YResolution;
      if (!SearchEdidTiming (&ValidEdidTiming, &Timing)) {
        continue;
      }
    }

Elvin
From: Hawk [mailto:[email protected]]
Sent: Tuesday, November 27, 2012 10:50 AM
To: [email protected]<mailto:[email protected]>
Subject: [edk2] 答复: Question about BIOS Video Driver

Hi Elvin,

We want to set the highest resolution supported by both of video controller and 
monitor during POST. Also I agree with you about the proposed solution as below 
to have BiosVideo driver achieve this.
But the key point is the current implementation of BIOS video can only 
determine if the following resolution can be supported or not in VBE 3.0 
interface. Check ParseEdidData() for detailes.

n  640 * 480

n  720 * 400

n  800 * 600

n  832 * 624

n  1024 *768

n  1280 * 1024

Is there other interface to convey information of higher resolution, if they 
are supported by both of video controller and monitor?

Thanks,
Hawk.

发件人: Li, Elvin [mailto:[email protected]]<mailto:[mailto:[email protected]]>
发送时间: 2012年11月27日 10:30
收件人: [email protected]<mailto:[email protected]>
主题: Re: [edk2] Question about BIOS Video Driver

Hi:
         You would use GraphicsOutputProtocol->QueryMode to get all the 
resolutions at first, these resolutions returned  has been supported by both 
monitor and video controller, then you can do like GraphicsConsole.c does to 
find the highest resolution:
      MaxMode = Private->GraphicsOutput->Mode->MaxMode;

      for (ModeIndex = 0; ModeIndex < MaxMode; ModeIndex++) {
        Status = Private->GraphicsOutput->QueryMode (
                           Private->GraphicsOutput,
                           ModeIndex,
                           &SizeOfInfo,
                           &Info
                           );
        if (!EFI_ERROR (Status)) {
          if ((Info->HorizontalResolution >= HorizontalResolution) &&
              (Info->VerticalResolution >= VerticalResolution)) {
            HorizontalResolution = Info->HorizontalResolution;
            VerticalResolution   = Info->VerticalResolution;
            ModeNumber           = ModeIndex;
          }
          FreePool (Info);
        }
      }
         What is your purpose? If you want to let BiosVideo driver to set video 
mode to highest resolution directly, you could set PcdVideoHorizontalResolution 
and PcdVideoVerticalResolution to 0x0 to make BiosVideo to set highest 
resolution.

Thanks
Elvin
From: Hawk [mailto:[email protected]]
Sent: Tuesday, November 27, 2012 9:54 AM
To: [email protected]<mailto:[email protected]>
Subject: [edk2] Question about BIOS Video Driver

Hi Experts,

In ParseEdidData() in 
IntelFrameworkModulePkg\Csm\BiosThunk\VideoDxe\BiosVideo.c, the EDID 
information pointed by EdidBuffer is in the format of VBE 3.0 and retrieved by 
int 10 4F15. According to the definition of following timing fields, 1280*1024 
should be the highest resolution to be supported in this way.

EstablishedTimings[0]:
Bitfields for DPMS established timings 1:
Bit(s)         Description
0     720x400 @ 70 Hz (VGA 640x400, IBM)
1     720x400 @ 88 Hz (XGA2)
2     640x480 @ 60 Hz (VGA)
3     640x480 @ 67 Hz (Mac II, Apple)
4     640x480 @ 72 Hz (VESA)
5     640x480 @ 75 Hz (VESA)
6     800x600 @ 56 Hz (VESA)
7     800x600 @ 60 Hz (VESA)

EstablishedTimings[1]:
Bitfields for DPMS established timings 2:
Bit(s)         Description
0     800x600 @ 72 Hz (VESA)
1     800x600 @ 75 Hz (VESA)
2     832x624 @ 75 Hz (Mac II)
3     1024x768 @ 87 Hz interlaced (8514A)
4     1024x768 @ 60 Hz (VESA)
5     1024x768 @ 70 Hz (VESA)
6     1024x768 @ 75 Hz (VESA)
7     1280x1024 @ 75 Hz (VESA)

Our question is if there is one way to retrieve the information about higher 
resolution, if it’s supported by video output device?


Thanks,
Hawk.
------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to