Chameleon

Chameleon Svn Source Tree

Root/branches/meklort/i386/modules/Memory/Memory.c

Source at commit 521 created 13 years 7 months ago.
By meklort, Modules, Modules everywhere
1/*
2 * DRAM Controller Module
3 * Scans the dram controller and notifies OS X of the memory modules.
4 *This was converted from boot2 code to a boot2 module.
5 *
6 */
7
8#include "libsaio.h"
9#include "pci.h"
10#include "platform.h"
11#include "dram_controllers.h"
12#include "spd.h"
13#include "mem.h"
14#include "modules.h"
15
16pci_dt_t *dram_controller_dev;
17
18
19void Memory_hook(void* arg1, void* arg2, void* arg3, void* arg4);
20void Memory_PCIDevice_hook(void* arg1, void* arg2, void* arg3, void* arg4);
21
22void Memory_start()
23{
24register_hook_callback("PCIDevice", &Memory_PCIDevice_hook);
25register_hook_callback("ScanMemory", &Memory_hook);
26
27}
28
29void Memory_PCIDevice_hook(void* arg1, void* arg2, void* arg3, void* arg4)
30{
31pci_dt_t* current = arg1;
32if(current->class_id == PCI_CLASS_BRIDGE_HOST)
33{
34dram_controller_dev = current;
35}
36}
37
38void Memory_hook(void* arg1, void* arg2, void* arg3, void* arg4)
39{
40if (dram_controller_dev!=NULL) {
41scan_dram_controller(dram_controller_dev); // Rek: pci dev ram controller direct and fully informative scan ...
42}
43scan_memory(&Platform); // unfortunately still necesary for some comp where spd cant read correct speed
44scan_spd(&Platform);
45}
46

Archive Download this file

Revision: 521