cleaned up object names
diff --git a/objects/control_bmc_barreleye.c b/objects/control_bmc_barreleye.c
index 0e6c5cb..399ab26 100644
--- a/objects/control_bmc_barreleye.c
+++ b/objects/control_bmc_barreleye.c
@@ -12,6 +12,7 @@
/* ---------------------------------------------------------------------------------------------------- */
static const gchar* dbus_object_path = "/org/openbmc/control";
+static const gchar* instance_name = "bmc0";
static const gchar* dbus_name = "org.openbmc.control.Bmc";
//this probably should come from some global SOC config
@@ -23,7 +24,6 @@
#define SPI_BASE (off_t)0x1e630000
#define SCU_BASE (off_t)0x1e780000
#define UART_BASE (off_t)0x1e783000
-#define UART_BASE2 (off_t)0x1e785000
#define COM_BASE (off_t)0x1e789000
#define COM_BASE2 (off_t)0x1e789100
#define GPIO_BASE (off_t)0x1e6e2000
@@ -72,11 +72,6 @@
devmem(bmcreg+0x00,0x00000000); //Set Baud rate divisor -> 13 (Baud 115200)
devmem(bmcreg+0x04,0x00000000); //Set Baud rate divisor -> 13 (Baud 115200)
devmem(bmcreg+0x08,0x000000c1); //Disable Parity, 1 stop bit, 8 bits
-
- bmcreg = memmap(mem_fd,UART_BASE2);
- devmem(bmcreg+0x0c,0x00000000);
- devmem(bmcreg+0x2c,0x00000000);
-
bmcreg = memmap(mem_fd,COM_BASE);
devmem(bmcreg+0x9C,0x08060000); //Set UART routing
@@ -103,7 +98,6 @@
devmem(bmcreg+0x170,0x00000042);
devmem(bmcreg+0x174,0x00004000);
-
close(mem_fd);
}
@@ -112,13 +106,25 @@
GDBusMethodInvocation *invocation,
gpointer user_data)
{
+ //#ifdef __arm__
+ //reg_init();
+ //#endif
+ control_complete_init(control,invocation);
+ //control_emit_goto_system_state(control,"BMC_STARTING");
+
+ return TRUE;
+}
+gboolean go(gpointer user_data)
+{
+ cmdline *cmd = user_data;
+ Control* control = object_get_control((Object*)cmd->user_data);
#ifdef __arm__
reg_init();
#endif
- control_complete_init(control,invocation);
control_emit_goto_system_state(control,"BMC_STARTING");
- return TRUE;
+ g_main_loop_quit(cmd->loop);
+ return FALSE;
}
static void
@@ -128,47 +134,48 @@
{
ObjectSkeleton *object;
cmdline *cmd = user_data;
- if (cmd->argc < 2)
- {
- g_print("No objects created. Put object name(s) on command line\n");
- return;
- }
manager = g_dbus_object_manager_server_new (dbus_object_path);
- int i=0;
- for (i=1;i<cmd->argc;i++)
- {
- gchar *s;
- s = g_strdup_printf ("%s/%s",dbus_object_path,cmd->argv[i]);
- object = object_skeleton_new (s);
- g_free (s);
- ControlBmc* control_bmc = control_bmc_skeleton_new ();
- object_skeleton_set_control_bmc (object, control_bmc);
- g_object_unref (control_bmc);
+ gchar *s;
+ s = g_strdup_printf ("%s/%s",dbus_object_path,instance_name);
+ object = object_skeleton_new (s);
+ g_free (s);
- Control* control = control_skeleton_new ();
- object_skeleton_set_control (object, control);
- g_object_unref (control);
+ ControlBmc* control_bmc = control_bmc_skeleton_new ();
+ object_skeleton_set_control_bmc (object, control_bmc);
+ g_object_unref (control_bmc);
- //define method callbacks here
- g_signal_connect (control,
- "handle-init",
- G_CALLBACK (on_init),
- NULL); /* user_data */
+ Control* control = control_skeleton_new ();
+ object_skeleton_set_control (object, control);
+ g_object_unref (control);
- /* Export the object (@manager takes its own reference to @object) */
- g_dbus_object_manager_server_export (manager, G_DBUS_OBJECT_SKELETON (object));
- g_object_unref (object);
- }
+ //define method callbacks here
+ g_signal_connect (control,
+ "handle-init",
+ G_CALLBACK (on_init),
+ NULL); /* user_data */
+
+ /* Export the object (@manager takes its own reference to @object) */
+ g_dbus_object_manager_server_export (manager, G_DBUS_OBJECT_SKELETON (object));
+ g_object_unref (object);
+
/* Export all objects */
g_dbus_object_manager_server_set_connection (manager, connection);
+
+ //TODO: This is a bad hack to wait for object to be on bus
+ //sleep(1);
+ cmd->user_data = object;
+ g_idle_add(go,cmd);
}
+
static void
on_name_acquired (GDBusConnection *connection,
const gchar *name,
gpointer user_data)
{
+
+
}
static void
@@ -179,8 +186,6 @@
}
-
-
/*----------------------------------------------------------------*/
/* Main Event Loop */
@@ -194,6 +199,7 @@
guint id;
loop = g_main_loop_new (NULL, FALSE);
+ cmd.loop = loop;
id = g_bus_own_name (DBUS_TYPE,
dbus_name,
diff --git a/objects/control_bmc_obj.c b/objects/control_bmc_obj.c
index 2aedd04..e1e1a8a 100644
--- a/objects/control_bmc_obj.c
+++ b/objects/control_bmc_obj.c
@@ -12,6 +12,7 @@
/* ---------------------------------------------------------------------------------------------------- */
static const gchar* dbus_object_path = "/org/openbmc/control";
+static const gchar* instance_name = "bmc0";
static const gchar* dbus_name = "org.openbmc.control.Bmc";
//this probably should come from some global SOC config
@@ -103,13 +104,25 @@
GDBusMethodInvocation *invocation,
gpointer user_data)
{
+ //#ifdef __arm__
+ //reg_init();
+ //#endif
+ control_complete_init(control,invocation);
+ //control_emit_goto_system_state(control,"BMC_STARTING");
+
+ return TRUE;
+}
+gboolean go(gpointer user_data)
+{
+ cmdline *cmd = user_data;
+ Control* control = object_get_control((Object*)cmd->user_data);
#ifdef __arm__
reg_init();
#endif
- control_complete_init(control,invocation);
control_emit_goto_system_state(control,"BMC_STARTING");
- return TRUE;
+ g_main_loop_quit(cmd->loop);
+ return FALSE;
}
static void
@@ -119,47 +132,48 @@
{
ObjectSkeleton *object;
cmdline *cmd = user_data;
- if (cmd->argc < 2)
- {
- g_print("No objects created. Put object name(s) on command line\n");
- return;
- }
manager = g_dbus_object_manager_server_new (dbus_object_path);
- int i=0;
- for (i=1;i<cmd->argc;i++)
- {
- gchar *s;
- s = g_strdup_printf ("%s/%s",dbus_object_path,cmd->argv[i]);
- object = object_skeleton_new (s);
- g_free (s);
- ControlBmc* control_bmc = control_bmc_skeleton_new ();
- object_skeleton_set_control_bmc (object, control_bmc);
- g_object_unref (control_bmc);
+ gchar *s;
+ s = g_strdup_printf ("%s/%s",dbus_object_path,instance_name);
+ object = object_skeleton_new (s);
+ g_free (s);
- Control* control = control_skeleton_new ();
- object_skeleton_set_control (object, control);
- g_object_unref (control);
+ ControlBmc* control_bmc = control_bmc_skeleton_new ();
+ object_skeleton_set_control_bmc (object, control_bmc);
+ g_object_unref (control_bmc);
- //define method callbacks here
- g_signal_connect (control,
- "handle-init",
- G_CALLBACK (on_init),
- NULL); /* user_data */
+ Control* control = control_skeleton_new ();
+ object_skeleton_set_control (object, control);
+ g_object_unref (control);
- /* Export the object (@manager takes its own reference to @object) */
- g_dbus_object_manager_server_export (manager, G_DBUS_OBJECT_SKELETON (object));
- g_object_unref (object);
- }
+ //define method callbacks here
+ g_signal_connect (control,
+ "handle-init",
+ G_CALLBACK (on_init),
+ NULL); /* user_data */
+
+ /* Export the object (@manager takes its own reference to @object) */
+ g_dbus_object_manager_server_export (manager, G_DBUS_OBJECT_SKELETON (object));
+ g_object_unref (object);
+
/* Export all objects */
g_dbus_object_manager_server_set_connection (manager, connection);
+
+ //TODO: This is a bad hack to wait for object to be on bus
+ //sleep(1);
+ cmd->user_data = object;
+ g_idle_add(go,cmd);
}
+
static void
on_name_acquired (GDBusConnection *connection,
const gchar *name,
gpointer user_data)
{
+
+
}
static void
@@ -170,8 +184,6 @@
}
-
-
/*----------------------------------------------------------------*/
/* Main Event Loop */
@@ -185,6 +197,7 @@
guint id;
loop = g_main_loop_new (NULL, FALSE);
+ cmd.loop = loop;
id = g_bus_own_name (DBUS_TYPE,
dbus_name,