diff --git a/docs/ch.txt b/docs/ch.txt
index 23d1ec096..884eb1f11 100644
--- a/docs/ch.txt
+++ b/docs/ch.txt
@@ -206,6 +206,29 @@
*/
/** @} */
+/**
+ * @defgroup ARM7CONF Configuration Options
+ * @{
+ *
+ * The ARM7 port allows some architecture-specific configurations:
+ *
+ * - @p INT_REQUIRED_STACK, this value represent the amount of stack space used
+ * by an interrupt handler between the @p extctx and @p intctx
+ * structures.
+ * In practice this value is the stack space used by the chSchDoReschedule()
+ * stack frame.
+ * This value can be affected by a variety of external things like compiler
+ * version, compiler options, kernel settings (speed/size) and so on.
+ * The default for this value is @p 0x10 which should be a safe value, you
+ * can trim this down by defining the macro externally. This would save
+ * some valuable RAM space for each thread present in the system.
+ * The default value is set into ./ports/ARM7/chcore.h.
+ *
+ *
+ * @ingroup ARM7
+ */
+/** @} */
+
/**
* @defgroup LPC214x LPC214x Support
* @{
diff --git a/ports/ARM7/chcore.h b/ports/ARM7/chcore.h
index 1c90eff99..b1f5505d3 100644
--- a/ports/ARM7/chcore.h
+++ b/ports/ARM7/chcore.h
@@ -119,11 +119,13 @@ extern "C" {
#endif /* !REENTRANT_LOCKS */
#endif /* THUMB */
+#ifndef INT_REQUIRED_STACK
#ifdef THUMB
#define INT_REQUIRED_STACK 0x10
#else /* !THUMB */
-#define INT_REQUIRED_STACK 0
+#define INT_REQUIRED_STACK 0x10
#endif /* !THUMB */
+#endif
#define STACK_ALIGN(n) ((((n) - 1) | sizeof(stkalign_t)) + 1)