Tool to Insert/Replace SLIC in Phoenix / Insyde / Dell / EFI BIOSes

Discussion in 'MDL Projects and Applications' started by andyp, Nov 26, 2009.

  1. manu198045

    manu198045 MDL Member

    Aug 24, 2010
    125
    41
    10
    Dear,
    I dont understand what you are talking about.:( i asking for H61M-P20 bios. You are talking about Z77?:(
    Please explain.
    Regards
    Manu
     
  2. andyp

    andyp SLIC Tools Author

    Aug 8, 2008
    1,673
    2,570
    60
    Good idea :p
    Added in v2.02
    Andy

     
  3. nononsence

    nononsence MDL Addicted

    Aug 18, 2009
    806
    826
    30
    Whenever a module is replaced/inserted MMtool will set byte 0x17 (EFI_FFS_FILE_STATE) to 0xF8 replicating this may
    prevent a few bricks.
     
  4. andyp

    andyp SLIC Tools Author

    Aug 8, 2008
    1,673
    2,570
    60
    I think all module headers have byte 17h as F8h don't they??
    Andy
     
  5. nononsence

    nononsence MDL Addicted

    Aug 18, 2009
    806
    826
    30
  6. andyp

    andyp SLIC Tools Author

    Aug 8, 2008
    1,673
    2,570
    60
    #2747 andyp, May 30, 2012
    Last edited by a moderator: Apr 20, 2017
    (OP)
  7. biostaruser

    biostaruser MDL Novice

    May 28, 2012
    6
    0
    0
    Are Biostar UEFI users out of luck getting support from the developers?
     
  8. nononsence

    nononsence MDL Addicted

    Aug 18, 2009
    806
    826
    30
    #2749 nononsence, May 30, 2012
    Last edited by a moderator: Apr 20, 2017
    GenFfs.exe sets the file state field to
    Code:
    FfsFileHeader.State = EFI_FILE_HEADER_CONSTRUCTION | EFI_FILE_HEADER_VALID | EFI_FILE_DATA_VALID;
    
    on line 869 of GenFfs.c which is 0x07 it could be set to 0xF8 when GenFv.exe is used, I haven't dug that deep
    into it yet.

    EDIT:

    found it in GenFvInternalLib.c line 381

    Code:
    VOID
    UpdateFfsFileState (
      IN EFI_FFS_FILE_HEADER          *FfsFile,
      IN EFI_FIRMWARE_VOLUME_HEADER   *FvHeader
      )
    /*++
    
    Routine Description:
    
      This function changes the FFS file attributes based on the erase polarity
      of the FV. Update the reserved bits of State to EFI_FVB2_ERASE_POLARITY. 
    
    Arguments:
    
      FfsFile   File header.
      FvHeader  FV header.
    
    Returns:
    
      None
    
    --*/
    {
      if (FvHeader->Attributes & EFI_FVB2_ERASE_POLARITY) {
        FfsFile->State = (UINT8)~(FfsFile->State);
        // FfsFile->State |= ~(UINT8) EFI_FILE_ALL_STATE_BITS;
      }
    }
    
     
  9. conghoaxa1

    conghoaxa1 MDL BIOS/EFI Modifier

    Oct 30, 2009
    2,069
    1,195
    90
    chose no.
    only modify 3 modul
    acpi 16D0A23E-C09C-407D-A14A-AD058FDD0CA1_1_189.ROM (RSDT, XSDT)
    69009842-63F2-43DB-964B-EFAD1C39EC85_0_312.ROM (maker)
    996AA1E0-1E8C-4F36-B519-A170A206FC14_0_314.ROM (Pubkey)
    (manufacturer: chose other, no select Msi)
    ----------
    It's guide H61M-P20.
     
  10. andyp

    andyp SLIC Tools Author

    Aug 8, 2008
    1,673
    2,570
    60
    #2752 andyp, May 30, 2012
    Last edited by a moderator: Apr 20, 2017
    (OP)
    Thanks.
    The tool doesn't use any of the sample EFI code, it is all custom written in vb.net. I actually figured out the headers/modules by hand before the EFI docs (as the old Insyde BIOSes were effectively a subset of EFI).
    The only EFI code I use is the compress/decompress sample code with a few lines added for DLL
    Andy

     
  11. andyp

    andyp SLIC Tools Author

    Aug 8, 2008
    1,673
    2,570
    60
    Huh??
    Andy
     
  12. nononsence

    nononsence MDL Addicted

    Aug 18, 2009
    806
    826
    30
    I'm sorry I think there is a misunderstanding, I did not mean to imply that there is a bug in Phoenix tool, or that you are
    using any of the open source tools or code.

    the point I am trying to make is that since MMTool.exe sets the state field in the FFS header that it would also be
    desirable if Phoenix tool also set the state field. If an individual were developing a firmware module using the official
    build tools they would stop the build after GenFfs.exe completed and not continue to build a firmware volume using
    GenFv.exe if they then use Phoenix tool to add the module into the firmware without setting the state field to 0xF8
    they would experience a brick.

     
  13. andyp

    andyp SLIC Tools Author

    Aug 8, 2008
    1,673
    2,570
    60
    Ahh... I get u :)
    I can certainly make the tool flag up any modules that don't have F8h and ask to correct.
    ANdy

     
  14. conghoaxa1

    conghoaxa1 MDL BIOS/EFI Modifier

    Oct 30, 2009
    2,069
    1,195
    90