* @EVT_DM_PRE_PROBE: Device is about to be probed
*/
enum event_t {
- EVT_NONE,
+ /**
+ * @EVT_NONE: This zero value is not used for events.
+ */
+ EVT_NONE = 0,
+
+ /**
+ * @EVT_TEST: This event is used in unit tests.
+ */
EVT_TEST,
- /* Events related to driver model */
+ /**
+ * @EVT_DM_POST_INIT_F:
+ * This event is triggered after pre-relocation initialization of the
+ * driver model. Its parameter is NULL.
+ * A non-zero return code from the event handler let's the boot process
+ * fail.
+ */
EVT_DM_POST_INIT_F,
+
+ /**
+ * @EVT_DM_POST_INIT_R:
+ * This event is triggered after post-relocation initialization of the
+ * driver model. Its parameter is NULL.
+ * A non-zero return code from the event handler let's the boot process
+ * fail.
+ */
+ EVT_DM_POST_INIT_R,
+
+ /**
+ * @EVT_DM_PRE_PROBE:
+ * This event is triggered before probing a device. Its parameter is the
+ * device to be probed.
+ * A non-zero return code from the event handler lets the device not
+ * being probed.
+ */
EVT_DM_PRE_PROBE,
+
+ /**
+ * @EVT_DM_POST_PROBE:
+ * This event is triggered after probing a device. Its parameter is the
+ * device that was probed.
+ * A non-zero return code from the event handler leaves the device in
+ * the unprobed state and therefore not usable.
+ */
EVT_DM_POST_PROBE,
+
+ /**
+ * @EVT_DM_PRE_REMOVE:
+ * This event is triggered after removing a device. Its parameter is
+ * the device to be removed.
+ * A non-zero return code from the event handler stops the removal of
+ * the device before any changes.
+ */
EVT_DM_PRE_REMOVE,
+
+ /**
+ * @EVT_DM_POST_REMOVE:
+ * This event is triggered before removing a device. Its parameter is
+ * the device that was removed.
+ * A non-zero return code stops from the event handler the removal of
+ * the device after all removal changes. The previous state is not
+ * restored. All children will be gone and the device may not be
+ * functional.
+ */
EVT_DM_POST_REMOVE,
- /* Init hooks */
+ /**
+ * @EVT_MISC_INIT_F:
+ * This event is triggered during the initialization sequence before
+ * relocation. Its parameter is NULL.
+ * A non-zero return code from the event handler let's the boot process
+ * fail.
+ */
EVT_MISC_INIT_F,
- /* Fpga load hook */
+ /*
+ * Emitted before relocation to set up Firmware Support Package
+ *
+ * Where U-Boot relies on binary blobs to handle part of the system
+ * init, this event can be used to set up the blobs. This is used on
+ * some Intel platforms
+ */
+ EVT_FSP_INIT_F,
+
+ /*
+ * Emitted just before jumping to the main loop
+ *
+ * Some boards need to perform initialisation immediately before control
+ * is passed to the command-line interpreter (e.g. for init that depend
+ * on later phases in the init sequence).
+ *
+ * Some parts can be only initialized if all others (like Interrupts)
+ * are up and running (e.g. the PC-style ISA keyboard).
+ */
+ EVT_LAST_STAGE_INIT,
+
+ /**
+ * @EVT_FPGA_LOAD:
+ * The FPGA load hook is called after loading an FPGA with a new binary.
+ * Its parameter is of type struct event_fpga_load and contains
+ * information about the loaded image.
+ */
EVT_FPGA_LOAD,
- /* Device tree fixups before booting */
+ /**
+ * @EVT_FT_FIXUP:
+ * This event is triggered during device-tree fix up after all
+ * other device-tree fixups have been executed.
+ * Its parameter is of type struct event_ft_fixup which contains
+ * the address of the device-tree to fix up and the list of images to be
+ * booted.
+ * A non-zero return code from the event handler let's booting the
+ * images fail.
+ */
EVT_FT_FIXUP,
- /* To be called once, before calling main_loop() */
+ /**
+ * @EVT_MAIN_LOOP:
+ * This event is triggered immediately before calling main_loop() which
+ * is the entry point of the command line. Its parameter is NULL.
+ * A non-zero return value causes the boot to fail.
+ */
EVT_MAIN_LOOP,
+ /**
+ * @EVT_COUNT:
+ * This constants holds the maximum event number + 1 and is used when
+ * looping over all event classes.
+ */
EVT_COUNT
};
* away the linker-list entry sometimes, e.g. with the EVT_FT_FIXUP entry in
* vbe_simple.c - so for now, make it global.
*/
-#define EVENT_SPY(_type, _func) \
+#define EVENT_SPY_FULL(_type, _func) \
__used ll_entry_declare(struct evspy_info, _type ## _3_ ## _func, \
evspy_info) = _ESPY_REC(_type, _func)