From: Simon Glass <sjg@chromium.org>
To: u-boot@lists.denx.de
Subject: Please pull u-boot-dm/next into -next
Date: Sun, 21 Mar 2021 09:58:08 +1300 [thread overview]
Message-ID: <CAPnjgZ37Q4uXzhgM4eYhY+=hkjysbQ9k_cccD72LE+tEzGvCDQ@mail.gmail.com> (raw)
Hi Tom,
This is for the -next branch, mostly the of-platdata-inst implementation.
https://source.denx.de/u-boot/custodians/u-boot-dm/-/pipelines/6844
The following changes since commit f879f2621b42529cf5f88912a07d2866cfc8fd45:
Merge branch 'next' of git://source.denx.de/u-boot-sh into next
(2021-03-19 08:20:34 -0400)
are available in the Git repository at:
git://git.denx.de/u-boot-dm.git tags/dm-pull-21mar21
for you to fetch changes up to 4fd57aeeb4359268f0d70a04ad7769985789ab8c:
binman: Update various pieces of the documentation (2021-03-20 12:55:54
+1300)
----------------------------------------------------------------
dtoc support for of-platdata-inst
driver model support for of-platdata-inst
support of-platdata-inst on x86 / coral
binman support for exapanded entries
binman convert docs to reST
ti-sysc fix for duplicate uclass driver
patman minor improvements
----------------------------------------------------------------
Bin Meng (3):
mmc: pci: Fix Kconfig dependency
test: cmd: setexpr: Fix a typo
test: print_ut: Fix potential build error
Dario Binacchi (1):
bus: ti-sysc: change in a normal driver
Heinrich Schuchardt (4):
sandbox: allow cross-compiling sandbox
sandbox: enable cros-ec-keyb in test.dtb
dm: error handling dev_get_dma_range()
sandbox: add FAT to the list of usable env drivers
Marek Beh?n (1):
regmap: fix a serious pointer casting bug
Nicolas Boichat (1):
patman: Use less for help file, if available
Samuel Dionne-Riel (1):
tools: fdtgrep: Use unsigned chars for arrays
Simon Glass (103):
patman: Update documentation to match new usage
patman: Quieten down the alias checking
dtoc: Scan drivers for available information
dtoc: Save scan information across test runs
dtoc: Ignore unwanted files when scanning for drivers
dtoc: Collect priv/plat struct info from drivers
dtoc: Support scanning of uclasses
dtoc: Support scanning of structs in header files
dtoc: Move test files into a test/ directory
dtoc: Rename sandbox_i2c_test and sandbox_pmic_test
dtoc: Add some extra properties to nodes
dtoc: Make use of node properties
dtoc: Process nodes to set up required properties
dtoc: Track nodes which are actually used
dtoc: Support tracking the phase of U-Boot
Makefile: Pass the U-Boot phase to dtoc
dtoc: Support headers needed for drivers
dtoc: Process driver aliases along with drivers
dtoc: Warn of duplicate drivers
dtoc: Read aliases for uclasses
dtoc: Detect drivers only at the start of start of line
dtoc: Assign a sequence number to each node
dtoc: Set up the uclasses that are used
dtoc: Support processing the root node
dtoc: Add an option for device instantiation
dm: of-platadata: Add option for device instantiation
dtoc: Add support for decl file
dtoc: Don't generate platform data with instantiation
sandbox: Make sandbox,emul more conventional
sandbox: i2c: Rename driver names to work with of-platdata
dtoc: Tidy up the list of supported phandle properties
dtoc: Generate a summary in the dt-plat.c file
dtoc: Generate uclass devices
dtoc: Generate device instances
dtoc: Drop use of DECL() macros
sandbox: Drop debug message in os_spl_to_uboot()
linker_lists: Allow use in data structures
dm: core: Add macros to access the new linker lists
dm: core: Allow dropping run-time binding of devices
dm: core: Adjust uclass setup with of-platdata
dm: core: Set up driver model for OF_PLATDATA_INST
dm: core: Skip adding uclasses with OF_PLATDATA_INST
dm: Add the new dtoc-generated files to the build
dm: core: Include dt-decl.h automatically
dm: test: Avoid destroying uclasses with of-platdata-inst
clk: sandbox: Move priv/plat data to a header file
clk: fixed-rate: Export driver parts for OF_PLATDATA_INST
clk: sandbox: Create a special fixed-rate driver
dm: core: Drop device_get_by_driver_info()
dm: core: Drop uclass_find_device_by_phandle() with of-platdata
sandbox: i2c: Move platdata structs to header files
dm: Rename device_get_by_driver_info_idx()
sandbox_spl: Increase SPL malloc() size
sandbox: i2c: Support i2c emulation with of-platdata
Revert "sandbox: Disable I2C emulators in SPL"
sandbox: Create a new sandbox_noinst build
test: Run sandbox_spl tests on sandbox_noinst
azure/gitlab: Add tests for sandbox_noinst
dm: core: Add an option to support SPL in read-only memory
dm: core: Create a struct for device runtime info
dm: core: Move flags to device-runtime info
dm: core: Allow storing priv/plat data separately
sandbox: Define a region for device priv/plat data
dm: core: Use separate priv/plat data region
dm: core: Add warnings to private / platform setters
dm: doc: Tidy up of-platdata docs
dm: doc: Add documentation for of-platdata-inst
x86: Define a region for device priv/plat data
x86: apl: Fix the header order in pmc
x86: apl: Tell of-platdata about a required header file
x86: itss: Tidy up bind() for of-platdata-inst
x86: Support a fake PCI device with of-platdata-inst
x86: Don't include reset driver in SPL
x86: coral: Drop ACPI properties from of-platdata
x86: coral: Drop TPM and ACPI interrupts from TPL
x86: apl: Use read-only SPL and new of-platdata
binman: Allow extracting to current directory
binman: Document ExpandEntries() in the base class
binman: Update entry help for files-align
binman: Tidy up underscores in entry documentation
binman: Correct the documentation for u-boot-spl-bss-pad
binman: Support symbols in u-boot-spl-nodtb
binman: Add support for u-boot-tpl-nodtb
binman: Add support for u-boot-tpl-bss-bad
binman: Drop unnecessary 'type' property in tests
binman: Use the fake SPL/TPL only if requested
binman: Drop unnecessary field in output_fdt_info
binman: Move the comment for GetFdts() to the base class
binman: Use standard filenames for SPL/TPL devicetree
binman: Allow using an an 'expanded' entry type
binman: Allow a way to select expanded entries
binman: Plumb expanded entries through fully
binman: Automatically expand phase binaries into sections
Makefile: Pass new entry args to binman
x86: Make use of binman expanded entries
x86: dts: Drop unused CONFIG_SPL
doc: Move UEFI under develop/
doc: Move driver model docs under develop/
binman: doc: Add documentation to htmldocs
binman: Rearrange documentation into headings
binman: Incorporate entry documentation
binman: Drop repetitive heading for each entry
binman: Update various pieces of the documentation
.azure-pipelines.yml | 3 +
.gitlab-ci.yml | 10 +-
Makefile | 18 +-
arch/sandbox/cpu/os.c | 1 -
arch/sandbox/cpu/u-boot-spl.lds | 8 +
arch/sandbox/dts/sandbox.dtsi | 18 +-
arch/sandbox/dts/test.dts | 5 +-
arch/sandbox/include/asm/clk.h | 24 +
arch/sandbox/include/asm/i2c.h | 15 +
arch/sandbox/include/asm/rtc.h | 24 +
arch/x86/cpu/apollolake/Kconfig | 2 +
arch/x86/cpu/apollolake/pmc.c | 2 +-
arch/x86/cpu/apollolake/punit.c | 1 +
arch/x86/cpu/intel_common/itss.c | 5 +-
arch/x86/cpu/u-boot-spl.lds | 8 +
arch/x86/dts/chromebook_coral.dts | 10 +-
arch/x86/dts/reset.dtsi | 2 +-
arch/x86/dts/u-boot.dtsi | 17 +-
arch/x86/lib/tpl.c | 1 +
board/sandbox/MAINTAINERS | 7 +
board/sandbox/sandbox.c | 1 +
common/spl/Kconfig | 24 +
configs/chromebook_coral_defconfig | 1 +
configs/sandbox_noinst_defconfig | 231 ++++++++++
configs/sandbox_spl_defconfig | 3 +
doc/arch/x86.rst | 4 +-
doc/{ => develop}/driver-model/bind.rst | 0
doc/{ => develop}/driver-model/debugging.rst | 0
doc/{ => develop}/driver-model/design.rst | 0
doc/{ => develop}/driver-model/ethernet.rst | 0
doc/{ => develop}/driver-model/fdt-fixup.rst | 0
doc/{ => develop}/driver-model/fs_firmware_loader.rst | 0
doc/{ => develop}/driver-model/i2c-howto.rst | 0
doc/{ => develop}/driver-model/index.rst | 4 +
doc/{ => develop}/driver-model/livetree.rst | 0
doc/{ => develop}/driver-model/migration.rst | 0
doc/develop/driver-model/of-plat.rst | 913
++++++++++++++++++++++++++++++++++++++
doc/{ => develop}/driver-model/pci-info.rst | 1 +
doc/{ => develop}/driver-model/pmic-framework.rst | 0
doc/{ => develop}/driver-model/remoteproc-framework.rst | 0
doc/{ => develop}/driver-model/serial-howto.rst | 0
doc/{ => develop}/driver-model/soc-framework.rst | 0
doc/{ => develop}/driver-model/spi-howto.rst | 0
doc/{ => develop}/driver-model/usb-info.rst | 0
doc/develop/index.rst | 10 +
doc/develop/package/binman.rst | 1 +
doc/develop/package/entries.rst | 1 +
doc/develop/package/index.rst | 19 +
doc/{ => develop}/uefi/index.rst | 4 +
doc/{ => develop}/uefi/iscsi.rst | 0
doc/{ => develop}/uefi/u-boot_on_efi.rst | 0
doc/{ => develop}/uefi/uefi.rst | 0
doc/driver-model/of-plat.rst | 359
---------------
doc/index.rst | 23 -
doc/usage/fit.rst | 8 +
doc/usage/index.rst | 1 +
drivers/bus/ti-sysc.c | 6 -
drivers/clk/clk-uclass.c | 2 +-
drivers/clk/clk_fixed_rate.c | 14 +-
drivers/clk/clk_sandbox.c | 40 +-
drivers/clk/clk_sandbox_test.c | 6 -
drivers/core/device.c | 111 +++--
drivers/core/of_addr.c | 4 +-
drivers/core/regmap.c | 13 +-
drivers/core/root.c | 85 +++-
drivers/core/uclass.c | 7 +-
drivers/i2c/Makefile | 2 -
drivers/i2c/i2c-emul-uclass.c | 34 +-
drivers/misc/irq-uclass.c | 2 +-
drivers/misc/test_drv.c | 11 +-
drivers/mmc/Kconfig | 1 +
drivers/mmc/fsl_esdhc_imx.c | 3 +-
drivers/rtc/i2c_rtc_emul.c | 21 +-
drivers/rtc/sandbox_rtc.c | 13 +
dts/Kconfig | 83 +++-
include/asm-generic/global_data.h | 26 +-
include/asm-generic/sections.h | 3 +
include/dm/device-internal.h | 93 ++++
include/dm/device.h | 108 ++++-
include/dm/platdata.h | 15 -
include/dm/root.h | 3 +
include/dm/test.h | 5 +
include/dm/uclass-internal.h | 52 +++
include/dm/uclass.h | 31 ++
include/dm/util.h | 9 +
include/dt-structs.h | 2 +
include/i2c.h | 15 +
include/linker_lists.h | 12 +
include/linux/clk-provider.h | 5 +
scripts/Makefile.spl | 9 +-
test/cmd/setexpr.c | 2 +-
test/dm/of_platdata.c | 32 +-
test/dm/test-fdt.c | 6 +-
test/print_ut.c | 2 +-
test/run | 4 +
test/test-main.c | 30 +-
tools/binman/README.rst | 1 +
tools/binman/{README => binman.rst} | 959
++++++++++++++++++++++------------------
tools/binman/cmdline.py | 5 +-
tools/binman/control.py | 28 +-
tools/binman/{README.entries => entries.rst} | 336
++++++++++----
tools/binman/entry.py | 73 ++-
tools/binman/entry_test.py | 12 +
tools/binman/etype/atf_bl31.py | 2 +-
tools/binman/etype/blob.py | 4 +-
tools/binman/etype/blob_dtb.py | 9 -
tools/binman/etype/blob_ext.py | 2 +-
tools/binman/etype/blob_phase.py | 51 +++
tools/binman/etype/cbfs.py | 12 +-
tools/binman/etype/fdtmap.py | 30 +-
tools/binman/etype/files.py | 2 +-
tools/binman/etype/fit.py | 21 +-
tools/binman/etype/intel_cmc.py | 2 +-
tools/binman/etype/intel_fsp.py | 2 +-
tools/binman/etype/intel_fsp_m.py | 2 +-
tools/binman/etype/intel_fsp_s.py | 2 +-
tools/binman/etype/intel_fsp_t.py | 2 +-
tools/binman/etype/intel_ifwi.py | 10 +-
tools/binman/etype/intel_me.py | 2 +-
tools/binman/etype/intel_mrc.py | 2 +-
tools/binman/etype/intel_refcode.py | 2 +-
tools/binman/etype/intel_vbt.py | 2 +-
tools/binman/etype/intel_vga.py | 2 +-
tools/binman/etype/mkimage.py | 4 +-
tools/binman/etype/scp.py | 2 +-
tools/binman/etype/section.py | 15 +-
tools/binman/etype/text.py | 6 +-
tools/binman/etype/u_boot.py | 8 +-
tools/binman/etype/u_boot_dtb_with_ucode.py | 4 +-
tools/binman/etype/u_boot_expanded.py | 24 +
tools/binman/etype/u_boot_nodtb.py | 8 +-
tools/binman/etype/u_boot_spl.py | 3 +
tools/binman/etype/u_boot_spl_bss_pad.py | 17 +-
tools/binman/etype/u_boot_spl_expanded.py | 45 ++
tools/binman/etype/u_boot_spl_nodtb.py | 24 +-
tools/binman/etype/u_boot_tpl.py | 3 +
tools/binman/etype/u_boot_tpl_bss_pad.py | 44 ++
tools/binman/etype/u_boot_tpl_expanded.py | 45 ++
tools/binman/etype/u_boot_tpl_nodtb.py | 42 ++
tools/binman/etype/u_boot_with_ucode_ptr.py | 2 +-
tools/binman/ftest.py | 268 ++++++++++--
tools/binman/image.py | 17 +-
tools/binman/index.rst | 9 +
tools/binman/setup.py | 2 +-
tools/binman/state.py | 71 +--
tools/binman/test/053_symbols.dts | 2 +-
tools/binman/test/149_symbols_tpl.dts | 1 -
tools/binman/test/155_symbols_tpl_x86.dts | 1 -
tools/binman/test/192_symbols_nodtb.dts | 26 ++
tools/binman/test/192_u_boot_tpl_nodtb.dts | 13 +
tools/binman/test/193_tpl_bss_pad.dts | 19 +
tools/binman/test/194_fdt_incl.dts | 17 +
tools/binman/test/195_fdt_incl_tpl.dts | 13 +
tools/binman/test/u_boot_binman_syms.c | 2 +-
tools/dtoc/dtb_platdata.py | 620
+++++++++++++++++++++++---
tools/dtoc/dtoc_test_scan_drivers.cxx | 1 -
tools/dtoc/main.py | 9 +-
tools/dtoc/src_scan.py | 597
++++++++++++++++++++++++-
tools/dtoc/{ => test}/dtoc_test.dts | 0
tools/dtoc/{ => test}/dtoc_test_add_prop.dts | 0
tools/dtoc/{ => test}/dtoc_test_addr32.dts | 0
tools/dtoc/{ => test}/dtoc_test_addr32_64.dts | 0
tools/dtoc/{ => test}/dtoc_test_addr64.dts | 0
tools/dtoc/{ => test}/dtoc_test_addr64_32.dts | 0
tools/dtoc/test/dtoc_test_alias_bad.dts | 58 +++
tools/dtoc/test/dtoc_test_alias_bad_path.dts | 58 +++
tools/dtoc/test/dtoc_test_alias_bad_uc.dts | 58 +++
tools/dtoc/{ => test}/dtoc_test_aliases.dts | 0
tools/dtoc/{ => test}/dtoc_test_bad_reg.dts | 0
tools/dtoc/{ => test}/dtoc_test_bad_reg2.dts | 0
tools/dtoc/{ => test}/dtoc_test_driver_alias.dts | 0
tools/dtoc/{ => test}/dtoc_test_empty.dts | 0
tools/dtoc/test/dtoc_test_inst.dts | 58 +++
tools/dtoc/{ => test}/dtoc_test_invalid_driver.dts | 0
tools/dtoc/{ => test}/dtoc_test_phandle.dts | 0
tools/dtoc/{ => test}/dtoc_test_phandle_bad.dts | 0
tools/dtoc/{ => test}/dtoc_test_phandle_bad2.dts | 0
tools/dtoc/{ => test}/dtoc_test_phandle_cd_gpios.dts | 0
tools/dtoc/{ => test}/dtoc_test_phandle_reorder.dts | 0
tools/dtoc/{ => test}/dtoc_test_phandle_single.dts | 0
tools/dtoc/test/dtoc_test_scan_drivers.cxx | 5 +
tools/dtoc/{ => test}/dtoc_test_simple.dts | 4 +-
tools/dtoc/test_dtoc.py | 1023
++++++++++++++++++++++++++++++++++++++++---
tools/dtoc/test_fdt.py | 31 +-
tools/dtoc/test_src_scan.py | 397
++++++++++++++++-
tools/fdtgrep.c | 2 +-
tools/patman/README | 14 +-
tools/patman/func_test.py | 2 +-
tools/patman/gitutil.py | 45 +-
tools/patman/main.py | 9 +-
tools/patman/series.py | 10 +-
tools/patman/tools.py | 8 +-
192 files changed, 6521 insertions(+), 1533 deletions(-)
create mode 100644 configs/sandbox_noinst_defconfig
rename doc/{ => develop}/driver-model/bind.rst (100%)
rename doc/{ => develop}/driver-model/debugging.rst (100%)
rename doc/{ => develop}/driver-model/design.rst (100%)
rename doc/{ => develop}/driver-model/ethernet.rst (100%)
rename doc/{ => develop}/driver-model/fdt-fixup.rst (100%)
rename doc/{ => develop}/driver-model/fs_firmware_loader.rst (100%)
rename doc/{ => develop}/driver-model/i2c-howto.rst (100%)
rename doc/{ => develop}/driver-model/index.rst (68%)
rename doc/{ => develop}/driver-model/livetree.rst (100%)
rename doc/{ => develop}/driver-model/migration.rst (100%)
create mode 100644 doc/develop/driver-model/of-plat.rst
rename doc/{ => develop}/driver-model/pci-info.rst (99%)
rename doc/{ => develop}/driver-model/pmic-framework.rst (100%)
rename doc/{ => develop}/driver-model/remoteproc-framework.rst (100%)
rename doc/{ => develop}/driver-model/serial-howto.rst (100%)
rename doc/{ => develop}/driver-model/soc-framework.rst (100%)
rename doc/{ => develop}/driver-model/spi-howto.rst (100%)
rename doc/{ => develop}/driver-model/usb-info.rst (100%)
create mode 120000 doc/develop/package/binman.rst
create mode 120000 doc/develop/package/entries.rst
create mode 100644 doc/develop/package/index.rst
rename doc/{ => develop}/uefi/index.rst (51%)
rename doc/{ => develop}/uefi/iscsi.rst (100%)
rename doc/{ => develop}/uefi/u-boot_on_efi.rst (100%)
rename doc/{ => develop}/uefi/uefi.rst (100%)
delete mode 100644 doc/driver-model/of-plat.rst
create mode 100644 doc/usage/fit.rst
create mode 120000 tools/binman/README.rst
rename tools/binman/{README => binman.rst} (64%)
rename tools/binman/{README.entries => entries.rst} (82%)
create mode 100644 tools/binman/etype/blob_phase.py
create mode 100644 tools/binman/etype/u_boot_expanded.py
create mode 100644 tools/binman/etype/u_boot_spl_expanded.py
create mode 100644 tools/binman/etype/u_boot_tpl_bss_pad.py
create mode 100644 tools/binman/etype/u_boot_tpl_expanded.py
create mode 100644 tools/binman/etype/u_boot_tpl_nodtb.py
create mode 100644 tools/binman/index.rst
create mode 100644 tools/binman/test/192_symbols_nodtb.dts
create mode 100644 tools/binman/test/192_u_boot_tpl_nodtb.dts
create mode 100644 tools/binman/test/193_tpl_bss_pad.dts
create mode 100644 tools/binman/test/194_fdt_incl.dts
create mode 100644 tools/binman/test/195_fdt_incl_tpl.dts
delete mode 100644 tools/dtoc/dtoc_test_scan_drivers.cxx
rename tools/dtoc/{ => test}/dtoc_test.dts (100%)
rename tools/dtoc/{ => test}/dtoc_test_add_prop.dts (100%)
rename tools/dtoc/{ => test}/dtoc_test_addr32.dts (100%)
rename tools/dtoc/{ => test}/dtoc_test_addr32_64.dts (100%)
rename tools/dtoc/{ => test}/dtoc_test_addr64.dts (100%)
rename tools/dtoc/{ => test}/dtoc_test_addr64_32.dts (100%)
create mode 100644 tools/dtoc/test/dtoc_test_alias_bad.dts
create mode 100644 tools/dtoc/test/dtoc_test_alias_bad_path.dts
create mode 100644 tools/dtoc/test/dtoc_test_alias_bad_uc.dts
rename tools/dtoc/{ => test}/dtoc_test_aliases.dts (100%)
rename tools/dtoc/{ => test}/dtoc_test_bad_reg.dts (100%)
rename tools/dtoc/{ => test}/dtoc_test_bad_reg2.dts (100%)
rename tools/dtoc/{ => test}/dtoc_test_driver_alias.dts (100%)
rename tools/dtoc/{ => test}/dtoc_test_empty.dts (100%)
create mode 100644 tools/dtoc/test/dtoc_test_inst.dts
rename tools/dtoc/{ => test}/dtoc_test_invalid_driver.dts (100%)
rename tools/dtoc/{ => test}/dtoc_test_phandle.dts (100%)
rename tools/dtoc/{ => test}/dtoc_test_phandle_bad.dts (100%)
rename tools/dtoc/{ => test}/dtoc_test_phandle_bad2.dts (100%)
rename tools/dtoc/{ => test}/dtoc_test_phandle_cd_gpios.dts (100%)
rename tools/dtoc/{ => test}/dtoc_test_phandle_reorder.dts (100%)
rename tools/dtoc/{ => test}/dtoc_test_phandle_single.dts (100%)
create mode 100644 tools/dtoc/test/dtoc_test_scan_drivers.cxx
rename tools/dtoc/{ => test}/dtoc_test_simple.dts (93%)
Regards,
Simon
next reply other threads:[~2021-03-20 20:58 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-20 20:58 Simon Glass [this message]
2021-03-20 23:21 ` Please pull u-boot-dm/next into -next Marek Behún
2021-03-21 0:20 ` Simon Glass
2021-03-21 1:16 ` Bin Meng
2021-03-21 1:18 ` Simon Glass
2021-03-21 1:20 ` Tom Rini
-- strict thread matches above, loose matches on Subject: below --
2021-03-26 6:05 Simon Glass
2021-03-26 19:14 ` Tom Rini
2021-01-06 2:53 Simon Glass
2021-01-06 12:56 ` Tom Rini
2020-12-23 19:04 Simon Glass
2020-12-24 14:12 ` Tom Rini
2020-12-14 15:50 Simon Glass
2020-12-15 14:06 ` Tom Rini
2020-12-15 16:28 ` Simon Glass
2020-12-17 2:10 ` Simon Glass
2020-12-17 14:01 ` Tom Rini
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='CAPnjgZ37Q4uXzhgM4eYhY+=hkjysbQ9k_cccD72LE+tEzGvCDQ@mail.gmail.com' \
--to=sjg@chromium.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.