510 likes | 592 Views
ACR Enumeration Terry.Cole@AMD.Com Fellow Advanced Development Lab AMD. Purpose. This 45-minute presentation walks through the device enumeration process for ACR risers, with examples
E N D
ACR EnumerationTerry.Cole@AMD.Com FellowAdvanced Development LabAMD
Purpose • This 45-minute presentation walks through the device enumeration process for ACR risers, with examples • Guidelines are presented for BIOS vendors and ACR riser device driver vendors, as well as motherboard and riser hardware vendors, that will make device enumeration work
ACR Enumeration • Introduction • Enumeration architecture • Enumeration procedure • Examples • Guidelines for driver andBIOS developers • What can you do next?
Introduction To Risers • Risers deliver functions needing connectors • More integrated than PCI cards, USB peripherals, and typically less cost • Less integrated and more flexible than mother-board down solutions • Motherboard down = soldered to planar • Examples: • Existing: soft audio and modem codecs from multiple IP sources • New: complete functions like networking, DSL, cable solutions
Example Risers • AMR, MDC, CNR, ACR • Serial/parallel port risers andUSB port risers
Introduction To ACR • ACR = Advanced Communication Riser • A 2nd generation riser • AMR is the 1st generation riser • Group open to all in the industry • Goals of ACR SIG • Foster diverse and scalable comm, network and audio solutions • Reuse industry technology, components • Compatibility with existing OS • Fit into existing compliance test strategies
Residential Client V.90 10/100Base-T HomePNA 1 or 2 2 Ch audio Residential Gateway V.90 10/100Base-T HomePNA 1 or 2 DSL/Cable Multi-Channel Audio Scaleable Solution • Desktop • V.90 • 2 Ch audio • Three ACR Risers • ACR.Basic - Desktop • ACR.Lite - Client • ACR.Hub - Gateway One ACR Motherboard
Value To Driver Owners • Unique Plug and Play IDs are enabled • Ensures specific drivers are loaded • Gives more control to hardware owners • Chipset and motherboard components can be generic, many PHY and device vendors • PHY and riser components can more easily adapt to multiple controllers • Helps avoid multi-function drivers • No new paradigms or wholesale driver rewrites required!
ArchitectureIntroduction • The ACR specification provides enumeration mechanism to identify all ACR components to • BIOS • OS • Software device drivers • Ensures that • Device operating parameters are correctlyset by the BIOS • Correct set of drivers is loaded by the OS • Additional vendor-defined information isavailable to the device driver
ArchitectureEnumeration Functions • ACR enumeration has threedistinct steps: • Inventory • “Marriage” • Configuration
Enumeration FunctionsInventory step • Riser related resources on MB arelisted in BIOS storage: • Chipset controllers (network, audio, …) • Motherboard down controllers • Each appears as a PCI based controller • Components on the riser are described in a serial ROM device: • Network PHYs, modem and audio codecs • USB devices, serial devices, IPB devices • Each device attached to an “ACR bus”
Device InventoryBy buses • Devices are listed by bus and function Bus: AC-Link, USB, ACR Serial, Primary MII, Secondary MII, GPSI, 7WS, IPB
Device InventoryBy function • Devices are listed by bus and function • Function: Riser, Sound, Modem, HPNA, Ethernet, DSL, Wireless, Cable Modem, Other
Device InventoryACR Serial Bus System ACR • Two wire SMBus 1.0 compliant • Serial Data and Clock, no third control signal • EPROM at A7 or B0 • Use Controller or GPIO Motherboard Card Vdd Vdd pullups SCL SMBus/I2C Serial Host EEPROM Controller Or GPIO SDA other devices
Device InventorySerial EPROM Data • EPROM data image looks similar to a linked list • Data format is variable length
Enumeration Functions“Marriage” step • Mapping of each riser resource to a MB resource determined by ACR “function number” – one function per bus • Added requirements may be placed on PCI Vendor ID in EPROM • Added requirements may be contained by executable code in EPROM • Runtime environment provided by BIOS • Complete device = motherboard + riser • Will be configured with unique andproper identities
Enumeration FunctionsConfiguration step • Setup of controller to match riser • Vendor and Device ID copied from riser to PCI config space • Subsystem Vendor and Subsystem ID copied from riser to PCI config space • Optionally, PCI class, PCI latency, and PCI power management can also be copied
Enumeration FunctionsConfiguration step • Controllers are disabled if no riser resource is present • Controllers that may not be functionalare also disabled • Example, AC-97 configuration issues such as primary/secondary clock source conflicts
Net Result Of Enumeration • All special activity is pre-boot, making it compatible with existing OS • Unique Plug and Play IDs are enabled, a combination of motherboard/riser ID • BIOS not specific to riser • “Marriages” of risers to controllers can be restricted by either “party” • Unused components in highly integrated chipset/motherboard pose fewer issues • Invisible to OS and user
Examples • Useful enumeration pairings: • Modem codec works with allgeneric controllers • MAC on motherboard works only if a compatible PHY on riser • HPNA PHY works if only one of several compatible controllers on motherboards • DSL controller on motherboard worksonly if specific riser in system • If it doesn’t work, it doesn’t appear in the PCI space to OS
Procedure • Basic sequence of enumeration events • Hardware steps • BIOS steps • OS steps • Driver steps
Hardware And BIOS • Hardware: • At power up/reset all PCI config registers areset to their defaults • Enable SMBus or GPIO • Under BIOS control: • Search for ACR EPROM • Validate and store EPROM contents • Assign the parameters specified in the EPROM, plus its own defaults, to the PCI config space of each controller supported • Disable all ACR controllers that do not have devices attached to them • Make config space registers read-only
OS And Driver • Under operating system control: • Scan the PCI bus and match .INF files to the ID registers in the configuration space • Load the appropriate device driver, pointed to by its entry in the INF file • Under control of the driver: • Query the BIOS for ACR BIOS presence • Query the BIOS for the default IDs of ACR function controllers • Query the BIOS for the enumeration data or read it from the serial bus
Riser Design Goals • Riser should be designed to enumerate in any motherboard • EPROM data causes controller to be disabled unless motherboard contains an appropriate controller • Risers can be tested with • ACR SIG draft riser test assertions, and • ACR designated reference motherboards
Motherboard Design Goals • Any riser (AMR or ACR) can be plugged in and and it should enumerate fully • Motherboard can be tested with • ACR SIG draft motherboard test assertions, and • ACR SIG designated reference risers
AMR Compatible Modem • Shows AMR style, transferring only subsystem IDs • May also include other optional items: • Riser: serial number • ACR Serial bus: size of EPROM • AC-Link Modem: device checks if riser not compatible with all controllers
Sound And Modem • May include optional items like previous example • If audio features are proprietary, may include device checks to make sure right controller is present
Modem And HPNA • Shows use of device check • May also include optional latency, class, and power management values of PCI controller
Modem, HPNA And Ethernet • Note the easy modularity!
Driver Guidelines • Use separate Vendor/Sub-vendor IDs when appropriate to ensure the right driver is loaded • Provide full and appropriate power management of riser resources through PCI power management • Make use of the ACR BIOS function to query standard and private information (protected and 32-bit)
Driver Guidelines • Provide full support for as many combinations of controllers and risers as appropriate • Make use of the serial EPROM device-check features to ensure risers are only used with appropriate controllers • Make use of the serial EPROM features to ensure that drivers are only used with appropriate risers
BIOS Guidelines • Provide AMR style enumeration as a fallback when AMR card insertedinto ACR slot • Provide full description of any motherboard components that sharethe buses that connect to ACR slot • Provide all ACR BIOS functions in both protected mode and 32-bit format
BIOS Guidelines • Follow the ACR BIOS GuidelinesApplication Note • Pre-test BIOS against • ACR SIG draft motherboard test assertions
All Development TeamsWhat can you do next? • Use ACR instead of AMR • Follow ACR 1.0 spec, ACR Application Notes, AC-97, MII, and IPB • Identify your designs to ACR SIG • Can be used as examples in compliance testing and interoperability testing • Participate in future ACR SIG Plugfests
Motherboard VendorsWhat can you do next? • Consider moving to riser form-factor • SKU-dependent connectors • Entry level hardware that is often upgraded • Always ship with ACR BIOS! • Don’t use designs that allow insertion of devices that conflict with ACR address • Make use of protection modesas appropriate • For more information, visit www.acrsig.org
Minimum ACR Motherboard • Provide the minimum motherboard connections • USB, • ACR serial, • AC-97
Motherboard VendorsWhat can you do next? • Submit motherboards to WHQL with one of the ACR SIG tested risers • They become candidates for reference boards to test risers independently • Pre-test motherboards against: • ACR designated risers • ACR SIG draft motherboard test assertions document • WHQL system test • Each appropriate WHQL functional test (modem, audio, networking)
Riser VendorsWhat can you do next? • Provide ACR serial bus plus buses for your functions • Always ship risers with fully programmed EPROMs, including the riser company Vendor ID • Always strive to generate unique and complete Plug and Play IDs, relying on enumeration where appropriate • Always locate the serial EPROM at A7or B0 address
Riser VendorsWhat can you do next? • Use the ACR EPROM programming tool to generate error-free EPROM images • Don’t put Ethernet PHY or audio codec down with connectors on riser • Put the PHY/codec on riser with connector • Design all resources so their idle power fits within one PCI idle slot power budget, in case they are unpaired
Riser VendorsWhat can you do next? • Submit risers to WHQL with one of the ACR SIG tested motherboards • They become candidates for reference risers to test motherboards independently • Pre-test risers against • ACR designated motherboards • ACR SIG draft riser test assertions document • Each appropriate WHQL functional test (modem, audio, networking)
More InformationWhat can you do next? • www.acrsig.org to view public information • info@acrsig.org to join and gain members-only access and to get Plugfest information • www.microsoft.com/hwtest for more information about WHQL testing