* [PATCH] ARM: EXYNOS: Add support for ORIGEN4QUAD board
@ 2012-11-19 17:24 chlrbgh0 at gmail.com
2012-11-20 4:00 ` Tushar Behera
2012-11-20 4:38 ` Kukjin Kim
0 siblings, 2 replies; 5+ messages in thread
From: chlrbgh0 at gmail.com @ 2012-11-19 17:24 UTC (permalink / raw)
To: linux-arm-kernel
From: Kyuho Choi <kh.choi@insignal.co.kr>
This patch add support for Insignal ORIGEN4QUAD board.
ORIGEN4QUAD board based on Samsung Exynos4412 SoC.
Signed-off-by: Kyuho Choi <kh.choi@insignal.co.kr>
---
arch/arm/mach-exynos/Kconfig | 1 +
arch/arm/mach-exynos/mach-origen.c | 74 +++++++++++++++++++++++++++--------
2 files changed, 58 insertions(+), 17 deletions(-)
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index bb3b09a..0b8ccd3 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -324,6 +324,7 @@ config MACH_NURI
config MACH_ORIGEN
bool "ORIGEN"
select CPU_EXYNOS4210
+ select SOC_EXYNOS4412
select EXYNOS4_DEV_USB_OHCI
select EXYNOS4_SETUP_FIMD0
select EXYNOS4_SETUP_SDHCI
diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c
index e6f4191..2839724 100644
--- a/arch/arm/mach-exynos/mach-origen.c
+++ b/arch/arm/mach-exynos/mach-origen.c
@@ -1,6 +1,6 @@
/* linux/arch/arm/mach-exynos4/mach-origen.c
*
- * Copyright (c) 2011 Insignal Co., Ltd.
+ * Copyright (c) 2011-2012 Insignal Co., Ltd.
* http://www.insignal.co.kr/
*
* This program is free software; you can redistribute it and/or modify
@@ -771,19 +771,36 @@ static void __init origen_reserve(void)
s5p_mfc_reserve_mem(0x43000000, 8 << 20, 0x51000000, 8 << 20);
}
-static void __init origen_machine_init(void)
+static int __init origen4quad_i2c_init(void)
{
- origen_power_init();
+ /*
+ * Origen4Quad has weaknees drive strength in i2c channel 3.
+ * thus here setup i2c3's drvstr for Origen4Quad.
+ */
+ s5p_gpio_set_drvstr(EXYNOS4_GPA1(2), 3);
+ s5p_gpio_set_drvstr(EXYNOS4_GPA1(3), 3);
+ return 0;
+}
- s3c_i2c0_set_platdata(NULL);
- i2c_register_board_info(0, i2c0_devs, ARRAY_SIZE(i2c0_devs));
+static int __init origen4quad_usb_init(void)
+{
+ /* USB HUB controller's hub reset pin setup for Origen4Quad. */
+ gpio_request(EXYNOS4_GPX3(5), "GPX3");
+ gpio_direction_output(EXYNOS4_GPX3(5), 1);
+ gpio_set_value(EXYNOS4_GPX3(5), S3C_GPIO_PULL_UP);
+ gpio_free(EXYNOS4_GPX3(5));
+ return 0;
+}
+static void __init origen_machine_init(void)
+{
/*
- * Since sdhci instance 2 can contain a bootable media,
- * sdhci instance 0 is registered after instance 2.
+ * Common initialize code for ORIGEN and Origen4Quad.
*/
+ s3c_i2c0_set_platdata(NULL);
+ i2c_register_board_info(0, i2c0_devs, ARRAY_SIZE(i2c0_devs));
+
s3c_sdhci2_set_platdata(&origen_hsmmc2_pdata);
- s3c_sdhci0_set_platdata(&origen_hsmmc0_pdata);
origen_ehci_init();
origen_ohci_init();
@@ -793,22 +810,45 @@ static void __init origen_machine_init(void)
s5p_i2c_hdmiphy_set_platdata(NULL);
s5p_hdmi_set_platdata(&hdmiphy_info, NULL, 0);
-#ifdef CONFIG_DRM_EXYNOS
- s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata;
- exynos4_fimd0_gpio_setup_24bpp();
-#else
- s5p_fimd0_set_platdata(&origen_lcd_pdata);
-#endif
+ pwm_add_table(origen_pwm_lookup, ARRAY_SIZE(origen_pwm_lookup));
platform_add_devices(origen_devices, ARRAY_SIZE(origen_devices));
- pwm_add_table(origen_pwm_lookup, ARRAY_SIZE(origen_pwm_lookup));
- samsung_bl_set(&origen_bl_gpio_info, &origen_bl_data);
+ if (!soc_is_exynos4210()) {
+ /*
+ * In case of soc_is_4210(),
+ * Machine initialize for Origen.
+ */
- origen_bt_setup();
+ origen_power_init();
+
+ /*
+ * Since sdhci instance 2 can contain a bootable media,
+ * sdhci instance 0 is registered after instance 2.
+ */
+ s3c_sdhci0_set_platdata(&origen_hsmmc0_pdata);
+
+#ifdef CONFIG_DRM_EXYNOS
+ s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata;
+ exynos4_fimd0_gpio_setup_24bpp();
+#else
+ s5p_fimd0_set_platdata(&origen_lcd_pdata);
+#endif
+ samsung_bl_set(&origen_bl_gpio_info, &origen_bl_data);
+
+ origen_bt_setup();
+ } else{
+ /*
+ * In case of soc_is_4412(),
+ * Machine initialize for Origen4Quad.
+ */
+ origen4quad_i2c_init();
+ origen4quad_usb_init();
+ }
}
MACHINE_START(ORIGEN, "ORIGEN")
+ /* Maintainer: Kyuho Choi <kh.choi@insignal.co.kr> */
/* Maintainer: JeongHyeon Kim <jhkim@insignal.co.kr> */
.atag_offset = 0x100,
.smp = smp_ops(exynos_smp_ops),
--
1.7.5.4
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH] ARM: EXYNOS: Add support for ORIGEN4QUAD board
2012-11-19 17:24 [PATCH] ARM: EXYNOS: Add support for ORIGEN4QUAD board chlrbgh0 at gmail.com
@ 2012-11-20 4:00 ` Tushar Behera
2012-11-20 4:29 ` Kyuho Choi
2012-11-20 4:38 ` Kukjin Kim
1 sibling, 1 reply; 5+ messages in thread
From: Tushar Behera @ 2012-11-20 4:00 UTC (permalink / raw)
To: linux-arm-kernel
On 11/19/2012 10:54 PM, chlrbgh0 at gmail.com wrote:
> From: Kyuho Choi <kh.choi@insignal.co.kr>
>
> This patch add support for Insignal ORIGEN4QUAD board.
> ORIGEN4QUAD board based on Samsung Exynos4412 SoC.
>
> Signed-off-by: Kyuho Choi <kh.choi@insignal.co.kr>
> ---
> arch/arm/mach-exynos/Kconfig | 1 +
> arch/arm/mach-exynos/mach-origen.c | 74 +++++++++++++++++++++++++++--------
> 2 files changed, 58 insertions(+), 17 deletions(-)
>
Since Origen and Origen4Quad boards have different peripherals
(different pmic chip, touch/audio on different I2C bus etc.), how do you
plan to add them to mach-origen.c?
> diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
> index bb3b09a..0b8ccd3 100644
> --- a/arch/arm/mach-exynos/Kconfig
> +++ b/arch/arm/mach-exynos/Kconfig
> @@ -324,6 +324,7 @@ config MACH_NURI
> config MACH_ORIGEN
> bool "ORIGEN"
> select CPU_EXYNOS4210
> + select SOC_EXYNOS4412
> select EXYNOS4_DEV_USB_OHCI
> select EXYNOS4_SETUP_FIMD0
> select EXYNOS4_SETUP_SDHCI
> diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c
> index e6f4191..2839724 100644
> --- a/arch/arm/mach-exynos/mach-origen.c
> +++ b/arch/arm/mach-exynos/mach-origen.c
> @@ -1,6 +1,6 @@
> /* linux/arch/arm/mach-exynos4/mach-origen.c
> *
> - * Copyright (c) 2011 Insignal Co., Ltd.
> + * Copyright (c) 2011-2012 Insignal Co., Ltd.
> * http://www.insignal.co.kr/
> *
> * This program is free software; you can redistribute it and/or modify
> @@ -771,19 +771,36 @@ static void __init origen_reserve(void)
> s5p_mfc_reserve_mem(0x43000000, 8 << 20, 0x51000000, 8 << 20);
> }
>
> -static void __init origen_machine_init(void)
> +static int __init origen4quad_i2c_init(void)
> {
> - origen_power_init();
> + /*
> + * Origen4Quad has weaknees drive strength in i2c channel 3.
> + * thus here setup i2c3's drvstr for Origen4Quad.
> + */
> + s5p_gpio_set_drvstr(EXYNOS4_GPA1(2), 3);
> + s5p_gpio_set_drvstr(EXYNOS4_GPA1(3), 3);
> + return 0;
> +}
>
> - s3c_i2c0_set_platdata(NULL);
> - i2c_register_board_info(0, i2c0_devs, ARRAY_SIZE(i2c0_devs));
> +static int __init origen4quad_usb_init(void)
> +{
> + /* USB HUB controller's hub reset pin setup for Origen4Quad. */
> + gpio_request(EXYNOS4_GPX3(5), "GPX3");
> + gpio_direction_output(EXYNOS4_GPX3(5), 1);
> + gpio_set_value(EXYNOS4_GPX3(5), S3C_GPIO_PULL_UP);
> + gpio_free(EXYNOS4_GPX3(5));
> + return 0;
> +}
>
> +static void __init origen_machine_init(void)
> +{
> /*
> - * Since sdhci instance 2 can contain a bootable media,
> - * sdhci instance 0 is registered after instance 2.
> + * Common initialize code for ORIGEN and Origen4Quad.
> */
> + s3c_i2c0_set_platdata(NULL);
> + i2c_register_board_info(0, i2c0_devs, ARRAY_SIZE(i2c0_devs));
> +
> s3c_sdhci2_set_platdata(&origen_hsmmc2_pdata);
> - s3c_sdhci0_set_platdata(&origen_hsmmc0_pdata);
>
> origen_ehci_init();
> origen_ohci_init();
> @@ -793,22 +810,45 @@ static void __init origen_machine_init(void)
> s5p_i2c_hdmiphy_set_platdata(NULL);
> s5p_hdmi_set_platdata(&hdmiphy_info, NULL, 0);
>
> -#ifdef CONFIG_DRM_EXYNOS
> - s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata;
> - exynos4_fimd0_gpio_setup_24bpp();
> -#else
> - s5p_fimd0_set_platdata(&origen_lcd_pdata);
> -#endif
> + pwm_add_table(origen_pwm_lookup, ARRAY_SIZE(origen_pwm_lookup));
>
> platform_add_devices(origen_devices, ARRAY_SIZE(origen_devices));
>
> - pwm_add_table(origen_pwm_lookup, ARRAY_SIZE(origen_pwm_lookup));
> - samsung_bl_set(&origen_bl_gpio_info, &origen_bl_data);
> + if (!soc_is_exynos4210()) {
> + /*
> + * In case of soc_is_4210(),
> + * Machine initialize for Origen.
> + */
>
> - origen_bt_setup();
> + origen_power_init();
> +
> + /*
> + * Since sdhci instance 2 can contain a bootable media,
> + * sdhci instance 0 is registered after instance 2.
> + */
> + s3c_sdhci0_set_platdata(&origen_hsmmc0_pdata);
> +
> +#ifdef CONFIG_DRM_EXYNOS
> + s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata;
> + exynos4_fimd0_gpio_setup_24bpp();
> +#else
> + s5p_fimd0_set_platdata(&origen_lcd_pdata);
> +#endif
> + samsung_bl_set(&origen_bl_gpio_info, &origen_bl_data);
> +
> + origen_bt_setup();
> + } else{
> + /*
> + * In case of soc_is_4412(),
> + * Machine initialize for Origen4Quad.
> + */
> + origen4quad_i2c_init();
> + origen4quad_usb_init();
> + }
> }
>
> MACHINE_START(ORIGEN, "ORIGEN")
> + /* Maintainer: Kyuho Choi <kh.choi@insignal.co.kr> */
> /* Maintainer: JeongHyeon Kim <jhkim@insignal.co.kr> */
> .atag_offset = 0x100,
> .smp = smp_ops(exynos_smp_ops),
>
--
Tushar Behera
^ permalink raw reply [flat|nested] 5+ messages in thread* [PATCH] ARM: EXYNOS: Add support for ORIGEN4QUAD board
2012-11-20 4:00 ` Tushar Behera
@ 2012-11-20 4:29 ` Kyuho Choi
0 siblings, 0 replies; 5+ messages in thread
From: Kyuho Choi @ 2012-11-20 4:29 UTC (permalink / raw)
To: linux-arm-kernel
Thanks for your interest. :)
2012/11/20 Tushar Behera <tushar.behera@linaro.org>
> On 11/19/2012 10:54 PM, chlrbgh0 at gmail.com wrote:
> > From: Kyuho Choi <kh.choi@insignal.co.kr>
> >
> > This patch add support for Insignal ORIGEN4QUAD board.
> > ORIGEN4QUAD board based on Samsung Exynos4412 SoC.
> >
> > Signed-off-by: Kyuho Choi <kh.choi@insignal.co.kr>
> > ---
> > arch/arm/mach-exynos/Kconfig | 1 +
> > arch/arm/mach-exynos/mach-origen.c | 74
> +++++++++++++++++++++++++++--------
> > 2 files changed, 58 insertions(+), 17 deletions(-)
> >
>
> Since Origen and Origen4Quad boards have different peripherals
> (different pmic chip, touch/audio on different I2C bus etc.), how do you
> plan to add them to mach-origen.c?
>
> As your mentioned, PMIC setup code will be added for Origen4Quad board.
IMHO, Origen and Origen4Quad board has differential form SoC type.
Thus I modified machine initial code from "mach-origen.c" source. It
separate Origenboard and Origen4Quad board from SoC type.
- Common initialize features(Origen and Origen4Quad shared features)
- Origenboard dependant features
- Origen4Quad board dependant features
So, code to initialize the peripherals will be added to each area.
>
> > diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
> > index bb3b09a..0b8ccd3 100644
> > --- a/arch/arm/mach-exynos/Kconfig
> > +++ b/arch/arm/mach-exynos/Kconfig
> > @@ -324,6 +324,7 @@ config MACH_NURI
> > config MACH_ORIGEN
> > bool "ORIGEN"
> > select CPU_EXYNOS4210
> > + select SOC_EXYNOS4412
> > select EXYNOS4_DEV_USB_OHCI
> > select EXYNOS4_SETUP_FIMD0
> > select EXYNOS4_SETUP_SDHCI
> > diff --git a/arch/arm/mach-exynos/mach-origen.c
> b/arch/arm/mach-exynos/mach-origen.c
> > index e6f4191..2839724 100644
> > --- a/arch/arm/mach-exynos/mach-origen.c
> > +++ b/arch/arm/mach-exynos/mach-origen.c
> > @@ -1,6 +1,6 @@
> > /* linux/arch/arm/mach-exynos4/mach-origen.c
> > *
> > - * Copyright (c) 2011 Insignal Co., Ltd.
> > + * Copyright (c) 2011-2012 Insignal Co., Ltd.
> > * http://www.insignal.co.kr/
> > *
> > * This program is free software; you can redistribute it and/or modify
> > @@ -771,19 +771,36 @@ static void __init origen_reserve(void)
> > s5p_mfc_reserve_mem(0x43000000, 8 << 20, 0x51000000, 8 << 20);
> > }
> >
> > -static void __init origen_machine_init(void)
> > +static int __init origen4quad_i2c_init(void)
> > {
> > - origen_power_init();
> > + /*
> > + * Origen4Quad has weaknees drive strength in i2c channel 3.
> > + * thus here setup i2c3's drvstr for Origen4Quad.
> > + */
> > + s5p_gpio_set_drvstr(EXYNOS4_GPA1(2), 3);
> > + s5p_gpio_set_drvstr(EXYNOS4_GPA1(3), 3);
> > + return 0;
> > +}
> >
> > - s3c_i2c0_set_platdata(NULL);
> > - i2c_register_board_info(0, i2c0_devs, ARRAY_SIZE(i2c0_devs));
> > +static int __init origen4quad_usb_init(void)
> > +{
> > + /* USB HUB controller's hub reset pin setup for Origen4Quad. */
> > + gpio_request(EXYNOS4_GPX3(5), "GPX3");
> > + gpio_direction_output(EXYNOS4_GPX3(5), 1);
> > + gpio_set_value(EXYNOS4_GPX3(5), S3C_GPIO_PULL_UP);
> > + gpio_free(EXYNOS4_GPX3(5));
> > + return 0;
> > +}
> >
> > +static void __init origen_machine_init(void)
> > +{
> > /*
> > - * Since sdhci instance 2 can contain a bootable media,
> > - * sdhci instance 0 is registered after instance 2.
> > + * Common initialize code for ORIGEN and Origen4Quad.
> > */
> > + s3c_i2c0_set_platdata(NULL);
> > + i2c_register_board_info(0, i2c0_devs, ARRAY_SIZE(i2c0_devs));
> > +
> > s3c_sdhci2_set_platdata(&origen_hsmmc2_pdata);
> > - s3c_sdhci0_set_platdata(&origen_hsmmc0_pdata);
> >
> > origen_ehci_init();
> > origen_ohci_init();
> > @@ -793,22 +810,45 @@ static void __init origen_machine_init(void)
> > s5p_i2c_hdmiphy_set_platdata(NULL);
> > s5p_hdmi_set_platdata(&hdmiphy_info, NULL, 0);
> >
> > -#ifdef CONFIG_DRM_EXYNOS
> > - s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata;
> > - exynos4_fimd0_gpio_setup_24bpp();
> > -#else
> > - s5p_fimd0_set_platdata(&origen_lcd_pdata);
> > -#endif
> > + pwm_add_table(origen_pwm_lookup, ARRAY_SIZE(origen_pwm_lookup));
> >
> > platform_add_devices(origen_devices, ARRAY_SIZE(origen_devices));
> >
> > - pwm_add_table(origen_pwm_lookup, ARRAY_SIZE(origen_pwm_lookup));
> > - samsung_bl_set(&origen_bl_gpio_info, &origen_bl_data);
> > + if (!soc_is_exynos4210()) {
> > + /*
> > + * In case of soc_is_4210(),
> > + * Machine initialize for Origen.
> > + */
> >
> > - origen_bt_setup();
> > + origen_power_init();
> > +
> > + /*
> > + * Since sdhci instance 2 can contain a bootable media,
> > + * sdhci instance 0 is registered after instance 2.
> > + */
> > + s3c_sdhci0_set_platdata(&origen_hsmmc0_pdata);
> > +
> > +#ifdef CONFIG_DRM_EXYNOS
> > + s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata;
> > + exynos4_fimd0_gpio_setup_24bpp();
> > +#else
> > + s5p_fimd0_set_platdata(&origen_lcd_pdata);
> > +#endif
> > + samsung_bl_set(&origen_bl_gpio_info, &origen_bl_data);
> > +
> > + origen_bt_setup();
> > + } else{
> > + /*
> > + * In case of soc_is_4412(),
> > + * Machine initialize for Origen4Quad.
> > + */
> > + origen4quad_i2c_init();
> > + origen4quad_usb_init();
> > + }
> > }
> >
> > MACHINE_START(ORIGEN, "ORIGEN")
> > + /* Maintainer: Kyuho Choi <kh.choi@insignal.co.kr> */
> > /* Maintainer: JeongHyeon Kim <jhkim@insignal.co.kr> */
> > .atag_offset = 0x100,
> > .smp = smp_ops(exynos_smp_ops),
> >
>
>
> --
> Tushar Behera
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20121120/bc359c4c/attachment-0001.html>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] ARM: EXYNOS: Add support for ORIGEN4QUAD board
2012-11-19 17:24 [PATCH] ARM: EXYNOS: Add support for ORIGEN4QUAD board chlrbgh0 at gmail.com
2012-11-20 4:00 ` Tushar Behera
@ 2012-11-20 4:38 ` Kukjin Kim
2012-11-20 5:04 ` Kyuho Choi
1 sibling, 1 reply; 5+ messages in thread
From: Kukjin Kim @ 2012-11-20 4:38 UTC (permalink / raw)
To: linux-arm-kernel
chlrbgh0 at gmail.com wrote:
>
> From: Kyuho Choi <kh.choi@insignal.co.kr>
>
> This patch add support for Insignal ORIGEN4QUAD board.
> ORIGEN4QUAD board based on Samsung Exynos4412 SoC.
>
> Signed-off-by: Kyuho Choi <kh.choi@insignal.co.kr>
> ---
> arch/arm/mach-exynos/Kconfig | 1 +
> arch/arm/mach-exynos/mach-origen.c | 74
+++++++++++++++++++++++++++-----
> ---
> 2 files changed, 58 insertions(+), 17 deletions(-)
>
Hmm...at this moment, I don't want to update non-DT stuff for exynos,
because I have a plan to move on supporting only DT for all of exynos next
time.
Please submit DT patches for the ORIGEN4QUAD board.
Thanks.
K-Gene <kgene@kernel.org>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] ARM: EXYNOS: Add support for ORIGEN4QUAD board
2012-11-20 4:38 ` Kukjin Kim
@ 2012-11-20 5:04 ` Kyuho Choi
0 siblings, 0 replies; 5+ messages in thread
From: Kyuho Choi @ 2012-11-20 5:04 UTC (permalink / raw)
To: linux-arm-kernel
2012/11/20 Kukjin Kim <kgene@kernel.org>
> chlrbgh0 at gmail.com wrote:
> >
> > From: Kyuho Choi <kh.choi@insignal.co.kr>
> >
> > This patch add support for Insignal ORIGEN4QUAD board.
> > ORIGEN4QUAD board based on Samsung Exynos4412 SoC.
> >
> > Signed-off-by: Kyuho Choi <kh.choi@insignal.co.kr>
> > ---
> > arch/arm/mach-exynos/Kconfig | 1 +
> > arch/arm/mach-exynos/mach-origen.c | 74
> +++++++++++++++++++++++++++-----
> > ---
> > 2 files changed, 58 insertions(+), 17 deletions(-)
> >
> Hmm...at this moment, I don't want to update non-DT stuff for exynos,
> because I have a plan to move on supporting only DT for all of exynos next
> time.
>
> Please submit DT patches for the ORIGEN4QUAD board.
>
> Thanks.
>
Okay. I'll prepare and submit DT patches for ORIGEN4QUAD board. :)
>
> K-Gene <kgene@kernel.org>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20121120/4be4cd2e/attachment-0001.html>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-11-20 5:04 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-19 17:24 [PATCH] ARM: EXYNOS: Add support for ORIGEN4QUAD board chlrbgh0 at gmail.com
2012-11-20 4:00 ` Tushar Behera
2012-11-20 4:29 ` Kyuho Choi
2012-11-20 4:38 ` Kukjin Kim
2012-11-20 5:04 ` Kyuho Choi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).