removed gi lib dependency
diff --git a/bin/Barreleye.py b/bin/Barreleye.py
index 328da30..3c16c8c 100644
--- a/bin/Barreleye.py
+++ b/bin/Barreleye.py
@@ -34,6 +34,7 @@
 SYSTEM_CONFIG['org.openbmc.control.Bmc'] = {
 		'system_state' : 'INIT',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'control_bmc.exe',
 		'heartbeat' : 'no',
 		'instances' : [	
@@ -47,6 +48,7 @@
 SYSTEM_CONFIG['org.openbmc.managers.Frus'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'fru_manager.py',
 		'heartbeat' : 'no',
 		'rest_name' : 'frus',
@@ -61,6 +63,7 @@
 SYSTEM_CONFIG['org.openbmc.managers.Ipmi'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'ipmi_manager.py',
 		'heartbeat' : 'no',
 		'rest_name' : 'frus',
@@ -76,6 +79,7 @@
 SYSTEM_CONFIG['org.openbmc.managers.Sensors'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'sensor_manager.py',
 		'heartbeat' : 'no',
 		'rest_name' : 'sensors',
@@ -90,6 +94,7 @@
 SYSTEM_CONFIG['org.openbmc.loggers.EventLogger'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'eventlogger.py',
 		'heartbeat' : 'no',
 		'rest_name' : 'events',
@@ -104,6 +109,7 @@
 SYSTEM_CONFIG['org.openbmc.watchdog.Host'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'host_watchdog.exe',
 		'heartbeat' : 'no',
 		'rest_name' : 'watchdog',
@@ -123,6 +129,7 @@
 SYSTEM_CONFIG['org.openbmc.control.Power'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'power_control.exe',
 		'heartbeat' : 'yes',
 		'instances' : [	
@@ -141,6 +148,7 @@
 SYSTEM_CONFIG['org.openbmc.sensors.Temperature.Ambient'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'sensor_ambient.exe',
 		'heartbeat' : 'yes',
 		'instances' : [	
@@ -168,6 +176,7 @@
 SYSTEM_CONFIG['org.openbmc.buttons.Power'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'button_power.exe',
 		'heartbeat' : 'no',
 		'instances' : [	
@@ -180,6 +189,7 @@
 SYSTEM_CONFIG['org.openbmc.sensors.HostStatus'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'sensor_host_status.exe',
 		'heartbeat' : "no",
 		'instances' : [	
@@ -198,6 +208,7 @@
 SYSTEM_CONFIG['org.openbmc.leds.ChassisIdentify'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'chassis_identify.exe',
 		'heartbeat' : 'no',
 		'instances' : [	
@@ -210,6 +221,7 @@
 SYSTEM_CONFIG['org.openbmc.flash.BIOS'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'flash_bios.exe',
 		'heartbeat' : 'no',
 		'rest_name' : 'flash',
@@ -223,6 +235,7 @@
 SYSTEM_CONFIG['org.openbmc.control.Host'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'control_host.exe',
 		'heartbeat' : 'no',
 		'instances' : [	
@@ -235,6 +248,7 @@
 SYSTEM_CONFIG['org.openbmc.control.Chassis'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'chassis_control.py',
 		'heartbeat' : 'no',
 		'rest_name' : 'chassis',
@@ -246,9 +260,25 @@
 		]
 	}
 
-SYSTEM_CONFIG['org.openbmc.sensors.Occ'] = {
+SYSTEM_CONFIG['org.openbmc.vpd'] = {
 		'system_state' : 'POWERED_ON',
 		'start_process' : True,
+		'monitor_process' : False,
+		'process_name' : 'board_vpd.exe',
+		'heartbeat' : 'no',
+		'instances' : [
+			{
+				'name' : 'MBVPD_0',
+				'user_label': 'VPD',
+			},
+
+		]
+	}
+
+SYSTEM_CONFIG['org.openbmc.sensors.Occ'] = {
+		'system_state' : 'HOST_UP',
+		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'sensor_occ.exe',
 		'heartbeat' : 'no',
 		'instances' : [
@@ -268,6 +298,7 @@
 SYSTEM_CONFIG['org.openbmc.sensors.Fan'] = {
 		'system_state' : 'STANDBY',
 		'start_process' : True,
+		'monitor_process' : True,
 		'process_name' : 'fan.exe',
 		'heartbeat' : 'no',
 		'instances' : [
diff --git a/bin/PropertyManager.py b/bin/PropertyManager.py
index d3176d1..b89ed12 100644
--- a/bin/PropertyManager.py
+++ b/bin/PropertyManager.py
@@ -7,7 +7,8 @@
 import dbus
 import dbus.service
 import dbus.mainloop.glib
-from gi.repository import Gio, GLib, GObject
+#from gi.repository import Gio, GLib, GObject
+import gobject
 
 
 class PropertyManager():
diff --git a/bin/chassis_control.py b/bin/chassis_control.py
index 455030b..1956860 100644
--- a/bin/chassis_control.py
+++ b/bin/chassis_control.py
@@ -1,7 +1,8 @@
 #!/usr/bin/env python
 
 import sys
-from gi.repository import GObject
+#from gi.repository import GObject
+import gobject
 import dbus
 import dbus.service
 import dbus.mainloop.glib
@@ -152,7 +153,7 @@
     bus = dbus.SessionBus()
     name = dbus.service.BusName(DBUS_NAME, bus)
     obj = ChassisControlObject(bus, OBJ_NAME)
-    mainloop = GObject.MainLoop()
+    mainloop = gobject.MainLoop()
     
     print "Running ChassisControlService"
     mainloop.run()
diff --git a/bin/eventlogger.py b/bin/eventlogger.py
index 3701d28..6f2d165 100644
--- a/bin/eventlogger.py
+++ b/bin/eventlogger.py
@@ -3,7 +3,8 @@
 import sys
 import syslog
 import json
-from gi.repository import GObject
+#from gi.repository import GObject
+import gobject
 import dbus
 import dbus.service
 import dbus.mainloop.glib
@@ -31,7 +32,7 @@
     bus = dbus.SessionBus()
     name = dbus.service.BusName(DBUS_NAME, bus)
     obj = EventLogger(bus, OBJ_NAME)
-    mainloop = GObject.MainLoop()
+    mainloop = gobject.MainLoop()
     
     print "Running EventLogger"
     mainloop.run()
diff --git a/bin/ipmi_manager.py b/bin/ipmi_manager.py
index 479d1a1..24c36f4 100644
--- a/bin/ipmi_manager.py
+++ b/bin/ipmi_manager.py
@@ -2,8 +2,8 @@
 
 import sys
 import subprocess
-from gi.repository import GObject
-
+#from gi.repository import GObject
+import gobject
 import dbus
 import dbus.service
 import dbus.mainloop.glib
@@ -98,7 +98,7 @@
     bus = dbus.SessionBus()
     name = dbus.service.BusName(DBUS_NAME,bus)
     obj = IpmiManager(bus,OBJ_NAME)
-    mainloop = GObject.MainLoop()
+    mainloop = gobject.MainLoop()
 
     print "Running IpmiManager"
     mainloop.run()
diff --git a/bin/sensor_manager.py b/bin/sensor_manager.py
index bcf3fd8..2e1e96a 100644
--- a/bin/sensor_manager.py
+++ b/bin/sensor_manager.py
@@ -1,7 +1,8 @@
 #!/usr/bin/env python
 
 import sys
-from gi.repository import GObject
+#from gi.repository import GObject
+import gobject
 import dbus
 import dbus.service
 import dbus.mainloop.glib
@@ -104,7 +105,7 @@
     bus = dbus.SessionBus()
     name = dbus.service.BusName(DBUS_NAME,bus)
     obj = SensorManager(bus,OBJ_NAME)
-    mainloop = GObject.MainLoop()
+    mainloop = gobject.MainLoop()
 
     print "Running Sensor Manager"
     mainloop.run()
diff --git a/bin/system_manager.py b/bin/system_manager.py
index 515fa1f..1a4fe99 100644
--- a/bin/system_manager.py
+++ b/bin/system_manager.py
@@ -2,7 +2,8 @@
 
 import sys
 import subprocess
-from gi.repository import GObject
+#from gi.repository import GObject
+import gobject
 import dbus
 import dbus.service
 import dbus.mainloop.glib
@@ -55,7 +56,7 @@
 		
 		if (state_name == "INIT"):
 			## Add poll for heartbeat
-	    		GObject.timeout_add(HEARTBEAT_CHECK_INTERVAL, self.heartbeat_check)
+	    		gobject.timeout_add(HEARTBEAT_CHECK_INTERVAL, self.heartbeat_check)
 		
 		if (System.ENTER_STATE_CALLBACK.has_key(state_name)):
 			cb = System.ENTER_STATE_CALLBACK[state_name]
@@ -83,7 +84,8 @@
 		#print "heartbeat check"
 		for bus_name in System.SYSTEM_CONFIG.keys():
 			if (System.SYSTEM_CONFIG[bus_name]['start_process'] == True and
-				System.SYSTEM_CONFIG[bus_name].has_key('popen')):
+				System.SYSTEM_CONFIG[bus_name].has_key('popen') and
+				System.SYSTEM_CONFIG[bus_name]['monitor_process'] == True):
 				## even if process doesn't request heartbeat check, 
 				##   make sure process is still alive
 				p = System.SYSTEM_CONFIG[bus_name]['popen']
@@ -172,7 +174,7 @@
     bus = dbus.SessionBus()
     name = dbus.service.BusName(DBUS_NAME,bus)
     obj = SystemManager(bus,OBJ_NAME)
-    mainloop = GObject.MainLoop()
+    mainloop = gobject.MainLoop()
 
     print "Running SystemManager"
     mainloop.run()
diff --git a/includes/openbmc.h b/includes/openbmc.h
index 58523fe..b8e8d0f 100644
--- a/includes/openbmc.h
+++ b/includes/openbmc.h
@@ -14,6 +14,15 @@
 #define VARIANT_COMPARE(x,y)   g_variant_compare(GET_VARIANT(x),GET_VARIANT(y))
 
 
+static inline void writel(uint32_t val,void* addr)
+{
+        asm volatile("" : : : "memory");
+        *(volatile uint32_t *)addr = val;
+}
+static inline devmem(uint32_t val, uint32_t reg)
+{
+       writel(val,reg);
+}
 
 
 typedef struct {
diff --git a/objects/board_vpd_obj.c b/objects/board_vpd_obj.c
index 59eaca8..11b2ab6 100644
--- a/objects/board_vpd_obj.c
+++ b/objects/board_vpd_obj.c
@@ -29,6 +29,10 @@
                              NULL,                      /* GCancellable */

                              &error);

 	g_assert_no_error (error);

+

+	//TODO:  Read actual vpd

+	g_print("Reading VPD\n");

+

 	parm = g_variant_new("(isv)",21,"manufacturer",g_variant_new_string("ibmibm"));

 	result = g_dbus_proxy_call_sync (p,

                                    "updateFruField",

@@ -38,6 +42,7 @@
                                    NULL,

                                    &error);

 	g_assert_no_error (error);

+	

 	//g_main_loop_run (loop);

 	//g_bus_unown_name (id);

  	g_main_loop_unref (loop);

diff --git a/objects/control_bmc_obj.c b/objects/control_bmc_obj.c
index 53e5c99..7e9965f 100644
--- a/objects/control_bmc_obj.c
+++ b/objects/control_bmc_obj.c
@@ -24,8 +24,36 @@
 {

 	g_print("BMC init\n");

 	// BMC init done here

-	// must be blocking

-	

+	/*

+	devmem(0x1e789080,0x00000500); //Enable LPC FWH cycles, Enable LPC to AHB bridge

+	devmem(0x1e789088,0x30000E00); //32M PNOR

+	devmem(0x1e78908C,0xFE0001FF);

+

+	//flash controller

+	devmem(0x1e630000,0x00000003);

+	devmem(0x1e630004,0x00002404);

+

+	//UART

+	devmem(0x1e6e2084,0x00fff0c0);  //Enable UART1

+	devmem(0x1e783000,0x00000000);  //Set Baud rate divisor -> 13 (Baud 115200)

+	devmem(0x1e783004,0x00000000);  //Set Baud rate divisor -> 13 (Baud 115200)

+	devmem(0x1e783008,0x000000c1);  //Disable Parity, 1 stop bit, 8 bits

+	devmem(0x1E78909C,0x00000000);  //Set routing UART1 -> COM 1

+

+

+	//GPIO

+	devmem(0x1e6e2070,0x120CE406);

+	devmem(0x1e6e2080,0xCB000000);

+	devmem(0x1e6e2088,0x01C000FF);

+	devmem(0x1e6e208c,0xC1C000FF);

+	devmem(0x1e6e2090,0x003FA009);

+

+	devmem(0x1E780000,0x13008CE7);

+	devmem(0x1E780004,0x0370E677);

+	devmem(0x1E780020,0xDF48F7FF);

+	devmem(0x1E780024,0xC738F202);

+*/

+

 	control_complete_init(control,invocation);

 	control_emit_goto_system_state(control,"STANDBY");