darwin-xnu/pexpert/i386/pe_identify_machine.c
<<
>>
Prefs
   1/*
   2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
   3 *
   4 * @APPLE_LICENSE_HEADER_START@
   5 * 
   6 * The contents of this file constitute Original Code as defined in and
   7 * are subject to the Apple Public Source License Version 1.1 (the
   8 * "License").  You may not use this file except in compliance with the
   9 * License.  Please obtain a copy of the License at
  10 * http://www.apple.com/publicsource and read it before using this file.
  11 * 
  12 * This Original Code and all software distributed under the License are
  13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
  16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
  17 * License for the specific language governing rights and limitations
  18 * under the License.
  19 * 
  20 * @APPLE_LICENSE_HEADER_END@
  21 */
  22#include <pexpert/pexpert.h>
  23#include <pexpert/protos.h>
  24#include <pexpert/device_tree.h>
  25
  26/* External declarations */
  27unsigned int LockTimeOut = 1250000000; /* XXX - Need real value for i386 */
  28
  29/* Local declarations */
  30void pe_identify_machine(boot_args *args);
  31
  32/* pe_identify_machine:
  33 *
  34 *   Sets up platform parameters.
  35 *   Returns:    nothing
  36 */
  37void pe_identify_machine(__unused boot_args *args)
  38{
  39  // Clear the gPEClockFrequencyInfo struct
  40  bzero((void *)&gPEClockFrequencyInfo, sizeof(clock_frequency_info_t));
  41  
  42  // Start with default values.
  43  gPEClockFrequencyInfo.timebase_frequency_hz = 1000000000;
  44  gPEClockFrequencyInfo.bus_frequency_hz      =  100000000;
  45  gPEClockFrequencyInfo.cpu_frequency_hz      =  300000000;
  46  
  47  gPEClockFrequencyInfo.bus_frequency_min_hz = gPEClockFrequencyInfo.bus_frequency_hz;
  48  gPEClockFrequencyInfo.bus_frequency_max_hz = gPEClockFrequencyInfo.bus_frequency_hz;
  49  gPEClockFrequencyInfo.cpu_frequency_min_hz = gPEClockFrequencyInfo.cpu_frequency_hz;
  50  gPEClockFrequencyInfo.cpu_frequency_max_hz = gPEClockFrequencyInfo.cpu_frequency_hz;
  51  
  52  gPEClockFrequencyInfo.dec_clock_rate_hz = gPEClockFrequencyInfo.timebase_frequency_hz;
  53  gPEClockFrequencyInfo.bus_clock_rate_hz = gPEClockFrequencyInfo.bus_frequency_hz;
  54  gPEClockFrequencyInfo.cpu_clock_rate_hz = gPEClockFrequencyInfo.cpu_frequency_hz;
  55  
  56  // Get real number from some where.
  57  
  58  // Set the num / den pairs form the hz values.
  59  gPEClockFrequencyInfo.bus_clock_rate_num = gPEClockFrequencyInfo.bus_clock_rate_hz;
  60  gPEClockFrequencyInfo.bus_clock_rate_den = 1;
  61  
  62  gPEClockFrequencyInfo.bus_to_cpu_rate_num =
  63    (2 * gPEClockFrequencyInfo.cpu_clock_rate_hz) / gPEClockFrequencyInfo.bus_clock_rate_hz;
  64  gPEClockFrequencyInfo.bus_to_cpu_rate_den = 2;
  65  
  66  gPEClockFrequencyInfo.bus_to_dec_rate_num = 1;
  67  gPEClockFrequencyInfo.bus_to_dec_rate_den =
  68    gPEClockFrequencyInfo.bus_clock_rate_hz / gPEClockFrequencyInfo.dec_clock_rate_hz;
  69}
  70
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.