* [PATCH 1/2] ARM: tegra: move <mach/powergate.h> to <linux/tegra-powergate.h>
@ 2013-03-30 0:19 Stephen Warren
2013-03-30 0:19 ` [PATCH 2/2] ARM: tegra: convert to multi-platform Stephen Warren
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Stephen Warren @ 2013-03-30 0:19 UTC (permalink / raw)
To: linux-arm-kernel
From: Stephen Warren <swarren@nvidia.com>
This is required so that code such as Tegra's PCIe and clock drivers
can still access this header file once Tegra is converted to
multiplatform, and <mach/> no longer exists.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
---
arch/arm/mach-tegra/board.h | 1 +
arch/arm/mach-tegra/common.c | 2 --
arch/arm/mach-tegra/pcie.c | 3 +--
arch/arm/mach-tegra/powergate.c | 3 +--
drivers/clk/tegra/clk-tegra30.c | 3 +--
.../include/mach/powergate.h => include/linux/tegra-powergate.h | 5 -----
6 files changed, 4 insertions(+), 13 deletions(-)
rename arch/arm/mach-tegra/include/mach/powergate.h => include/linux/tegra-powergate.h (92%)
diff --git a/arch/arm/mach-tegra/board.h b/arch/arm/mach-tegra/board.h
index 60431de..1787327 100644
--- a/arch/arm/mach-tegra/board.h
+++ b/arch/arm/mach-tegra/board.h
@@ -40,6 +40,7 @@ int tegra_clk_debugfs_init(void);
static inline int tegra_clk_debugfs_init(void) { return 0; }
#endif
+int __init tegra_powergate_init(void);
#if defined(CONFIG_ARCH_TEGRA_2x_SOC) && defined(CONFIG_DEBUG_FS)
int __init tegra_powergate_debugfs_init(void);
#else
diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c
index f0315c9..7cc75636 100644
--- a/arch/arm/mach-tegra/common.c
+++ b/arch/arm/mach-tegra/common.c
@@ -27,8 +27,6 @@
#include <asm/hardware/cache-l2x0.h>
-#include <mach/powergate.h>
-
#include "board.h"
#include "common.h"
#include "fuse.h"
diff --git a/arch/arm/mach-tegra/pcie.c b/arch/arm/mach-tegra/pcie.c
index b60165f..46144a1 100644
--- a/arch/arm/mach-tegra/pcie.c
+++ b/arch/arm/mach-tegra/pcie.c
@@ -34,12 +34,11 @@
#include <linux/delay.h>
#include <linux/export.h>
#include <linux/clk/tegra.h>
+#include <linux/tegra-powergate.h>
#include <asm/sizes.h>
#include <asm/mach/pci.h>
-#include <mach/powergate.h>
-
#include "board.h"
#include "iomap.h"
diff --git a/arch/arm/mach-tegra/powergate.c b/arch/arm/mach-tegra/powergate.c
index c6bc8f8..585d297 100644
--- a/arch/arm/mach-tegra/powergate.c
+++ b/arch/arm/mach-tegra/powergate.c
@@ -27,8 +27,7 @@
#include <linux/seq_file.h>
#include <linux/spinlock.h>
#include <linux/clk/tegra.h>
-
-#include <mach/powergate.h>
+#include <linux/tegra-powergate.h>
#include "fuse.h"
#include "iomap.h"
diff --git a/drivers/clk/tegra/clk-tegra30.c b/drivers/clk/tegra/clk-tegra30.c
index 32c61cb..84584e5 100644
--- a/drivers/clk/tegra/clk-tegra30.c
+++ b/drivers/clk/tegra/clk-tegra30.c
@@ -22,8 +22,7 @@
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/clk/tegra.h>
-
-#include <mach/powergate.h>
+#include <linux/tegra-powergate.h>
#include "clk.h"
diff --git a/arch/arm/mach-tegra/include/mach/powergate.h b/include/linux/tegra-powergate.h
similarity index 92%
rename from arch/arm/mach-tegra/include/mach/powergate.h
rename to include/linux/tegra-powergate.h
index 06763fe..55c29a8 100644
--- a/arch/arm/mach-tegra/include/mach/powergate.h
+++ b/include/linux/tegra-powergate.h
@@ -1,6 +1,4 @@
/*
- * drivers/regulator/tegra-regulator.c
- *
* Copyright (c) 2010 Google, Inc
*
* Author:
@@ -40,9 +38,6 @@ struct clk;
#define TEGRA_POWERGATE_CPU0 TEGRA_POWERGATE_CPU
#define TEGRA_POWERGATE_3D0 TEGRA_POWERGATE_3D
-int __init tegra_powergate_init(void);
-
-int tegra_cpu_powergate_id(int cpuid);
int tegra_powergate_is_powered(int id);
int tegra_powergate_power_on(int id);
int tegra_powergate_power_off(int id);
--
1.7.10.4
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH 2/2] ARM: tegra: convert to multi-platform 2013-03-30 0:19 [PATCH 1/2] ARM: tegra: move <mach/powergate.h> to <linux/tegra-powergate.h> Stephen Warren @ 2013-03-30 0:19 ` Stephen Warren 2013-03-30 14:16 ` Arnd Bergmann 2013-03-30 14:13 ` [PATCH 1/2] ARM: tegra: move <mach/powergate.h> to <linux/tegra-powergate.h> Arnd Bergmann 2013-04-02 15:57 ` Stephen Warren 2 siblings, 1 reply; 7+ messages in thread From: Stephen Warren @ 2013-03-30 0:19 UTC (permalink / raw) To: linux-arm-kernel From: Stephen Warren <swarren@nvidia.com> This allows Tegra be included in a kernel build that supports multiple SoCs at once, which is useful for distro kernels. This change: * Moves Tegra's Kconfig into its own directory, as seems typical for multi-platform conversions. * Stops selecting some ARM errata that are incompatible with multi- platform. This requires that you use a bootloader that enables the workaround! * Deletes some headers and Makefile.boot that aren't needed now that we support multi-platform. Signed-off-by: Stephen Warren <swarren@nvidia.com> --- arch/arm/Kconfig | 19 --- arch/arm/mach-tegra/Kconfig | 27 +++- arch/arm/mach-tegra/Makefile.boot | 3 - arch/arm/mach-tegra/include/mach/timex.h | 26 ---- arch/arm/mach-tegra/include/mach/uncompress.h | 175 ------------------------- 5 files changed, 20 insertions(+), 230 deletions(-) delete mode 100644 arch/arm/mach-tegra/Makefile.boot delete mode 100644 arch/arm/mach-tegra/include/mach/timex.h delete mode 100644 arch/arm/mach-tegra/include/mach/uncompress.h diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 59b7be7..f6dfe23 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -663,25 +663,6 @@ config ARCH_LPC32XX help Support for the NXP LPC32XX family of processors -config ARCH_TEGRA - bool "NVIDIA Tegra" - select ARCH_HAS_CPUFREQ - select ARCH_REQUIRE_GPIOLIB - select CLKDEV_LOOKUP - select CLKSRC_MMIO - select CLKSRC_OF - select COMMON_CLK - select GENERIC_CLOCKEVENTS - select HAVE_CLK - select HAVE_SMP - select MIGHT_HAVE_CACHE_L2X0 - select SOC_BUS - select SPARSE_IRQ - select USE_OF - help - This enables support for NVIDIA Tegra based systems (Tegra APX, - Tegra 6xx and Tegra 2 series). - config ARCH_PXA bool "PXA2xx/PXA3xx-based" depends on MMU diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig index d1c4893..df99ee9 100644 --- a/arch/arm/mach-tegra/Kconfig +++ b/arch/arm/mach-tegra/Kconfig @@ -1,13 +1,28 @@ -if ARCH_TEGRA +config ARCH_TEGRA + bool "NVIDIA Tegra" if ARCH_MULTI_V7 + select ARCH_HAS_CPUFREQ + select ARCH_REQUIRE_GPIOLIB + select CLKDEV_LOOKUP + select CLKSRC_MMIO + select CLKSRC_OF + select COMMON_CLK + select GENERIC_CLOCKEVENTS + select HAVE_CLK + select HAVE_SMP + select MIGHT_HAVE_CACHE_L2X0 + select SOC_BUS + select SPARSE_IRQ + select USE_OF + help + This enables support for NVIDIA Tegra based systems. -comment "NVIDIA Tegra options" +menu "NVIDIA Tegra options" + depends on ARCH_TEGRA config ARCH_TEGRA_2x_SOC bool "Enable support for Tegra20 family" select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP select ARM_ERRATA_720789 - select ARM_ERRATA_742230 if SMP - select ARM_ERRATA_751472 select ARM_ERRATA_754327 if SMP select ARM_ERRATA_764369 if SMP select ARM_GIC @@ -26,8 +41,6 @@ config ARCH_TEGRA_2x_SOC config ARCH_TEGRA_3x_SOC bool "Enable support for Tegra30 family" - select ARM_ERRATA_743622 - select ARM_ERRATA_751472 select ARM_ERRATA_754322 select ARM_ERRATA_764369 if SMP select ARM_GIC @@ -71,4 +84,4 @@ config TEGRA_AHB config TEGRA_EMC_SCALING_ENABLE bool "Enable scaling the memory frequency" -endif +endmenu diff --git a/arch/arm/mach-tegra/Makefile.boot b/arch/arm/mach-tegra/Makefile.boot deleted file mode 100644 index 2943381..0000000 --- a/arch/arm/mach-tegra/Makefile.boot +++ /dev/null @@ -1,3 +0,0 @@ -zreladdr-$(CONFIG_ARCH_TEGRA_2x_SOC) += 0x00008000 -params_phys-$(CONFIG_ARCH_TEGRA_2x_SOC) := 0x00000100 -initrd_phys-$(CONFIG_ARCH_TEGRA_2x_SOC) := 0x00800000 diff --git a/arch/arm/mach-tegra/include/mach/timex.h b/arch/arm/mach-tegra/include/mach/timex.h deleted file mode 100644 index a44ccbd..0000000 --- a/arch/arm/mach-tegra/include/mach/timex.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * arch/arm/mach-tegra/include/mach/timex.h - * - * Copyright (C) 2010 Google, Inc. - * - * Author: - * Colin Cross <ccross@google.com> - * Erik Gilling <konkers@google.com> - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#ifndef __MACH_TEGRA_TIMEX_H -#define __MACH_TEGRA_TIMEX_H - -#define CLOCK_TICK_RATE 1000000 - -#endif diff --git a/arch/arm/mach-tegra/include/mach/uncompress.h b/arch/arm/mach-tegra/include/mach/uncompress.h deleted file mode 100644 index 0838641..0000000 --- a/arch/arm/mach-tegra/include/mach/uncompress.h +++ /dev/null @@ -1,175 +0,0 @@ -/* - * arch/arm/mach-tegra/include/mach/uncompress.h - * - * Copyright (C) 2010 Google, Inc. - * Copyright (C) 2011 Google, Inc. - * Copyright (C) 2011-2012 NVIDIA CORPORATION. All Rights Reserved. - * - * Author: - * Colin Cross <ccross@google.com> - * Erik Gilling <konkers@google.com> - * Doug Anderson <dianders@chromium.org> - * Stephen Warren <swarren@nvidia.com> - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#ifndef __MACH_TEGRA_UNCOMPRESS_H -#define __MACH_TEGRA_UNCOMPRESS_H - -#include <linux/types.h> -#include <linux/serial_reg.h> - -#include "../../iomap.h" - -#define BIT(x) (1 << (x)) -#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) - -#define DEBUG_UART_SHIFT 2 - -volatile u8 *uart; - -static void putc(int c) -{ - if (uart == NULL) - return; - - while (!(uart[UART_LSR << DEBUG_UART_SHIFT] & UART_LSR_THRE)) - barrier(); - uart[UART_TX << DEBUG_UART_SHIFT] = c; -} - -static inline void flush(void) -{ -} - -static const struct { - u32 base; - u32 reset_reg; - u32 clock_reg; - u32 bit; -} uarts[] = { - { - TEGRA_UARTA_BASE, - TEGRA_CLK_RESET_BASE + 0x04, - TEGRA_CLK_RESET_BASE + 0x10, - 6, - }, - { - TEGRA_UARTB_BASE, - TEGRA_CLK_RESET_BASE + 0x04, - TEGRA_CLK_RESET_BASE + 0x10, - 7, - }, - { - TEGRA_UARTC_BASE, - TEGRA_CLK_RESET_BASE + 0x08, - TEGRA_CLK_RESET_BASE + 0x14, - 23, - }, - { - TEGRA_UARTD_BASE, - TEGRA_CLK_RESET_BASE + 0x0c, - TEGRA_CLK_RESET_BASE + 0x18, - 1, - }, - { - TEGRA_UARTE_BASE, - TEGRA_CLK_RESET_BASE + 0x0c, - TEGRA_CLK_RESET_BASE + 0x18, - 2, - }, -}; - -static inline bool uart_clocked(int i) -{ - if (*(u8 *)uarts[i].reset_reg & BIT(uarts[i].bit)) - return false; - - if (!(*(u8 *)uarts[i].clock_reg & BIT(uarts[i].bit))) - return false; - - return true; -} - -#ifdef CONFIG_TEGRA_DEBUG_UART_AUTO_ODMDATA -int auto_odmdata(void) -{ - volatile u32 *pmc = (volatile u32 *)TEGRA_PMC_BASE; - u32 odmdata = pmc[0xa0 / 4]; - - /* - * Bits 19:18 are the console type: 0=default, 1=none, 2==DCC, 3==UART - * Some boards apparently swap the last two values, but we don't have - * any way of catering for that here, so we just accept either. If this - * doesn't make sense for your board, just don't enable this feature. - * - * Bits 17:15 indicate the UART to use, 0/1/2/3/4 are UART A/B/C/D/E. - */ - - switch ((odmdata >> 18) & 3) { - case 2: - case 3: - break; - default: - return -1; - } - - return (odmdata >> 15) & 7; -} -#endif - -/* - * Setup before decompression. This is where we do UART selection for - * earlyprintk and init the uart_base register. - */ -static inline void arch_decomp_setup(void) -{ - int uart_id; - volatile u32 *apb_misc = (volatile u32 *)TEGRA_APB_MISC_BASE; - u32 chip, div; - -#if defined(CONFIG_TEGRA_DEBUG_UART_AUTO_ODMDATA) - uart_id = auto_odmdata(); -#elif defined(CONFIG_TEGRA_DEBUG_UARTA) - uart_id = 0; -#elif defined(CONFIG_TEGRA_DEBUG_UARTB) - uart_id = 1; -#elif defined(CONFIG_TEGRA_DEBUG_UARTC) - uart_id = 2; -#elif defined(CONFIG_TEGRA_DEBUG_UARTD) - uart_id = 3; -#elif defined(CONFIG_TEGRA_DEBUG_UARTE) - uart_id = 4; -#endif - - if (uart_id < 0 || uart_id >= ARRAY_SIZE(uarts) || - !uart_clocked(uart_id)) - uart = NULL; - else - uart = (volatile u8 *)uarts[uart_id].base; - - if (uart == NULL) - return; - - chip = (apb_misc[0x804 / 4] >> 8) & 0xff; - if (chip == 0x20) - div = 0x0075; - else - div = 0x00dd; - - uart[UART_LCR << DEBUG_UART_SHIFT] |= UART_LCR_DLAB; - uart[UART_DLL << DEBUG_UART_SHIFT] = div & 0xff; - uart[UART_DLM << DEBUG_UART_SHIFT] = div >> 8; - uart[UART_LCR << DEBUG_UART_SHIFT] = 3; -} - -#endif -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/2] ARM: tegra: convert to multi-platform 2013-03-30 0:19 ` [PATCH 2/2] ARM: tegra: convert to multi-platform Stephen Warren @ 2013-03-30 14:16 ` Arnd Bergmann 0 siblings, 0 replies; 7+ messages in thread From: Arnd Bergmann @ 2013-03-30 14:16 UTC (permalink / raw) To: linux-arm-kernel On Saturday 30 March 2013, Stephen Warren wrote: > From: Stephen Warren <swarren@nvidia.com> > > This allows Tegra be included in a kernel build that supports multiple > SoCs at once, which is useful for distro kernels. > > This change: > * Moves Tegra's Kconfig into its own directory, as seems typical for > multi-platform conversions. > * Stops selecting some ARM errata that are incompatible with multi- > platform. This requires that you use a bootloader that enables the > workaround! > * Deletes some headers and Makefile.boot that aren't needed now that we > support multi-platform. > > Signed-off-by: Stephen Warren <swarren@nvidia.com> Ok, very nice. I already commented on patch 1 of the series, which I hope we can replace with something better. Another comment is that the EHCI driver is broken for Tegra if enabled in combination with one of a few other platforms. Manjunath has an experimental patch for this, but there are still problems with that patch. I'll forward a private copy of the last version we had, and you can try to get it working from there. Arnd ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2] ARM: tegra: move <mach/powergate.h> to <linux/tegra-powergate.h> 2013-03-30 0:19 [PATCH 1/2] ARM: tegra: move <mach/powergate.h> to <linux/tegra-powergate.h> Stephen Warren 2013-03-30 0:19 ` [PATCH 2/2] ARM: tegra: convert to multi-platform Stephen Warren @ 2013-03-30 14:13 ` Arnd Bergmann 2013-04-01 16:08 ` Stephen Warren 2013-04-02 15:57 ` Stephen Warren 2 siblings, 1 reply; 7+ messages in thread From: Arnd Bergmann @ 2013-03-30 14:13 UTC (permalink / raw) To: linux-arm-kernel On Saturday 30 March 2013, Stephen Warren wrote: > From: Stephen Warren <swarren@nvidia.com> > > This is required so that code such as Tegra's PCIe and clock drivers > can still access this header file once Tegra is converted to > multiplatform, and <mach/> no longer exists. > > Signed-off-by: Stephen Warren <swarren@nvidia.com> It sounds like this should be integrated in the reset controller API that Philipp Zabel just posted. I'm not blaming you for now knowing about it, since I only saw it myself a few days ago, and my interpretation could be wrong. Are you able to move to that API before 3.10? If not, we can probably take your patch for now, if you remove it again for 3.11. Arnd ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2] ARM: tegra: move <mach/powergate.h> to <linux/tegra-powergate.h> 2013-03-30 14:13 ` [PATCH 1/2] ARM: tegra: move <mach/powergate.h> to <linux/tegra-powergate.h> Arnd Bergmann @ 2013-04-01 16:08 ` Stephen Warren 2013-04-01 17:14 ` Arnd Bergmann 0 siblings, 1 reply; 7+ messages in thread From: Stephen Warren @ 2013-04-01 16:08 UTC (permalink / raw) To: linux-arm-kernel On 03/30/2013 08:13 AM, Arnd Bergmann wrote: > On Saturday 30 March 2013, Stephen Warren wrote: >> From: Stephen Warren <swarren@nvidia.com> >> >> This is required so that code such as Tegra's PCIe and clock drivers >> can still access this header file once Tegra is converted to >> multiplatform, and <mach/> no longer exists. >> >> Signed-off-by: Stephen Warren <swarren@nvidia.com> > > It sounds like this should be integrated in the reset controller API > that Philipp Zabel just posted. I'm not blaming you for now knowing > about it, since I only saw it myself a few days ago, and my interpretation > could be wrong. Are you able to move to that API before 3.10? Well, I wrote the binding for it:-) > If not, we can probably take your patch for now, if you remove it > again for 3.11. There are at least a couple of different things in this file: a) The reset API, which definitely should be converted to the new reset API. I can't make any promises about which kernel release that will happen in, but it's definitely something we know we have to do. b) Power-gating. This should probably be converted to use the powerdomains code. I believe Joseph Lo is aware of this, but again I can't promise any specific time-scale at this time. So is this still OK, without any promises of timescale? ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2] ARM: tegra: move <mach/powergate.h> to <linux/tegra-powergate.h> 2013-04-01 16:08 ` Stephen Warren @ 2013-04-01 17:14 ` Arnd Bergmann 0 siblings, 0 replies; 7+ messages in thread From: Arnd Bergmann @ 2013-04-01 17:14 UTC (permalink / raw) To: linux-arm-kernel On Monday 01 April 2013, Stephen Warren wrote: > On 03/30/2013 08:13 AM, Arnd Bergmann wrote: > > On Saturday 30 March 2013, Stephen Warren wrote: > > If not, we can probably take your patch for now, if you remove it > > again for 3.11. > > There are at least a couple of different things in this file: > > a) The reset API, which definitely should be converted to the new reset > API. I can't make any promises about which kernel release that will > happen in, but it's definitely something we know we have to do. > > b) Power-gating. This should probably be converted to use the > powerdomains code. I believe Joseph Lo is aware of this, but again I > can't promise any specific time-scale at this time. > > So is this still OK, without any promises of timescale? > Yes, sounds good. Arnd ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2] ARM: tegra: move <mach/powergate.h> to <linux/tegra-powergate.h> 2013-03-30 0:19 [PATCH 1/2] ARM: tegra: move <mach/powergate.h> to <linux/tegra-powergate.h> Stephen Warren 2013-03-30 0:19 ` [PATCH 2/2] ARM: tegra: convert to multi-platform Stephen Warren 2013-03-30 14:13 ` [PATCH 1/2] ARM: tegra: move <mach/powergate.h> to <linux/tegra-powergate.h> Arnd Bergmann @ 2013-04-02 15:57 ` Stephen Warren 2 siblings, 0 replies; 7+ messages in thread From: Stephen Warren @ 2013-04-02 15:57 UTC (permalink / raw) To: linux-arm-kernel On 03/29/2013 06:19 PM, Stephen Warren wrote: > From: Stephen Warren <swarren@nvidia.com> > > This is required so that code such as Tegra's PCIe and clock drivers > can still access this header file once Tegra is converted to > multiplatform, and <mach/> no longer exists. The series applied to Tegra's for-3.10/multiplatform branch. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-04-02 15:57 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-03-30 0:19 [PATCH 1/2] ARM: tegra: move <mach/powergate.h> to <linux/tegra-powergate.h> Stephen Warren 2013-03-30 0:19 ` [PATCH 2/2] ARM: tegra: convert to multi-platform Stephen Warren 2013-03-30 14:16 ` Arnd Bergmann 2013-03-30 14:13 ` [PATCH 1/2] ARM: tegra: move <mach/powergate.h> to <linux/tegra-powergate.h> Arnd Bergmann 2013-04-01 16:08 ` Stephen Warren 2013-04-01 17:14 ` Arnd Bergmann 2013-04-02 15:57 ` Stephen Warren
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).