diff --git a/firmware/Makefile b/firmware/Makefile
index 493193d..18fdb40 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -93,7 +93,7 @@
 # Flags
 INCLUDES_USB = -Iatmel_softpack_libraries/usb/include
 
-INCLUDES  = -Iinclude_board -Iinclude_sam3s -Iinclude -Isrc_simtrace
+INCLUDES  = -Iinclude_board -Iinclude_sam3s -Iinclude -Isrc_simtrace -Iinclude_libosmocore
 
 # FIXME: This must be made configurable!
 INCLUDES += -Iinclude_board/$(BOARD)
diff --git a/firmware/src_simtrace/linuxlist.h b/firmware/include_libosmocore/osmocom/core/linuxlist.h
similarity index 62%
rename from firmware/src_simtrace/linuxlist.h
rename to firmware/include_libosmocore/osmocom/core/linuxlist.h
index 6f8c8fe..affa827 100644
--- a/firmware/src_simtrace/linuxlist.h
+++ b/firmware/include_libosmocore/osmocom/core/linuxlist.h
@@ -1,36 +1,13 @@
 #pragma once
 
-#include <stddef.h>
-
-#ifndef inline
-#define inline __inline__
-#endif
-
-static inline void prefetch(const void *x) {;}
-
-/**
- * container_of - cast a member of a structure out to the containing structure
- *
- * @ptr:	the pointer to the member.
- * @type:	the type of the container struct this is embedded in.
- * @member:	the name of the member within the struct.
- *
+/*! \defgroup linuxlist Simple doubly linked list implementation
+ *  @{
  */
-#define container_of(ptr, type, member) ({			\
-        const typeof( ((type *)0)->member ) *__mptr = (typeof( ((type *)0)->member ) *)(ptr);	\
-        (type *)( (char *)__mptr - offsetof(type, member) );})
 
-
-/*
- * These are non-NULL pointers that will result in page faults
- * under normal circumstances, used to verify that nobody uses
- * non-initialized llist entries.
- */
-#define LLIST_POISON1  ((void *) 0x00100100)
-#define LLIST_POISON2  ((void *) 0x00200200)
-
-/*
- * Simple doubly linked llist implementation.
+/*!
+ * \file linuxlist.h
+ *
+ * \brief Simple doubly linked list implementation.
  *
  * Some of the internal functions ("__xxx") are useful when
  * manipulating whole llists rather than single entries, as
@@ -39,21 +16,55 @@
  * using the generic single-entry routines.
  */
 
+#include <stddef.h>
+
+#ifndef inline
+#define inline __inline__
+#endif
+
+static inline void prefetch(const void *x) {;}
+
+/*! \brief cast a member of a structure out to the containing structure
+ *
+ * \param[in] ptr the pointer to the member.
+ * \param[in] type the type of the container struct this is embedded in.
+ * \param[in] member the name of the member within the struct.
+ */
+#define container_of(ptr, type, member) ({			\
+        const typeof( ((type *)0)->member ) *__mptr = (ptr);	\
+        (type *)( (char *)__mptr - offsetof(type, member) );})
+
+
+/*!
+ * These are non-NULL pointers that will result in page faults
+ * under normal circumstances, used to verify that nobody uses
+ * non-initialized llist entries.
+ */
+#define LLIST_POISON1  ((void *) 0x00100100)
+#define LLIST_POISON2  ((void *) 0x00200200)
+
+/*! \brief (double) linked list header structure */
 struct llist_head {
+	/*! \brief Pointer to next and previous item */
 	struct llist_head *next, *prev;
 };
 
 #define LLIST_HEAD_INIT(name) { &(name), &(name) }
 
+/*! \brief define a statically-initialized \ref llist_head
+ *  \param[in] name Variable name
+ *
+ * This is a helper macro that will define a named variable of type
+ * \ref llist_head and initialize it */
 #define LLIST_HEAD(name) \
 	struct llist_head name = LLIST_HEAD_INIT(name)
 
+/*! \brief initialize a \ref llist_head to point back to self */
 #define INIT_LLIST_HEAD(ptr) do { \
 	(ptr)->next = (ptr); (ptr)->prev = (ptr); \
 } while (0)
 
-/*
- * Insert a new entry between two known consecutive entries. 
+/*! \brief Insert a new entry between two known consecutive entries. 
  *
  * This is only for internal llist manipulation where we know
  * the prev/next entries already!
@@ -68,10 +79,9 @@
 	prev->next = _new;
 }
 
-/**
- * llist_add - add a new entry
- * @new: new entry to be added
- * @head: llist head to add it after
+/*! \brief add a new entry into a linked list (at head)
+ *  \param _new New entry to be added
+ *  \param head \ref llist_head to add it after
  *
  * Insert a new entry after the specified head.
  * This is good for implementing stacks.
@@ -81,10 +91,9 @@
 	__llist_add(_new, head, head->next);
 }
 
-/**
- * llist_add_tail - add a new entry
- * @new: new entry to be added
- * @head: llist head to add it before
+/*! \brief add a new entry into a linked list (at tail)
+ *  \param _new  New entry to be added
+ *  \param head  Head of linked list to whose tail we shall add \a _new
  *
  * Insert a new entry before the specified head.
  * This is useful for implementing queues.
@@ -107,9 +116,9 @@
 	prev->next = next;
 }
 
-/**
- * llist_del - deletes entry from llist.
- * @entry: the element to delete from the llist.
+/*! \brief Delete entry from linked list
+ *  \param entry  The element to delete from the llist
+ *
  * Note: llist_empty on entry does not return true after this, the entry is
  * in an undefined state.
  */
@@ -120,9 +129,8 @@
 	entry->prev = (struct llist_head *)LLIST_POISON2;
 }
 
-/**
- * llist_del_init - deletes entry from llist and reinitialize it.
- * @entry: the element to delete from the llist.
+/*! \brief Delete entry from linked list and reinitialize it
+ *  \param entry  The element to delete from the list
  */
 static inline void llist_del_init(struct llist_head *entry)
 {
@@ -130,10 +138,9 @@
 	INIT_LLIST_HEAD(entry); 
 }
 
-/**
- * llist_move - delete from one llist and add as another's head
- * @llist: the entry to move
- * @head: the head that will precede our entry
+/*! \brief Delete from one llist and add as another's head
+ *  \param llist The entry to move
+ *  \param head	The head that will precede our entry
  */
 static inline void llist_move(struct llist_head *llist, struct llist_head *head)
 {
@@ -141,10 +148,9 @@
         llist_add(llist, head);
 }
 
-/**
- * llist_move_tail - delete from one llist and add as another's tail
- * @llist: the entry to move
- * @head: the head that will follow our entry
+/*! \brief Delete from one llist and add as another's tail
+ *  \param llist The entry to move
+ *  \param head The head that will follow our entry
  */
 static inline void llist_move_tail(struct llist_head *llist,
 				  struct llist_head *head)
@@ -153,9 +159,9 @@
         llist_add_tail(llist, head);
 }
 
-/**
- * llist_empty - tests whether a llist is empty
- * @head: the llist to test.
+/*! \brief Test whether a linked list is empty
+ *  \param[in] head  The llist to test.
+ *  \returns 1 if the list is empty, 0 otherwise
  */
 static inline int llist_empty(const struct llist_head *head)
 {
@@ -176,10 +182,9 @@
 	at->prev = last;
 }
 
-/**
- * llist_splice - join two llists
- * @llist: the new llist to add.
- * @head: the place to add it in the first llist.
+/*! \brief Join two llists
+ *  \param llist The new linked list to add
+ *  \param head The place to add \a llist in the other list
  */
 static inline void llist_splice(struct llist_head *llist, struct llist_head *head)
 {
@@ -187,10 +192,9 @@
 		__llist_splice(llist, head);
 }
 
-/**
- * llist_splice_init - join two llists and reinitialise the emptied llist.
- * @llist: the new llist to add.
- * @head: the place to add it in the first llist.
+/*! \brief join two llists and reinitialise the emptied llist.
+ * \param llist The new linked list to add.
+ * \param head  The place to add it in the first llist.
  *
  * The llist at @llist is reinitialised
  */
@@ -203,28 +207,25 @@
 	}
 }
 
-/**
- * llist_entry - get the struct for this entry
- * @ptr:	the &struct llist_head pointer.
- * @type:	the type of the struct this is embedded in.
- * @member:	the name of the llist_struct within the struct.
+/*! \brief Get the struct containing this list entry
+ *  \param ptr The \ref llist_head pointer
+ *  \param type The type of the struct this is embedded in
+ *  \param @member The name of the \ref llist_head within the struct
  */
 #define llist_entry(ptr, type, member) \
 	container_of(ptr, type, member)
 
-/**
- * llist_for_each	-	iterate over a llist
- * @pos:	the &struct llist_head to use as a loop counter.
- * @head:	the head for your llist.
+/*! \brief Iterate over a linked list
+ *  \param pos 	The \ref llist_head to use as a loop counter
+ *  \param head The head of the list over which to iterate
  */
 #define llist_for_each(pos, head) \
 	for (pos = (head)->next, prefetch(pos->next); pos != (head); \
         	pos = pos->next, prefetch(pos->next))
 
-/**
- * __llist_for_each	-	iterate over a llist
- * @pos:	the &struct llist_head to use as a loop counter.
- * @head:	the head for your llist.
+/*! \brief Iterate over a llist (no prefetch)
+ *  \param pos 	The \ref llist_head to use as a loop counter
+ *  \param head The head of the list over which to iterate
  *
  * This variant differs from llist_for_each() in that it's the
  * simplest possible llist iteration code, no prefetching is done.
@@ -234,30 +235,27 @@
 #define __llist_for_each(pos, head) \
 	for (pos = (head)->next; pos != (head); pos = pos->next)
 
-/**
- * llist_for_each_prev	-	iterate over a llist backwards
- * @pos:	the &struct llist_head to use as a loop counter.
- * @head:	the head for your llist.
+/*! \brief Iterate over a llist backwards
+ *  \param pos 	The \ref llist_head to use as a loop counter
+ *  \param head The head of the list over which to iterate
  */
 #define llist_for_each_prev(pos, head) \
 	for (pos = (head)->prev, prefetch(pos->prev); pos != (head); \
         	pos = pos->prev, prefetch(pos->prev))
-        	
-/**
- * llist_for_each_safe	-	iterate over a llist safe against removal of llist entry
- * @pos:	the &struct llist_head to use as a loop counter.
- * @n:		another &struct llist_head to use as temporary storage
- * @head:	the head for your llist.
+
+/*! \brief Iterate over a list; safe against removal of llist entry
+ *  \param pos 	The \ref llist_head to use as a loop counter
+ *  \param n Another \ref llist_head to use as temporary storage
+ *  \param head The head of the list over which to iterate
  */
 #define llist_for_each_safe(pos, n, head) \
 	for (pos = (head)->next, n = pos->next; pos != (head); \
 		pos = n, n = pos->next)
 
-/**
- * llist_for_each_entry	-	iterate over llist of given type
- * @pos:	the type * to use as a loop counter.
- * @head:	the head for your llist.
- * @member:	the name of the llist_struct within the struct.
+/*! \brief Iterate over llist of given type
+ *  \param pos The 'type *' to use as a loop counter
+ *  \param head The head of the list over which to iterate
+ *  \param member The name of the \ref llist_head within struct \a pos
  */
 #define llist_for_each_entry(pos, head, member)				\
 	for (pos = llist_entry((head)->next, typeof(*pos), member),	\
@@ -266,11 +264,10 @@
 	     pos = llist_entry(pos->member.next, typeof(*pos), member),	\
 		     prefetch(pos->member.next))
 
-/**
- * llist_for_each_entry_reverse - iterate backwards over llist of given type.
- * @pos:	the type * to use as a loop counter.
- * @head:	the head for your llist.
- * @member:	the name of the llist_struct within the struct.
+/*! \brief Iterate backwards over llist of given type.
+ *  \param pos The 'type *' to use as a loop counter
+ *  \param head The head of the list over which to iterate
+ *  \param member The name of the \ref llist_head within struct \a pos
  */
 #define llist_for_each_entry_reverse(pos, head, member)			\
 	for (pos = llist_entry((head)->prev, typeof(*pos), member),	\
@@ -279,12 +276,11 @@
 	     pos = llist_entry(pos->member.prev, typeof(*pos), member),	\
 		     prefetch(pos->member.prev))
 
-/**
- * llist_for_each_entry_continue -	iterate over llist of given type
- *			continuing after existing point
- * @pos:	the type * to use as a loop counter.
- * @head:	the head for your llist.
- * @member:	the name of the llist_struct within the struct.
+/*! \brief iterate over llist of given type continuing after existing
+ * point
+ *  \param pos The 'type *' to use as a loop counter
+ *  \param head The head of the list over which to iterate
+ *  \param member The name of the \ref llist_head within struct \a pos
  */
 #define llist_for_each_entry_continue(pos, head, member) 		\
 	for (pos = llist_entry(pos->member.next, typeof(*pos), member),	\
@@ -293,13 +289,12 @@
 	     pos = llist_entry(pos->member.next, typeof(*pos), member),	\
 		     prefetch(pos->member.next))
 
-/**
- * llist_for_each_entry_safe - iterate over llist of given type, safe against
- *                             removal of non-consecutive(!) llist entries
- * @pos:	the type * to use as a loop counter.
- * @n:		another type * to use as temporary storage
- * @head:	the head for your llist.
- * @member:	the name of the llist_struct within the struct.
+/*! \brief iterate over llist of given type, safe against removal of
+ * non-consecutive(!) llist entries
+ *  \param pos The 'type *' to use as a loop counter
+ *  \param n Another type * to use as temporary storage
+ *  \param head The head of the list over which to iterate
+ *  \param member The name of the \ref llist_head within struct \a pos
  */
 #define llist_for_each_entry_safe(pos, n, head, member)			\
 	for (pos = llist_entry((head)->next, typeof(*pos), member),	\
@@ -355,3 +350,23 @@
 #define llist_for_each_continue_rcu(pos, head) \
 	for ((pos) = (pos)->next, prefetch((pos)->next); (pos) != (head); \
         	(pos) = (pos)->next, ({ smp_read_barrier_depends(); 0;}), prefetch((pos)->next))
+
+/*! \brief count nr of llist items by iterating.
+ *  \param head The llist head to count items of.
+ *  \returns Number of items.
+ *
+ * This function is not efficient, mostly useful for small lists and non time
+ * critical cases like unit tests.
+ */
+static inline unsigned int llist_count(struct llist_head *head)
+{
+	struct llist_head *entry;
+	unsigned int i = 0;
+	llist_for_each(entry, head)
+		i++;
+	return i;
+}
+
+/*!
+ *  }@
+ */
diff --git a/firmware/src_simtrace/card_emu.c b/firmware/src_simtrace/card_emu.c
index e7a9c2d..6b61e46 100644
--- a/firmware/src_simtrace/card_emu.c
+++ b/firmware/src_simtrace/card_emu.c
@@ -32,7 +32,7 @@
 #include "card_emu.h"
 #include "req_ctx.h"
 #include "cardemu_prot.h"
-#include "linuxlist.h"
+#include "osmocom/core/linuxlist.h"
 
 
 #define NUM_SLOTS		2
diff --git a/firmware/src_simtrace/host_communication.c b/firmware/src_simtrace/host_communication.c
index 1c89223..816c7a1 100644
--- a/firmware/src_simtrace/host_communication.c
+++ b/firmware/src_simtrace/host_communication.c
@@ -4,7 +4,7 @@
 
 #include "board.h"
 #include "req_ctx.h"
-#include "linuxlist.h"
+#include "osmocom/core/linuxlist.h"
 #include "llist_irqsafe.h"
 
 static volatile uint32_t usbep_in_progress[BOARD_USB_NUMENDPOINTS];
diff --git a/firmware/src_simtrace/llist_irqsafe.h b/firmware/src_simtrace/llist_irqsafe.h
index b466939..9a59d3d 100644
--- a/firmware/src_simtrace/llist_irqsafe.h
+++ b/firmware/src_simtrace/llist_irqsafe.h
@@ -1,6 +1,6 @@
 #pragma once
 
-#include "linuxlist.h"
+#include "osmocom/core/linuxlist.h"
 
 static inline void llist_add_tail_irqsafe(struct llist_head *_new,
 					  struct llist_head *head)
diff --git a/firmware/src_simtrace/main.c b/firmware/src_simtrace/main.c
index 02a3fb2..62fcbe2 100644
--- a/firmware/src_simtrace/main.c
+++ b/firmware/src_simtrace/main.c
@@ -9,6 +9,7 @@
 #include "req_ctx.h"
 #include "wwan_led.h"
 #include "wwan_perst.h"
+#include "osmocom/core/timer.h"
 
 uint32_t g_unique_id[4];
 
diff --git a/firmware/src_simtrace/mode_cardemu.c b/firmware/src_simtrace/mode_cardemu.c
index b4925be..20d3356 100644
--- a/firmware/src_simtrace/mode_cardemu.c
+++ b/firmware/src_simtrace/mode_cardemu.c
@@ -6,7 +6,7 @@
 #include "card_emu.h"
 #include "iso7816_fidi.h"
 #include "utils.h"
-#include "linuxlist.h"
+#include "osmocom/core/linuxlist.h"
 #include "llist_irqsafe.h"
 #include "req_ctx.h"
 #include "cardemu_prot.h"
@@ -430,17 +430,6 @@
 #endif
 }
 
-static int llist_count(struct llist_head *head)
-{
-	struct llist_head *list;
-	int i = 0;
-
-	llist_for_each(list, head)
-		i++;
-
-	return i;
-}
-
 /* handle a single USB command as received from the USB host */
 static void dispatch_usb_command(struct req_ctx *rctx, struct cardem_inst *ci)
 {
diff --git a/firmware/src_simtrace/req_ctx.h b/firmware/src_simtrace/req_ctx.h
index 67090a1..41ad84d 100644
--- a/firmware/src_simtrace/req_ctx.h
+++ b/firmware/src_simtrace/req_ctx.h
@@ -5,7 +5,7 @@
 #define MAX_HDRSIZE	sizeof(struct openpcd_hdr)
 
 #include <stdint.h>
-#include "linuxlist.h"
+#include "osmocom/core/linuxlist.h"
 
 #define __ramfunc
 
