Chameleon

Chameleon Svn Source Tree

Root/branches/Kabyl/i386/libsaio/platform.c

1/*
2 * platform.c
3 *
4 * AsereBLN: cleanup
5 */
6
7#include "libsaio.h"
8#include "boot.h"
9#include "bootstruct.h"
10#include "pci.h"
11#include "platform.h"
12#include "cpu.h"
13#include "spd.h"
14#include "dram_controllers.h"
15
16#ifndef DEBUG_PLATFORM
17#define DEBUG_PLATFORM 0
18#endif
19
20#if DEBUG_PLATFORM
21#define DBG(x...)printf(x)
22#else
23#define DBG(x...)
24#endif
25
26PlatformInfo_t Platform;
27pci_dt_t * dram_controller_dev = NULL;
28
29/** Return if a CPU feature specified by feature is activated (true) or not (false) */
30bool platformCPUFeature(uint32_t feature)
31{
32if (Platform.CPU.Features & feature) {
33return true;
34} else {
35return false;
36}
37}
38
39/** scan mem for memory autodection purpose */
40void scan_mem() {
41 static bool done = false;
42 if (done) return;
43
44 bool useAutodetection = true;
45 getBoolForKey(kUseMemDetect, &useAutodetection, &bootInfo->bootConfig);
46
47 if (useAutodetection) {
48if (dram_controller_dev!=NULL) {
49scan_dram_controller(dram_controller_dev); // Rek: pci dev ram controller direct and fully informative scan ...
50}
51 scan_spd(&Platform);
52 }
53 done = true;
54}
55
56/**
57 Scan platform hardware information, called by the main entry point (common_boot() )
58 _before_ bootConfig xml parsing settings are loaded
59*/
60void scan_platform(void)
61{
62memset(&Platform, 0, sizeof(Platform));
63build_pci_dt();
64scan_cpu(&Platform);
65//scan_mem(); Rek: called after pci devs init in fake_efi now ...
66}
67

Archive Download this file

Revision: 673