American Megatrends, Inc.

Acoustic

Copyright

Release Notes

© American Megatrends, Inc.


Acoustic

AMIBIOS Document References

Previous Release Notes

Release Notes 04.htm

Built on 16:26:04 06/13/14


Release Notes - NDA Required

Component Information:
Component Title: IdeAcoustic
Component Reference Name: IdeAcoustic
Component Type: eModule
Release Date: 2012-03-26
Source Control Label: 4.6.3_HddAcoustic_004
Source Control Location: SS: Alaska;$/Alaska/Source/Modules/HddAcoustic;
Driver Dependencies
None
Protocol Dependencies
N0NE
File Dependencies
N0NE
Non-Compiled BIN and LIB File(s) within this Component:
N0NE
Component Description:
This component does the programmed control of acoustic noise of hard disk drive.
NOTE: This label requires ACOUSTIC_MANAGEMENT_SUPPORT token to be Set to Zero, because currently Idebus driver and AHCI bus driver implement acoustic management by this token which this driver does. After the changes for Idebus driver and AHCI bus driver are checked-in this can be removed.
Filename | Description
Main Component | Root\Board\em\Acoustic
Acoustic.cif | Component information file for the eModule.
Acoustic.mak | Make file becomes part of the BIOS build process.
Acoustic.sdl | Contains BIOS build parameters.
Acoustic.dxs | Dependency Expression file for this module.
Acoustic.Chm | Chm file of the emodule.
Acoustic.h | It is the header file for the module.
Acoustic.sd | Contains the constructs for the setup page.
Acoustic.uni | Contains the definitions of the Unicode strings used in the setup page.
Acoustic.c | Initialize and provides protocol for the Acoustic support,issues the SetFeature cmd.
AcousticBoard.c | This file contains DXE stage board component code for Acoustic support,installs the the ACOUSTIC_SETUP_PROTOCOL which would be used in ahci/ide bus driver.
AcousticSetup.c | Initializes Acoustic misc configuration strings.
AcousticProtocol ModulePart | Root\Include\Protocol - It contains Acoustic Setup Protocol header file which contains all structures and function tables that is being used.
AcousticProtocol.h | File that contains all structures and function tables that is used by Acoustic Module.
BIOS Parameters:
Parameter Name | Type | Description
ACOUSTIC_MANAGEMENT_DRIVER_SUPPORT | Boolean | Main switch to enable Acoustic support in Project.
INDIVIDUAL_ACOUSTIC_SUPPORT | Boolean | If Set separate acoustics are supported for each device.
LOCAL_ACOUSTIC_SETUP | Boolean | ON - Setup questions are taken from this module./OFF - Setup questions are with SATA Driver.
ACOUSTIC_DEVICE_COUNT | Integer | Default number of devices that may have Acoustic support.
IDE_CONTROLLER_LOCATION | Expression | It represents the Bus, Device and Function of the IDE (SATA) controller.
SECOND_CONTROLLER_LOCATION | Expression | It represents the Location of second IDE (SATA) controller (if any).
ACOUSTIC_MANAGEMENT_SUPPORT | Boolean | Keep this token always off,because currently Idebus driver and AHCI bus driver implement acoustic management which this driver does. After the changes for Idebus driver and AHCI bus driver are checked-in this can be removed.
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_38, Dated: 2011-12-20
Visual eBios: RSS.5.70.0171, Dated: 2011-12-20
Compiler Tool(s): Microsoft's Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
None
General Bug Fixes:
  • EIP#67652 - Build error when token SB_SETUP_SUPPORT disabled
EIP addressed in this label:
  • EIP#67652 - Build error when token SB_SETUP_SUPPORT disabled
  • EIP#82971 - Added dynamich PCIe base Support in IdeAcoustic
Files changed for EIP fixes:
  • Root\Board\EM\IdeAcoustic\AcousticBoard.c (EIP#82971, #77527)
  • Root\Board\EM\IdeAcoustic\AcousticSetup.c (EIP#67652)
Known issues and limitations in this label:
None
Remaining Issues:
None
Unit Testing:
  • Changed the Acoustic mode in setup.
  • Booted to DOS.
  • checked whether the correct values are programmed in HDD Using RU utility.
  • The above testing was done for all possible acoustic mode in setup.
Validation Test Report

Quality Assurance Test Results
Release History:
4.6.3_HddAcoustic_004

  • [TAG] - EIP67652
    [Category] - Bug Fix
    [Severity] - Minor
    [Symptom] - Build error when token SB_SETUP_SUPPORT disabled
    [RootCause] - Unresolved external symbol gEfiDiskInfoProtocolGuid,SwapEntries referenced in function InitAcousticStrings
    [Solution] - Added gEfiDiskInfoProtocolGuid and SwapEntries function locally
    [Files] - AcousticSetup.c

  • [TAG] - EIP82971
    [Category] - Improvement
    [Description] - Added dynamich PCIe base Support in IdeAcoustic
    [Files] - AcousticBoard.c, AcousticSetup.c

4.6.3_HddAcoustic_003

  • [TAG] - EIP68563
    [Category] - Improvement
    [Description] - Manufacturing Mode not set for the Acoustic setup options.
    [Files] - Acoustic.sd

  • [TAG] - EIP77142
    [Category] - Improvement
    [Description] - Added the function 'IdeNonDataCommandExp' in the 'IDE_BUS_PROTOCOL' and removed the existing function 'IdeNonDataCommand' for supporting the upper 24bits of LBA.
    [Files] - Ata.c, IdeBus.c, Idebus.h, PIDEBus.h, Acoustic.c, IdeSecurity.c, IdeSMART.c

  • [TAG] - EIP77527
    [Category] - Improvement
    [Description] - IdeSecurity, IdeAcoustic and IdeSmart changes should be done based on the Core Version checking.
    [Files] - IdeSecurity.c, IdeSmart.c , Acoustic.c

4.6.3_HddAcoustic_001

  • Initial Release

© American Megatrends Inc.


Acoustic

AMIBIOS Document References

Previous Validation Test Reports

ValidationTestReport04.htm


IdeAcoustic TEST REPORT

IdeAcoustic module has been validated under following test cases and conditions.

Hardware:

  • Hard Disk

Platforms Tested:

  • HuronRiver - Label 4.6.5.4_VEB_1AQPM035
  • Maho Bay - Label 4.6.5.3_VEB_1APTC019
  • Bromolow - Label 4.6.4.1_VEB_1AOSX015
  • Chief River - Label 4.6.5.3_VEB_1APTJ019

Test Report:

Following test cases has been validated in different Acoustic modes.

Acoustic modes | Huron River | Maho Bay | Bromolow | Chief River
Bypass | PASS | PASS | PASS | PASS
Quiet | PASS | PASS | PASS | PASS
Max Performance | PASS | PASS | PASS | PASS

Test Procedure:

    1. Boot the SUT to BIOS setup with HDD.
    2. Goto Advance menu, select SATA Configuration change SATA Mode Selection to 'IDE'.
    3. Goto Advance menu, select the Acoustic Management Configuration.
    4. Enable the Acoustic Management Configuration.
    5. In Acoustic Mode, select the Bypass mode.
    6. Select first boot option to DOS bootable USB key with RU utility.
    7. Save and exit the BIOS setup.
    8. Boot the SUT to DOS and run RU utility.
    9. In RU check the bypass mode detect in HDD using Acoustic spec.
    10. Repeat the step 1 to 7 with Quiet mode and Max performance mode.

Excepted Result:

    RU utility and Acoustic spec value is equal then test is Pass or Fail.


Copyright

American Megatrends, Inc.
5555 Oakbrook Parkway
Suite 200
Norcross, GA 30093 (USA)

Copyright (c) 1999-2012 American Megatrends, Inc. All Rights Reserved.

This publication contains proprietary information, which is protected by copyright. No part of this publication may be reproduced, transcribed, stored in a retrieval system, translated into any language or computer language, or transmitted in any form whatsoever without the prior written consent of the publisher, American Megatrends, Inc.

American Megatrends, Inc. retains the right to update, change, modify this publication at any time, without notice.

For Additional Information

Call American Megatrends BIOS Sales Department at 1-800-828-9264 for additional information.

Limitations of Liability

In no event shall American Megatrends be held liable for any loss, expenses, or damages of any kind whatsoever, whether direct, indirect, incidental, or consequential, arising from the design or use of this product or the support materials provided with the product.

Limited Warranty

No warranties are made, either expressed or implied, with regard to the contents of this work, its merchantability, or fitness for a particular use. American Megatrends assumes no responsibility for errors and omissions or for the uses made of the material contained herein or reader decisions based on such use.

Trademark and Copyright Acknowledgments

All product names used in this publication are for identification purposes only and are trademarks of their respective Companies.


Release Notes - NDA Required

Component Information:
Component Title: IdeAcoustic
Component Reference Name: IdeAcoustic
Component Type: eModule
Release Date: 2013-06-13
Source Control Label: 4.6.3_HddAcoustic_005
Source Control Location: SS: Alaska;$/Alaska/Source/Modules/HddAcoustic;
Driver Dependencies
None
Protocol Dependencies
N0NE
File Dependencies
N0NE
Non-Compiled BIN and LIB File(s) within this Component:
N0NE
Component Description:
This component does the programmed control of acoustic noise of hard disk drive.
NOTE: This label requires ACOUSTIC_MANAGEMENT_SUPPORT token to be Set to Zero, because currently Idebus driver and AHCI bus driver implement acoustic management by this token which this driver does. After the changes for Idebus driver and AHCI bus driver are checked-in this can be removed.
Filename | Description
Main Component | Root\Board\em\Acoustic
Acoustic.cif | Component information file for the eModule.
Acoustic.mak | Make file becomes part of the BIOS build process.
Acoustic.sdl | Contains BIOS build parameters.
Acoustic.dxs | Dependency Expression file for this module.
Acoustic.Chm | Chm file of the emodule.
Acoustic.h | It is the header file for the module.
Acoustic.sd | Contains the constructs for the setup page.
Acoustic.uni | Contains the definitions of the Unicode strings used in the setup page.
Acoustic.c | Initialize and provides protocol for the Acoustic support,issues the SetFeature cmd.
AcousticBoard.c | This file contains DXE stage board component code for Acoustic support,installs the the ACOUSTIC_SETUP_PROTOCOL which would be used in ahci/ide bus driver.
AcousticSetup.c | Initializes Acoustic misc configuration strings.
AcousticProtocol ModulePart | Root\Include\Protocol - It contains Acoustic Setup Protocol header file which contains all structures and function tables that is being used.
AcousticProtocol.h | File that contains all structures and function tables that is used by Acoustic Module.
BIOS Parameters:
Parameter Name | Type | Description
ACOUSTIC_MANAGEMENT_DRIVER_SUPPORT | Boolean | Main switch to enable Acoustic support in Project.
INDIVIDUAL_ACOUSTIC_SUPPORT | Boolean | If Set separate acoustics are supported for each device.
ACOUSTIC_DEVICE_COUNT | Integer | Default number of devices that may have Acoustic support.
IDE_CONTROLLER_LOCATION | Expression | It represents the Bus, Device and Function of the IDE (SATA) controller.
NUMBER_OF_PORTS_ON_FIRST_CONTROLLER | Integer | Number of Ports on First IDE (SATA) controller.
SECOND_CONTROLLER_LOCATION | Expression | It represents the Location of second IDE (SATA) controller (if any).
NUMBER_OF_PORTS_ON_SECOND_CONTROLLER | Integer | Number of Ports on second IDE (SATA) controller (if any).
SECOND_CONTROLLER_COUNTS_BY_DEVICE | BOOLEAN | ON - Second controller increments the device no. only for ports after 0. OFF - Second controller increments like first controller.
ACOUSTIC_MANAGEMENT_SUPPORT | Boolean | Keep this token always off,because currently Idebus driver and AHCI bus driver implement acoustic management which this driver does. After the changes for Idebus driver and AHCI bus driver are checked-in this can be removed.
LOCAL_ACOUSTIC_SETUP | Boolean | ON - Setup questions are taken from this module./OFF - Setup questions are with SATA Driver.
AMI Build Tools:
Tools Label: 4.5.5_TOOLS_41, Dated: 2013-03-19
Visual eBios: RSS.5.73.0244, Dated: 2012-03-19
Compiler Tool(s): Microsoft's Windows Driver Kit (WDK) Ver. 7600.16385.1
New features added in this label:
None
General Bug Fixes:
None
EIP addressed in this label:
EIP#172447 - Runtime attribute set for the some of the variable used by HddAcoustic driver(Aptio-IV) that needs to be reviewed
Files changed for EIP fixes:
Root\Board\EM\IdeAcoustic\AcousticBoard.c (EIP #172447)
Known issues and limitations in this label:
None
Remaining Issues:
None
Unit Testing:
  • Changed the Acoustic mode in setup.
  • Booted to DOS.
  • checked whether the correct values are programmed in HDD Using RU utility.
  • The above testing was done for all possible acoustic mode in setup.
Validation Test Report

Quality Assurance System Test Plan
Quality Assurance Test Results
Release History:
4.6.3_HddAcoustic_005

  • [TAG] EIP172447
    [Category] Improvement
    [Description] Runtime attribute set for the some of the variable used by HddAcoustic driver(Aptio-IV) that needs to be reviewed
    [Files] AcousticBoard.c

Release_4.6.3_HddAcoustic_004

© American Megatrends Inc.


Release Notes - NDA Required

Validation Test Report for IdeAcoustic Label (INT)_a_4.6.3_HddAcoustic_005

Platform Information Form :

Board Information - SharkBay
BIOS Information (Label, Path) - Latest '4.6.5.4_VEB_1AQPM035'; Path 'SS: Alaska;$/Alaska/Projects/Intel/Haswell/LynxPoint_SharkBay_MB_Crb_1AQPM/SharkBay.veb';
Chipset Information (Type, Stepping) -LynxPoint C1
CPU Information (Type, Stepping) -Haswell C0
Memory Info (Manufacturer, Speed, Configuration) -4GB 1600MHz
Graphics (Please specify which one in used) -
Chipset driver Version -
Graphics drive Version -Win64_8.15.10.2761\Win32_10.18.10.3277

The following BQA Tests have been validated in UEFI 2.3.1 BIOS Versions
Build
REF-31718: .N/A 32 Bit Project Compile---- PASS
Status Update:Driver

Hdd Acoustic
REF-33882: EFI Check Bypass Mode with AcousticVal.efi in AHCI Mode ---- PASS
Status Update:
REF-33887: EFI Check Bypass Mode with AcousticVal.efi in IDE mode ---- PASS
Status Update:
REF-33880: .N/A Check HDD is Acoustic supported in setup ---- PASS
Status Update:
REF-33881: .N/A Check HDD is Not Acoustic supported in setup. ---- PASS
Status Update:
REF-33884: EFI Check Max.Performance with AcousticVal.efi in AHCI ---- PASS
Status Update:
REF-33887: EFI Check Max.Performance with AcousticVal.efi in IDE ---- PASS
Status Update:
REF-33883: EFI Check Quiet Mode with AcousticVal.efi in AHCI mode ---- PASS
Status Update:
REF-33886: EFI Check Quiet Mode with AcousticVal.efi in IDE mode ---- PASS
Status Update:
REF-33888: EFI Multiple HDD verify with AcousticVal.efi in AHCI ---- PASS
Status Update:

Platform Information Form :

Board Information - SugarBay
BIOS Information (Label, Path) - Latest 4.6.5.4.'; Path 'SS: Alaska;$/Alaska/Projects/Intel/SandyBridge/CougarPoint_SugarBay';
Chipset Information (Type, Stepping) -
CPU Information (Type, Stepping) -
Memory Info (Manufacturer, Speed, Configuration) -
Graphics (Please specify which one in used) -
Chipset driver Version -
Graphics drive Version -

Build
REF-31718: .N/A 32 Bit Project Compile---- PASS
Status Update:Driver

Hdd Acoustic
REF-33882: EFI Check Bypass Mode with AcousticVal.efi in AHCI Mode ---- PASS
Status Update:
REF-33887: EFI Check Bypass Mode with AcousticVal.efi in IDE mode ---- PASS
Status Update:
REF-33880: .N/A Check HDD is Acoustic supported in setup ---- PASS
Status Update:
REF-33881: .N/A Check HDD is Not Acoustic supported in setup. ---- PASS
Status Update:
REF-33884: EFI Check Max.Performance with AcousticVal.efi in AHCI ---- PASS
Status Update:
REF-33887: EFI Check Max.Performance with AcousticVal.efi in IDE ---- PASS
Status Update:
REF-33883: EFI Check Quiet Mode with AcousticVal.efi in AHCI mode ---- PASS
Status Update:
REF-33886: EFI Check Quiet Mode with AcousticVal.efi in IDE mode ---- PASS
Status Update:
REF-33888: EFI Multiple HDD verify with AcousticVal.efi in AHCI ---- PASS
Status Update:


Function by File Name

AMIBIOS Function Reference

By File Name

The following is a list of the .asm files.
For a list in alphabetical order, see In Alphabetical Order.

  • Acoustic.c
  • Acoustic.dxs
  • Acoustic.h
  • Acoustic.mak
  • Acoustic.sd
  • AcousticBoard.c
  • AcousticSetup.c


Acoustic.c

Description:
Initialize and provide a protocol for the Acoustic support.

The following functions are used in the file: Acoustic.c.

Function | Description
AcousticEntryPoint | This routine is the entry point for the Acoustic driver. It Initializes various controllers and installs Driver Binding protocol
AcousticProgramming | This function is called after all the controllers have been dispatched and at the end of BDS phase.
IssueSetFeatureCmd | This function issues the SetFeature cmd


AcousticEntryPoint in the Acoustic.c

Function : AcousticEntryPoint

File: Acoustic.c
Description:
This routine is the entry point for the Acoustic driver. It
Initializes various controllers and installs Driver Binding
protocol
Input:
ImageHandle     Handle to this driver image
SystemTable     Pointer to the system table
Output:
EFI_STATUS


AcousticProgramming in the Acoustic.c

Function : AcousticProgramming

File: Acoustic.c
Description:
This function is called after all the controllers have been
dispatched and at the end of BDS phase.
Input:
IN EFI_EVENT    Event
IN VOID         *Context
Output:
VOID


IssueSetFeatureCmd in the Acoustic.c

Function : IssueSetFeatureCmd

File: Acoustic.c
Description:
This function issues the SetFeature cmd
Input:
EFI_HANDLE  ControllerHandle,
EFI_HANDLE  DeviceHandle,
UINT8       SubCommand,
UINT8       Mode
Output:
Status


Acoustic.dxs

Description:
This file is the dependency file for the Acoustic
driver


Acoustic.h

Description:
Acoustic header file


Acoustic.mak

Description:
Make file for the Acoustic Module


Acoustic.sd

Description:
Acoustic driver Setup data definitions


AcousticBoard.c

Description:
This file contains DXE stage board component code for Acoustic
support

The following functions are used in the file: AcousticBoard.c.

Function | Description
Acoustic_BoardInit | This function installs the the ACOUSTIC_SETUP_PROTOCOL which would be used in ahci/ide bus driver.
InstallAcousticPlatformProtocol | This function initializes some Setup values and Acoustic Protocol values.
SetupEntryCallback | This function loads setup variables with Acoustic protocol values


Acoustic_BoardInit in the AcousticBoard.c

Function : Acoustic_BoardInit

File: AcousticBoard.c
Description:
This function installs the the ACOUSTIC_SETUP_PROTOCOL which
would be used in ahci/ide bus driver.
Input:
ImageHandle - ImageHandle of the loaded driver
SystemTable - Pointer to the System Table
Output:
EFI_SUCCESS


InstallAcousticPlatformProtocol in the AcousticBoard.c

Function : InstallAcousticPlatformProtocol

File: AcousticBoard.c
Description:
This function initializes some Setup values and Acoustic
Protocol values.
Input:
IN EFI_EVENT    Event
IN VOID         *Context
Output:
None
Notes:
This needs to be ported for each controller.
gAcousticSetupProtocolguid needs to be installed for each IDE/SATA
controller on the system.


SetupEntryCallback in the AcousticBoard.c

Function : SetupEntryCallback

File: AcousticBoard.c
Description:
This function loads setup variables with Acoustic protocol values
Input:
IN EFI_EVENT    Event
IN VOID         *Context
Output:
None
Notes:
This needs to be ported for each controller.


AcousticSetup.c

Description:
This file contains functions used by the Acoustic module

The following functions are used in the file: AcousticSetup.c.

Function | Description
InitAcousticStrings | Initialize Acoustic misc configuration strings.
Swap_Entries | Inpuut: IN CHAR8 *Data, IN UINT16 Size


InitAcousticStrings in the AcousticSetup.c

Function : InitAcousticStrings

File: AcousticSetup.c
Description:
Initialize Acoustic misc configuration strings.
Input:
IN EFI_HII_HANDLE   HiiHandle
IN UINT16           Class
Output:
VOID


Swap_Entries in the AcousticSetup.c

Function : Swap_Entries

File: AcousticSetup.c
Description:

Inpuut:      IN CHAR8    *Data,
IN UINT16   Size
Output:
None
Notes:


Functions in Alphabetical Order

In Alphabetical Order

The following topics provide a list in alphabetical order.
For a list by file name, see By File Name.

  • A
  • I
  • S


Functions in Alphabetical Order

A

Function | Description
Acoustic_BoardInit | This function installs the the ACOUSTIC_SETUP_PROTOCOL which would be used in ahci/ide bus driver.
AcousticEntryPoint | This routine is the entry point for the Acoustic driver. It Initializes various controllers and installs Driver Binding protocol
AcousticProgramming | This function is called after all the controllers have been dispatched and at the end of BDS phase.


Functions in Alphabetical Order

I

Function | Description
InitAcousticStrings | Initialize Acoustic misc configuration strings.
InstallAcousticPlatformProtocol | This function initializes some Setup values and Acoustic Protocol values.
IssueSetFeatureCmd | This function issues the SetFeature cmd


Functions in Alphabetical Order

S

Function | Description
SetupEntryCallback | This function loads setup variables with Acoustic protocol values
Swap_Entries | Inpuut: IN CHAR8 *Data, IN UINT16 Size


General Information