Describe callout creation

Add a section in README.md to describe how callouts are created from the
callout metadata fetched from the journal.

Change-Id: I27d89f66aa9318b855f6879ccb91efb8ba9e5fa8
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
diff --git a/xyz/openbmc_project/Error/Callout/README.md b/xyz/openbmc_project/Error/Callout/README.md
index 14a5397..0636e81 100644
--- a/xyz/openbmc_project/Error/Callout/README.md
+++ b/xyz/openbmc_project/Error/Callout/README.md
@@ -57,3 +57,32 @@
 metadata fields for both Callout.Device and Callout.IIC, but provide values
 only for Callout.Callout. That way the error handling component can still
 decipher this as an IIC callout.
+
+## Creation of a callout
+
+This section talks about creation of a callout, once callout related metadata is
+already in the journal.
+
+Taking an example of a generic device callout here, but this would be the flow
+in general :
+
+* An application commits an error that has associated callout metadata. This
+  will cause the error-log server to create a d-bus object for the error.
+
+* The error-log server will detect that callout metadata is present, will
+  extract the same and hand it over to a sub-module which will map callout
+  metadata to one or more inventory object paths, and will create an
+  association between the error object and the inventory object(s). The
+  mapping from callout metadata to inventory objects is mostly done via
+  the aid of code generated by the system MRW parsers.
+
+* Generated code : consider a case where an application wants to callout
+  an eeprom on the BMC planar, via a device path, such as
+  /sys/devices/platform/ahb/ahb:apb/1e78a000.i2c/i2c-11/i2c-11/11-0051/eeprom.
+  This would have to be mapped to the BMC planar as the FRU to be called out.
+  MRW parser(s) could be written which, for every device in the IIC subsystem,
+  can provide a corresponding inventory object path. The error-log server in
+  this case has to, by looking at the device path, determine that the device
+  is on an IIC bus, and make use of the code generated to map the device to
+  inventory objects.
+  Similar MRW parsers could be written for other device subsystems.