none
How the LoadCEPC affects the gfx driver initial mode? RRS feed

  • Question

  • Hi All,

        Here is a new thread I created to ask a question about LoadCEPC. Right now our graphics driver can support dynamic resolutions. (In our gfx driver, we tell the GWES the number of modes by NumModes() and give the detail of each mode by GetModeInfo()). Then when the GWES call GPE::SetMode(), it will pick up the match option(match ModeID) in LoadCEPC options(i.e. /L:1024x768x32),  my question is that, we don't want to use LoadCEPC's option as the initial mode, how can we change the mode in our gfx driver as the initial mode?

    Thanks,

    Frank


    AMD Embedded graphics driver group

    Friday, August 22, 2014 2:29 AM

Answers

  • I just thought a bit in these two days. Mabye Bruce and you are right. Now that the user has selected the loadCEPC option, the driver should follow to that even the gfx driver can not change it anymore.

    What I am persisting in is just to want to change the replace the option LoadCEPC set with our gfx driver's resolution. Because LoadCEPC has only very little possibilities by default(1280x1024, 1024x768) excepting you change config.sys and bat file to add more resolutions. Apparently, it is not a very usable way.

    And the good point for me is that right now BLDR and WCELDR don't have this limitation and customer can use our gfx driver with them to set correct initial mode with registry setting instead of other options(such as LoadCEPC's).

    So I plan to close this issue. And thanks for your guys' help here. If I bring some confusion and trouble here. just apologize to you guys! My intention is just try to solve the problem.

    Thanks,

    Frank


    AMD Embedded graphics driver group

    • Marked as answer by Frank, Huang Thursday, August 28, 2014 8:04 AM
    Thursday, August 28, 2014 8:03 AM

All replies

  • Hi Frank,

       your question sounds weird, because previous AMD drivers (e.g. for Ontario platform) used the registry for initial graphics mode.

       WinCE bootloaders (LoadCEPC, BIOSLoader) passes its graphics settings to the kernel via "boot arguments structure". Kernel OAL library (SaveVGAArgs() @ WINCE700\platform\common\src\x86\common\io\ioctl.c) parses it and save to the registry. Actually, only VGA Flatbuffer driver uses these settings. Intel EMGD driver relies on the registry/EDID information.

    Good luck, Igor

    Friday, August 22, 2014 8:43 AM
  • Hi Igor,

       First of all, it sound a little weird. Here is the background. At beginning, our AMD CE gfx driver(Ontario and new Kabini) just return 1 for GPE::NumNodes(), so even the LoadCEPC chooses another mode, the GWES will only use the mode we selected in registry file.

       But right now we returned as many as modes from EDID information for monitor as what Intel did in GPE::NumModes(), there will be some choice for GWES now. And when  LoadCEPC have one option, as you said, it will call into ioctl.c SaveVGAArgs() function(thanks a lot telling me the call place:)). Then the GWES will use this mode to call into GPE::SetMode() and does not use the first mode in our mode list.

       From the function SaveVGAArgs(), it looks like cxDisplayScreencyDisplayScreen, cxPhysicalScreen, cyPhysicalScreen parameters will be affected by LoadCEPC option. So I have tried to modify those parameters as what we wanted. But it seems it does not work for us. The GWES still use the mode in loadcepc to call into SetMode() function.

       So I am trying to find a way to let GWES to use our registry setting. So do you know how to make it happen?

      Here is part of our registry file's content.

    -----------------------------------------------------------

    [HKEY_LOCAL_MACHINE\Drivers\Display\radeongfx]
        "Dll"="radeongfx.dll"
        "VERSION"=dword:00030000
        "TARGETDelay"=dword:3
        "BITDEPTH"=dword:20
        "WIDTH"=dword:780
        "HEIGHT"=dword:4B0
        "REFRESH"=dword:3C
        "VERTICALEXTEND"=dword:0
        "SWAP" = dword:0
        "NOEDID"=dword:0
        "DVII"=dword:0
        "DVID"=dword:0
        "VGA"=dword:0
        "DP_DISABLE"=dword:0
        "LVDS_DISABLE"=dword:0
        "HDMI_DISABLE"=dword:0
        "DVID_DISABLE"=dword:0
        "VGA_DISABLE"=dword:0
        "DPM"=dword:0
        "DPM_FORCED_LEVEL"="auto"
        "TILING"=dword:1
        "MODETEST"=dword:1

    ------------------------------------------------------

    Thanks,

    Frank


    AMD Embedded graphics driver group

    Friday, August 22, 2014 10:44 AM
  • Frank:

    Have you tried:

    1. removing the display settings from the command line for LoadCEPC?

    2. Checking the source code for your display driver?

    BTW:  I told you to start a new thread and ask your question, but then you changed the question completely, and I don't know anything about your display driver.  Your original questions were about LoadCEPC and BIOSLoader.


    Bruce Eitman (eMVP) Senior Engineer Bruce.Eitman AT Eurotech DOT com My BLOG http://geekswithblogs.net/bruceeitman Eurotech Inc. www.Eurotech.com

    Friday, August 22, 2014 1:14 PM
    Moderator
  • Hi Bruce,

        For 1), do you mean "removing /L:1024x768x32"? Yup, If I removed this command line when using loadCEPC, everything works fine.

        For 2), What do you mean for checking our display driver? checking what?

        Hey, listen, I change the name of the thread based on suggestion. For this thread, I thought my thread name matches what I asked. Is there anything problem? What do you want to know or what do you want I write here to describe the situation?

    Thanks,

    Frank


    AMD Embedded graphics driver group

    Monday, August 25, 2014 6:14 AM
  • 1. If you removed the settings from the LoadCEPC command line and "everything works fine", isn't this question closed?  Please mark that as the answer.

    2. Check your display driver to find out how it sets the resolution.

    Based on your description of yourself, isn't this display driver yours?  Didn't your team write it?  If so, why are you asking us about it?


    Bruce Eitman (eMVP) Senior Engineer Bruce.Eitman AT Eurotech DOT com My BLOG http://geekswithblogs.net/bruceeitman Eurotech Inc. www.Eurotech.com

    Monday, August 25, 2014 1:11 PM
    Moderator
  • 1. If you removed the settings from the LoadCEPC command line and "everything works fine", isn't this question closed?  Please mark that as the answer.

    [Frank] No, Right now I don't think it is the end of this question because I didn't get the answer of this question and how to handle it in our gfx driver in next step.

    2. Check your display driver to find out how it sets the resolution.

    Based on your description of yourself, isn't this display driver yours?  Didn't your team write it?  If so, why are you asking us about it?

    [Frank] Definitely the gfx driver is ours and my team write it. I think you didn't get the point what I am asking here. As Igor replied to me, he pointed out  ioctl.c SaveVGAArgs() will change the parameters cxDisplayScreencyDisplayScreen, cxPhysicalScreen, cyPhysicalScreen based on loadcepc setting which is the root cause why GWES will set a ModeID. But our driver don't like that ModeID, we are trying to re-modify those four parameters in our gfx driver and set to other values, but it seems fail to do so(it seems too late to modify it in gfx driver). My question is that if we can change those four parameters in more earlier phase(may be in BSP) to make the GWES uses our settings for (cxDisplayScreencyDisplayScreen, cxPhysicalScreen, cyPhysicalScreen) instead of Loadcepc paramters for them, then GWES can use the correct ModeID we want to SetMode()?

    Thanks,

    Frank



    AMD Embedded graphics driver group


    Wednesday, August 27, 2014 4:35 AM
  • I think the thing that confuses everybody is why do you want to change the resolution as set by LoadCEPC?

    If a user passes a resolution of 1024x768 then obviously they want to set that resolution. Why go against the users wishes and change it?


    Good luck,

    Michel Verhagen, eMVP
    Check out my blog: http://guruce.com/blog

    GuruCE
    Microsoft Embedded Partner
    http://guruce.com
    Consultancy, training and development services.

    Thursday, August 28, 2014 4:42 AM
    Moderator
  • I just thought a bit in these two days. Mabye Bruce and you are right. Now that the user has selected the loadCEPC option, the driver should follow to that even the gfx driver can not change it anymore.

    What I am persisting in is just to want to change the replace the option LoadCEPC set with our gfx driver's resolution. Because LoadCEPC has only very little possibilities by default(1280x1024, 1024x768) excepting you change config.sys and bat file to add more resolutions. Apparently, it is not a very usable way.

    And the good point for me is that right now BLDR and WCELDR don't have this limitation and customer can use our gfx driver with them to set correct initial mode with registry setting instead of other options(such as LoadCEPC's).

    So I plan to close this issue. And thanks for your guys' help here. If I bring some confusion and trouble here. just apologize to you guys! My intention is just try to solve the problem.

    Thanks,

    Frank


    AMD Embedded graphics driver group

    • Marked as answer by Frank, Huang Thursday, August 28, 2014 8:04 AM
    Thursday, August 28, 2014 8:03 AM