public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Aneesh V <aneesh@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 12/22] omap4: utility function to identify the context of hw init
Date: Mon, 28 Feb 2011 17:16:21 +0530	[thread overview]
Message-ID: <1298893591-17636-13-git-send-email-aneesh@ti.com> (raw)
In-Reply-To: <1298893591-17636-1-git-send-email-aneesh@ti.com>

The basic hardware init of OMAP4(s_init()) can happen in 4
different contexts:
 1. SPL running from SRAM
 2. U-Boot running from FLASH
 3. Non-XIP U-Boot loaded to SDRAM by SPL
 4. Non-XIP U-Boot loaded to SDRAM by ROM code using the
    Configuration Header feature

What level of hw initialization gets done depends on this
context. Add a utility function to find this context.

Signed-off-by: Aneesh V <aneesh@ti.com>
---
 arch/arm/include/asm/arch-omap4/sys_proto.h |   47 +++++++++++++++++++++++++++
 arch/arm/include/asm/omap_common.h          |    6 +++
 2 files changed, 53 insertions(+), 0 deletions(-)

diff --git a/arch/arm/include/asm/arch-omap4/sys_proto.h b/arch/arm/include/asm/arch-omap4/sys_proto.h
index ce86b36..19da2e1 100644
--- a/arch/arm/include/asm/arch-omap4/sys_proto.h
+++ b/arch/arm/include/asm/arch-omap4/sys_proto.h
@@ -38,6 +38,53 @@ void sr32(void *, u32, u32, u32);
 u32 wait_on_value(u32, u32, void *, u32);
 void sdelay(unsigned long);
 
+static inline u32 running_from_sdram(void)
+{
+	u32 pc;
+	asm volatile ("mov %0, pc" : "=r" (pc));
+	return ((pc >= OMAP44XX_DRAM_ADDR_SPACE_START) &&
+	    (pc < OMAP44XX_DRAM_ADDR_SPACE_END));
+}
+
+static inline u8 uboot_loaded_by_spl(void)
+{
+	/*
+	 * Configuration Header is not supported yet, so u-boot init running
+	 * from SDRAM implies that it was loaded by SPL. When this situation
+	 * changes one of these approaches could be taken:
+	 * i.  Pass a magic from SPL to U-Boot and U-Boot save it at a known
+	 *     location.
+	 * ii. Check the OPP. CH can support only 50% OPP while SPL initializes
+	 *     the DPLLs@100% OPP.
+	 */
+	return running_from_sdram();
+}
+/*
+ * The basic hardware init of OMAP(s_init()) can happen in 4
+ * different contexts:
+ *  1. SPL running from SRAM
+ *  2. U-Boot running from FLASH
+ *  3. Non-XIP U-Boot loaded to SDRAM by SPL
+ *  4. Non-XIP U-Boot loaded to SDRAM by ROM code using the
+ *     Configuration Header feature
+ *
+ * This function finds this context.
+ * Defining as inline may help in compiling out unused functions in SPL
+ */
+static inline u32 omap4_hw_init_context(void)
+{
+#ifdef CONFIG_PRELOADER
+	return OMAP_INIT_CONTEXT_SPL;
+#else
+	if (uboot_loaded_by_spl())
+		return OMAP_INIT_CONTEXT_UBOOT_LOADED_BY_SPL;
+	else if (running_from_sdram())
+		return OMAP_INIT_CONTEXT_UBOOT_LOADED_BY_CH;
+	else
+		return OMAP_INIT_CONTEXT_XIP_UBOOT;
+#endif
+}
+
 extern const struct omap_sysinfo sysinfo;
 
 #endif
diff --git a/arch/arm/include/asm/omap_common.h b/arch/arm/include/asm/omap_common.h
index 95116f4..50247af 100644
--- a/arch/arm/include/asm/omap_common.h
+++ b/arch/arm/include/asm/omap_common.h
@@ -65,6 +65,12 @@
 /* Magic number passed from SPL to U-Boot */
 #define OMAP_SPL_TO_UBOOT_MAGIC_NUMBER	0xDEADBEEF
 
+/* HW Init Context */
+#define OMAP_INIT_CONTEXT_SPL			0
+#define OMAP_INIT_CONTEXT_XIP_UBOOT		1
+#define OMAP_INIT_CONTEXT_UBOOT_LOADED_BY_SPL	2
+#define OMAP_INIT_CONTEXT_UBOOT_LOADED_BY_CH	3
+
 u32 omap_boot_device(void);
 u32 omap_boot_mode(void);
 void preloader_console_init(void);
-- 
1.7.0.4

  parent reply	other threads:[~2011-02-28 11:46 UTC|newest]

Thread overview: 244+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-28 11:46 [U-Boot] [PATCH 00/22] U-Boot MMC SPL for OMAP4 Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 01/22] mkimage: Add OMAP boot image support Aneesh V
2011-03-01 14:24   ` Bedia, Vaibhav
2011-03-01 14:45     ` John Rigby
2011-03-01 14:49     ` Aneesh V
2011-03-02  4:51       ` Bedia, Vaibhav
     [not found]       ` <FCCFB4CDC6E5564B9182F639FC356087037077712B@dbde02.ent.ti.com>
2011-03-04  5:27         ` Bedia, Vaibhav
2011-03-04  8:49           ` Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 02/22] omap: add miscellaneous utility macros for bit-field operations Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 03/22] omap4: add OMAP4430 revision check Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 04/22] armv7: start.S: provide a hook for saving boot params Aneesh V
2011-03-01 14:27   ` Bedia, Vaibhav
2011-02-28 11:46 ` [U-Boot] [PATCH 05/22] omap4: save parameters passed by ROM code to SPL Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 06/22] arm: new labels in the linker script file Aneesh V
2011-03-08 10:12   ` Po-Yu Chuang
2011-03-08 11:20     ` Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 07/22] Add generic spl infrastructure Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 08/22] armv7: start.S: add SPL support Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 09/22] omap: add spl support Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 10/22] omap4: add spl support for OMAP4 SDP Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 11/22] omap4: add serial console support to SPL Aneesh V
2011-02-28 11:46 ` Aneesh V [this message]
2011-02-28 11:46 ` [U-Boot] [PATCH 13/22] omap4: separate mux settings into essential and non essential parts Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 14/22] omap4: correct mux data for sdp4430 Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 15/22] omap4: add clock support Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 16/22] omap4: add sdram init support Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 17/22] omap4: calculate EMIF register values Aneesh V
2011-03-09  4:46   ` John Rigby
2011-03-09  5:08     ` Aneesh V
2011-03-09  6:02       ` John Rigby
2011-03-09  9:26     ` Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 18/22] omap4: automatic sdram detection Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 19/22] armv7: embed u-boot size within u-boot for use from SPL Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 20/22] omap: add MMC support to SPL Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 21/22] omap: spl: add FAT support over MMC Aneesh V
2011-02-28 11:46 ` [U-Boot] [PATCH 22/22] omap4: add spl support for OMAP4 Panda Aneesh V
2011-03-21  8:21 ` [U-Boot] [PATCH 00/22] U-Boot MMC SPL for OMAP4 Aneesh V
2011-03-22  8:50   ` Chander M. Kashyap
2011-03-22  9:20     ` Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 " Aneesh V
2011-07-03  9:06   ` Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 01/22] mkimage: Add OMAP boot image support Aneesh V
2011-05-15 19:06   ` Wolfgang Denk
2011-05-16 10:16     ` Aneesh V
2011-05-16 11:48       ` Wolfgang Denk
2011-05-17 10:24         ` Aneesh V
2011-05-17 11:15           ` Wolfgang Denk
2011-05-17 12:09         ` Aneesh V
2011-05-17 12:32           ` Wolfgang Denk
2011-05-16  1:52   ` Mike Frysinger
2011-05-16  2:55     ` Mike Frysinger
2011-05-16 10:28       ` Aneesh V
2011-05-16 18:42         ` Mike Frysinger
2011-05-17  6:30           ` Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 02/22] omap4: add OMAP4430 revision check Aneesh V
2011-05-15 19:09   ` Wolfgang Denk
2011-05-16 12:14     ` Aneesh V
2011-05-16 15:35       ` Wolfgang Denk
2011-05-17  6:40         ` Aneesh V
2011-05-17  8:10           ` Wolfgang Denk
2011-05-15 15:21 ` [U-Boot] [PATCH v2 03/22] armv7: start.S: provide a hook for saving boot params Aneesh V
2011-05-15 19:10   ` Wolfgang Denk
2011-05-15 15:21 ` [U-Boot] [PATCH v2 04/22] omap4: save parameters passed by ROM code to SPL Aneesh V
2011-05-15 19:14   ` Wolfgang Denk
2011-05-16 12:29     ` Aneesh V
2011-05-16 15:37       ` Wolfgang Denk
2011-05-17  6:44         ` Aneesh V
2011-05-17  8:11           ` Wolfgang Denk
2011-05-15 15:21 ` [U-Boot] [PATCH v2 05/22] arm: new labels in the linker script file Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 06/22] Add generic spl infrastructure Aneesh V
2011-05-15 19:48   ` Wolfgang Denk
2011-05-16 12:48     ` Aneesh V
2011-05-16 15:41       ` Wolfgang Denk
2011-05-16 18:32   ` Scott Wood
2011-05-17  6:54     ` Aneesh V
2011-05-17  8:15       ` Wolfgang Denk
2011-05-17 10:30         ` Aneesh V
2011-05-17 11:17           ` Wolfgang Denk
2011-05-17 12:16             ` Aneesh V
2011-05-17 12:33               ` Wolfgang Denk
2011-05-17 14:01                 ` Aneesh V
2011-05-17 16:50       ` Scott Wood
2011-05-18  3:35         ` Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 07/22] armv7: start.S: add SPL support Aneesh V
2011-05-15 19:49   ` Wolfgang Denk
2011-05-15 15:21 ` [U-Boot] [PATCH v2 08/22] omap: add spl support Aneesh V
2011-05-15 19:52   ` Wolfgang Denk
2011-05-16 14:10     ` Aneesh V
2011-05-16 15:43       ` Wolfgang Denk
2011-05-17  6:59         ` Aneesh V
2011-05-17  8:16           ` Wolfgang Denk
2011-05-26 13:51             ` Aneesh V
2011-06-02 15:54               ` Aneesh V
2011-06-07  9:15               ` Aneesh V
2011-06-15 10:13               ` Wolfgang Denk
2011-06-15 10:53                 ` Aneesh V
2011-06-15 12:04                   ` Wolfgang Denk
2011-06-15 12:08                     ` Aneesh V
2011-06-15 12:44                       ` Wolfgang Denk
2011-05-16 18:39       ` Scott Wood
2011-05-18  5:05         ` Aneesh V
2011-05-18 15:51           ` Scott Wood
2011-05-15 19:53   ` Wolfgang Denk
2011-05-16 14:17     ` Aneesh V
2011-05-16  9:48   ` Simon Schwarz
2011-05-16 14:20     ` Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 09/22] omap4: add spl support for OMAP4 SDP Aneesh V
2011-05-15 18:33   ` Wolfgang Denk
2011-05-16 14:29     ` Aneesh V
2011-05-16 15:48       ` Wolfgang Denk
2011-05-17  7:11         ` Aneesh V
2011-05-17  8:19           ` Wolfgang Denk
2011-05-17 12:33             ` Aneesh V
2011-05-17 12:53               ` Wolfgang Denk
2011-05-26 13:25                 ` Aneesh V
2011-06-02 15:33                   ` Aneesh V
2011-06-07  9:09                   ` Aneesh V
2011-06-15 10:07                   ` Wolfgang Denk
2011-05-15 19:54   ` Wolfgang Denk
2011-05-15 15:21 ` [U-Boot] [PATCH v2 10/22] omap4: utility function to identify the context of hw init Aneesh V
2011-05-15 19:59   ` Wolfgang Denk
     [not found]     ` <4DD135D0.8070805@ti.com>
2011-05-16 15:50       ` Wolfgang Denk
2011-05-15 15:21 ` [U-Boot] [PATCH v2 11/22] omap4: separate mux settings into essential and non essential parts Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 12/22] omap4: correct mux data for sdp4430 Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 13/22] omap4: add clock support Aneesh V
2011-05-15 19:00   ` Wolfgang Denk
2011-05-17 13:30     ` Aneesh V
2011-05-17 21:44       ` Wolfgang Denk
2011-06-25 12:05         ` Aneesh V
2011-06-25 13:05           ` Wolfgang Denk
2011-06-21  5:49   ` Aneesh V
2011-06-21  6:25     ` Aneesh V
2011-06-21  7:12       ` Aneesh V
2011-06-21  8:20         ` Wolfgang Denk
2011-06-21  9:08           ` Aneesh V
2011-06-21 10:22             ` Wolfgang Denk
2011-06-21 11:10               ` Aneesh V
2011-06-21 11:22             ` Aneesh V
2011-06-21  7:05     ` Wolfgang Denk
2011-06-21  7:05       ` Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 14/22] omap4: add serial console support to SPL Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 15/22] omap4: add sdram init support Aneesh V
2011-05-15 20:01   ` Wolfgang Denk
2011-05-17 14:13     ` Aneesh V
2011-05-17 21:46       ` Wolfgang Denk
2011-05-15 20:02   ` Wolfgang Denk
2011-05-15 15:21 ` [U-Boot] [PATCH v2 16/22] omap4: calculate EMIF register values Aneesh V
2011-05-15 20:05   ` Wolfgang Denk
2011-05-15 20:42     ` Måns Rullgård
2011-05-17 14:30       ` Aneesh V
2011-05-17 14:26     ` Aneesh V
2011-05-17 21:54       ` Wolfgang Denk
2011-05-18  3:49         ` Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 17/22] omap4: automatic sdram detection Aneesh V
2011-05-15 20:06   ` Wolfgang Denk
2011-05-17 14:33     ` Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 18/22] armv7: embed u-boot size within u-boot for use from SPL Aneesh V
2011-05-15 20:09   ` Wolfgang Denk
2011-05-18  5:02     ` Aneesh V
2011-05-18  6:06       ` Wolfgang Denk
2011-05-26 11:08         ` Aneesh V
2011-05-26 17:21           ` Wolfgang Denk
2011-05-16 18:56   ` Scott Wood
2011-05-18  4:49     ` Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 19/22] omap: add MMC support to SPL Aneesh V
2011-05-15 15:21 ` [U-Boot] [PATCH v2 20/22] omap: spl: add FAT support over MMC Aneesh V
2011-05-15 20:12   ` Wolfgang Denk
2011-05-15 15:21 ` [U-Boot] [PATCH v2 21/22] omap4: add spl support for OMAP4 Panda Aneesh V
2011-05-15 20:14   ` Wolfgang Denk
2011-05-15 15:21 ` [U-Boot] [PATCH v2 22/22] omap: spl: add more debug traces Aneesh V
2011-05-15 20:21   ` Wolfgang Denk
2011-06-13 13:59     ` Aneesh V
2011-06-14  4:17       ` Aneesh V
2011-06-15 10:18       ` Wolfgang Denk
2011-07-03  9:35         ` Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 00/12] U-Boot MMC SPL for OMAP4 Aneesh V
2011-07-18 13:38   ` Aneesh V
2011-07-18 13:50     ` Wolfgang Denk
2011-07-18 14:05       ` Aneesh V
2011-07-18 14:15         ` Wolfgang Denk
2011-07-16 12:53 ` [U-Boot] [PATCH v3 01/12] omap4: utility function to identify the context of hw init Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 02/12] omap4: cleanup pin mux data Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 03/12] omap4: add OMAP4430 revision check Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 04/12] omap4: add clock support Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 05/12] omap4: add sdram init support Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 06/12] omap4: calculate EMIF register values Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 07/12] omap4: automatic sdram detection Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 08/12] armv7: start.S: fixes and enhancements for SPL Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 09/12] omap: add basic SPL support Aneesh V
2011-07-16 13:36   ` Daniel Schwierzeck
2011-07-16 14:24     ` Aneesh V
2011-07-16 14:30       ` Aneesh V
2011-07-16 15:02     ` Wolfgang Denk
2011-07-18  9:42       ` Daniel Schwierzeck
2011-07-18  9:44         ` Aneesh V
2011-07-18 12:04         ` Wolfgang Denk
2011-07-18 13:21   ` Simon Schwarz
2011-07-18 13:26     ` Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 10/12] Correct ih_os for u-boot.img Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 11/12] omap: add MMC and FAT support to SPL Aneesh V
2011-07-16 12:53 ` [U-Boot] [PATCH v3 12/12] mkimage: Add OMAP boot image support Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 00/12] U-Boot MMC SPL for OMAP4 Aneesh V
2011-07-20 21:31   ` Paulraj, Sandeep
2011-07-21  5:48     ` V, Aneesh
2011-07-21 14:04       ` Paulraj, Sandeep
2011-07-21  7:15     ` V, Aneesh
2011-07-18 15:46 ` [U-Boot] [PATCH v4 01/12] omap4: utility function to identify the context of hw init Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 02/12] omap4: cleanup pin mux data Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 03/12] omap4: add OMAP4430 revision check Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 04/12] omap4: add clock support Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 05/12] omap4: add sdram init support Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 06/12] omap4: calculate EMIF register values Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 07/12] omap4: automatic sdram detection Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 08/12] armv7: start.S: fixes and enhancements for SPL Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 09/12] omap: add basic SPL support Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 10/12] Correct ih_os for u-boot.img Aneesh V
2011-07-28 15:17   ` Wolfgang Denk
2011-07-18 15:46 ` [U-Boot] [PATCH v4 11/12] omap: add MMC and FAT support to SPL Aneesh V
2011-07-19  9:16   ` Simon Schwarz
2011-07-19 11:16     ` Aneesh V
2011-07-18 15:46 ` [U-Boot] [PATCH v4 12/12] mkimage: Add OMAP boot image support Aneesh V
2011-07-28 15:21   ` Wolfgang Denk
2011-08-02  9:08     ` Reinhard Meyer
2011-08-02 11:29       ` Albert ARIBAUD
2011-08-02 11:58         ` Reinhard Meyer
2011-07-21  7:28 ` [U-Boot] [PATCH v4 00/12] U-Boot MMC SPL for OMAP4 Aneesh V
2011-07-21 13:12   ` Paulraj, Sandeep
2011-07-21  7:28 ` [U-Boot] [PATCH v4 01/12] omap4: utility function to identify the context of hw init Aneesh V
2011-07-21  7:28 ` [U-Boot] [PATCH v4 02/12] omap4: cleanup pin mux data Aneesh V
2011-07-28 19:26   ` Wolfgang Denk
2011-07-29  8:41     ` Aneesh V
2011-07-29  8:56       ` Wolfgang Denk
2011-07-29 10:41         ` Aneesh V
2011-07-29 11:45           ` Wolfgang Denk
2011-07-21  7:28 ` [U-Boot] [PATCH v4 03/12] omap4: add OMAP4430 revision check Aneesh V
2011-07-21  7:28 ` [U-Boot] [PATCH v4 04/12] omap4: add clock support Aneesh V
2011-07-21  7:28 ` [U-Boot] [PATCH v4 05/12] omap4: add sdram init support Aneesh V
2011-07-21  7:28 ` [U-Boot] [PATCH v4 06/12] omap4: calculate EMIF register values Aneesh V
2011-07-21  7:28 ` [U-Boot] [PATCH v4 07/12] omap4: automatic sdram detection Aneesh V
2011-07-21  7:28 ` [U-Boot] [PATCH v4 08/12] armv7: start.S: fixes and enhancements for SPL Aneesh V
2011-07-21  7:28 ` [U-Boot] [PATCH v4 09/12] omap: add basic SPL support Aneesh V
2011-07-21  7:28 ` [U-Boot] [PATCH v4 10/12] Correct ih_os for u-boot.img Aneesh V
2011-07-21  7:28 ` [U-Boot] [PATCH v4 11/12] omap: add MMC and FAT support to SPL Aneesh V
2011-07-21  7:28 ` [U-Boot] [PATCH v4 12/12] mkimage: Add OMAP boot image support Aneesh V

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1298893591-17636-13-git-send-email-aneesh@ti.com \
    --to=aneesh@ti.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox