All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/7] Add support for 750CL Holly board
@ 2007-05-05 16:13 Josh Boyer
  2007-05-05 16:14 ` [PATCH v2 0/1] Add tsi108_pci.h for common PCI functions Josh Boyer
                   ` (6 more replies)
  0 siblings, 7 replies; 32+ messages in thread
From: Josh Boyer @ 2007-05-05 16:13 UTC (permalink / raw)
  To: linuxppc-dev

Hi All,

This is round 2  of the patches to support the 750CL HOlly eval board.
It should also work for the 750GX Hickory board as well.  I think most
of the comments on the previous round have been addressed.

Included are a few TSI108 ethernet and PCI cleanups that should allow
for multiplatform builds for boards that contain a TSI chipset.

As always, comments welcome.

josh

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [PATCH v2 0/1] Add tsi108_pci.h for common PCI functions
  2007-05-05 16:13 [PATCH v2 0/7] Add support for 750CL Holly board Josh Boyer
@ 2007-05-05 16:14 ` Josh Boyer
  2007-05-05 16:15 ` [PATCH v2 2/7] Generalize tsi108 PHY types Josh Boyer
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 32+ messages in thread
From: Josh Boyer @ 2007-05-05 16:14 UTC (permalink / raw)
  To: linuxppc-dev

Add a header file for the common PCI routines used for the TSI bridge

Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>

---
 arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c |    5 --
 arch/powerpc/sysdev/tsi108_pci.c                  |    1 
 include/asm-powerpc/tsi108_pci.h                  |   45 ++++++++++++++++++++++
 3 files changed, 47 insertions(+), 4 deletions(-)

--- linux-2.6.orig/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
+++ linux-2.6/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
@@ -41,6 +41,7 @@
 #include <asm/reg.h>
 #include <mm/mmu_decl.h>
 #include "mpc7448_hpc2.h"
+#include <asm/tsi108_pci.h>
 #include <asm/tsi108_irq.h>
 #include <asm/mpic.h>
 
@@ -57,10 +58,7 @@ isa_mem_base = MPC7448_HPC2_ISA_MEM_BASE
 pci_dram_offset = MPC7448_HPC2_PCI_MEM_OFFSET;
 #endif
 
-extern int tsi108_setup_pci(struct device_node *dev);
 extern void _nmask_and_or_msr(unsigned long nmask, unsigned long or_val);
-extern void tsi108_pci_int_init(struct device_node *node);
-extern void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc);
 
 int mpc7448_hpc2_exclude_device(u_char bus, u_char devfn)
 {
@@ -210,7 +208,6 @@ static int __init mpc7448_hpc2_probe(voi
 
 static int mpc7448_machine_check_exception(struct pt_regs *regs)
 {
-	extern void tsi108_clear_pci_cfg_error(void);
 	const struct exception_table_entry *entry;
 
 	/* Are we prepared to handle this fault */
--- linux-2.6.orig/arch/powerpc/sysdev/tsi108_pci.c
+++ linux-2.6/arch/powerpc/sysdev/tsi108_pci.c
@@ -35,6 +35,7 @@
 #include <asm/machdep.h>
 #include <asm/pci-bridge.h>
 #include <asm/tsi108.h>
+#include <asm/tsi108_pci.h>
 #include <asm/tsi108_irq.h>
 #include <asm/prom.h>
 
--- /dev/null
+++ linux-2.6/include/asm-powerpc/tsi108_pci.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2007 IBM Corp
+ *
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef _ASM_PPC_TSI108_PCI_H
+#define _ASM_PPC_TSI108_PCI_H
+
+#include <asm/tsi108.h>
+
+/* Register definitions */
+#define TSI108_PCI_P2O_BAR0 (TSI108_PCI_OFFSET + 0x10)
+#define TSI108_PCI_P2O_BAR0_UPPER (TSI108_PCI_OFFSET + 0x14)
+#define TSI108_PCI_P2O_BAR2 (TSI108_PCI_OFFSET + 0x18)
+#define TSI108_PCI_P2O_BAR2_UPPER (TSI108_PCI_OFFSET + 0x1c)
+#define TSI108_PCI_P2O_PAGE_SIZES (TSI108_PCI_OFFSET + 0x4c)
+#define TSI108_PCI_PFAB_BAR0 (TSI108_PCI_OFFSET + 0x204)
+#define TSI108_PCI_PFAB_BAR0_UPPER (TSI108_PCI_OFFSET + 0x208)
+#define TSI108_PCI_PFAB_IO (TSI108_PCI_OFFSET + 0x20c)
+#define TSI108_PCI_PFAB_IO_UPPER (TSI108_PCI_OFFSET + 0x210)
+#define TSI108_PCI_PFAB_MEM32 (TSI108_PCI_OFFSET + 0x214)
+#define TSI108_PCI_PFAB_PFM3 (TSI108_PCI_OFFSET + 0x220)
+#define TSI108_PCI_PFAB_PFM4 (TSI108_PCI_OFFSET + 0x230)
+
+extern int tsi108_setup_pci(struct device_node *dev);
+extern void tsi108_pci_int_init(struct device_node *node);
+extern void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc);
+extern void tsi108_clear_pci_cfg_error(void);
+
+#endif				/*  _ASM_PPC_TSI108_PCI_H */

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [PATCH v2 2/7] Generalize tsi108 PHY types
  2007-05-05 16:13 [PATCH v2 0/7] Add support for 750CL Holly board Josh Boyer
  2007-05-05 16:14 ` [PATCH v2 0/1] Add tsi108_pci.h for common PCI functions Josh Boyer
@ 2007-05-05 16:15 ` Josh Boyer
  2007-05-05 16:16 ` [PATCH v2 3/7] Generalize TSI 108 PCI setup Josh Boyer
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 32+ messages in thread
From: Josh Boyer @ 2007-05-05 16:15 UTC (permalink / raw)
  To: linuxppc-dev

Add a phy_type field to the tsi108 ethernet structures to indicate which PHY
is used on a board.  This is derived from the "compatible" property in the
ethernet-phy node of the device tree.  The default remains the MV88E PHY.

Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>

---
 arch/powerpc/sysdev/tsi108_dev.c |    2 ++
 drivers/net/tsi108_eth.c         |   12 +++++++-----
 drivers/net/tsi108_eth.h         |    9 ---------
 include/asm-powerpc/tsi108.h     |   11 +++++++++++
 4 files changed, 20 insertions(+), 14 deletions(-)

--- linux-2.6.orig/arch/powerpc/sysdev/tsi108_dev.c
+++ linux-2.6/arch/powerpc/sysdev/tsi108_dev.c
@@ -129,6 +129,8 @@ static int __init tsi108_eth_of_init(voi
 		tsi_eth_data.phyregs = res.start;
 		tsi_eth_data.phy = *phy_id;
 		tsi_eth_data.irq_num = irq_of_parse_and_map(np, 0);
+		if (of_device_is_compatible(phy, "bcm54xx"))
+			tsi_eth_data.phy_type = TSI108_PHY_BCM54XX;
 		of_node_put(phy);
 		ret =
 		    platform_device_add_data(tsi_eth_dev, &tsi_eth_data,
--- linux-2.6.orig/drivers/net/tsi108_eth.c
+++ linux-2.6/drivers/net/tsi108_eth.c
@@ -82,6 +82,7 @@ struct tsi108_prv_data {
 	unsigned int phy;		/* Index of PHY for this interface */
 	unsigned int irq_num;
 	unsigned int id;
+	unsigned int phy_type;
 
 	struct timer_list timer;/* Timer that triggers the check phy function */
 	unsigned int rxtail;	/* Next entry in rxring to read */
@@ -1256,11 +1257,11 @@ static void tsi108_init_phy(struct net_d
 	if (i == 0)
 		printk(KERN_ERR "%s function time out \n", __FUNCTION__);
 
-#if (TSI108_PHY_TYPE == PHY_BCM54XX)	/* Broadcom BCM54xx PHY */
-	tsi108_write_mii(data, 0x09, 0x0300);
-	tsi108_write_mii(data, 0x10, 0x1020);
-	tsi108_write_mii(data, 0x1c, 0x8c00);
-#endif
+	if (data->phy_type == TSI108_PHY_BCM54XX) {
+		tsi108_write_mii(data, 0x09, 0x0300);
+		tsi108_write_mii(data, 0x10, 0x1020);
+		tsi108_write_mii(data, 0x1c, 0x8c00);
+	}
 
 	tsi108_write_mii(data,
 			 MII_BMCR,
@@ -1587,6 +1588,7 @@ tsi108_init_one(struct platform_device *
 	data->mii_if.supports_gmii = mii_check_gmii_support(&data->mii_if);
 
 	data->phy = einfo->phy;
+	data->phy_type = einfo->phy_type;
 	data->irq_num = einfo->irq_num;
 	data->id = pdev->id;
 	dev->open = tsi108_open;
--- linux-2.6.orig/drivers/net/tsi108_eth.h
+++ linux-2.6/drivers/net/tsi108_eth.h
@@ -43,15 +43,6 @@
 	in_be32((data->phyregs + (offset)))
 
 /*
- * PHY Configuration Options
- *
- * NOTE: Enable set of definitions corresponding to your board type
- */
-#define PHY_MV88E	1	/* Marvel 88Exxxx PHY */
-#define PHY_BCM54XX	2	/* Broardcom BCM54xx PHY */
-#define TSI108_PHY_TYPE	PHY_MV88E
-
-/*
  * TSI108 GIGE port registers
  */
 
--- linux-2.6.orig/include/asm-powerpc/tsi108.h
+++ linux-2.6/include/asm-powerpc/tsi108.h
@@ -70,6 +70,16 @@
 
 #define TSI108_PCI_CFG_BASE_PHYS	(0xfb000000)
 #define TSI108_PCI_CFG_SIZE		(0x01000000)
+
+/*
+ * PHY Configuration Options
+ *
+ * Specify "bcm54xx" in the compatible property of your device tree phy
+ * nodes if your board uses the Broadcom PHYs
+ */
+#define TSI108_PHY_MV88E	0	/* Marvel 88Exxxx PHY */
+#define TSI108_PHY_BCM54XX	1	/* Broardcom BCM54xx PHY */
+
 /* Global variables */
 
 extern u32 tsi108_pci_cfg_base;
@@ -93,6 +103,7 @@ typedef struct {
 	u16 phy;		/* phy address */
 	u16 irq_num;		/* irq number */
 	u8 mac_addr[6];		/* phy mac address */
+	u16 phy_type;	/* type of phy on board */
 } hw_info;
 
 extern u32 get_vir_csrbase(void);

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [PATCH v2 3/7] Generalize TSI 108 PCI setup
  2007-05-05 16:13 [PATCH v2 0/7] Add support for 750CL Holly board Josh Boyer
  2007-05-05 16:14 ` [PATCH v2 0/1] Add tsi108_pci.h for common PCI functions Josh Boyer
  2007-05-05 16:15 ` [PATCH v2 2/7] Generalize tsi108 PHY types Josh Boyer
@ 2007-05-05 16:16 ` Josh Boyer
  2007-05-05 16:17 ` [PATCH v2 4/7] Add support for 750CL Holly board Josh Boyer
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 32+ messages in thread
From: Josh Boyer @ 2007-05-05 16:16 UTC (permalink / raw)
  To: linuxppc-dev

Generalize tsi108_setup_pci to take the config space physical address as
a parameter.

Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>

---
 arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c |    2 +-
 arch/powerpc/sysdev/tsi108_pci.c                  |    9 +++++----
 include/asm-powerpc/tsi108_pci.h                  |    2 +-
 3 files changed, 7 insertions(+), 6 deletions(-)

--- linux-2.6.orig/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
+++ linux-2.6/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
@@ -79,7 +79,7 @@ static void __init mpc7448_hpc2_setup_ar
 	/* setup PCI host bridge */
 #ifdef CONFIG_PCI
 	for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;)
-		tsi108_setup_pci(np);
+		tsi108_setup_pci(np, TSI108_CFG_BASE_PHYS);
 
 	ppc_md.pci_exclude_device = mpc7448_hpc2_exclude_device;
 	if (ppc_md.progress)
--- linux-2.6.orig/arch/powerpc/sysdev/tsi108_pci.c
+++ linux-2.6/arch/powerpc/sysdev/tsi108_pci.c
@@ -50,6 +50,7 @@
 	((((bus)<<16) | ((devfunc)<<8) | (offset & 0xfc)) + tsi108_pci_cfg_base)
 
 u32 tsi108_pci_cfg_base;
+static u32 tsi108_pci_cfg_phys;
 u32 tsi108_csr_vir_base;
 static struct device_node *pci_irq_node;
 static struct irq_host *pci_irq_host;
@@ -186,7 +187,7 @@ tsi108_direct_read_config(struct pci_bus
 
 void tsi108_clear_pci_cfg_error(void)
 {
-	tsi108_clear_pci_error(TSI108_PCI_CFG_BASE_PHYS);
+	tsi108_clear_pci_error(tsi108_pci_cfg_phys);
 }
 
 static struct pci_ops tsi108_direct_pci_ops = {
@@ -194,7 +195,7 @@ static struct pci_ops tsi108_direct_pci_
 	tsi108_direct_write_config
 };
 
-int __init tsi108_setup_pci(struct device_node *dev)
+int __init tsi108_setup_pci(struct device_node *dev, u32 cfg_phys)
 {
 	int len;
 	struct pci_controller *hose;
@@ -203,8 +204,8 @@ int __init tsi108_setup_pci(struct devic
 	int primary = 0, has_address = 0;
 
 	/* PCI Config mapping */
-	tsi108_pci_cfg_base = (u32)ioremap(TSI108_PCI_CFG_BASE_PHYS,
-			TSI108_PCI_CFG_SIZE);
+	tsi108_pci_cfg_base = (u32)ioremap(cfg_phys, TSI108_PCI_CFG_SIZE);
+	tsi108_pci_cfg_phys = cfg_phys;
 	DBG("TSI_PCI: %s tsi108_pci_cfg_base=0x%x\n", __FUNCTION__,
 	    tsi108_pci_cfg_base);
 
--- linux-2.6.orig/include/asm-powerpc/tsi108_pci.h
+++ linux-2.6/include/asm-powerpc/tsi108_pci.h
@@ -37,7 +37,7 @@
 #define TSI108_PCI_PFAB_PFM3 (TSI108_PCI_OFFSET + 0x220)
 #define TSI108_PCI_PFAB_PFM4 (TSI108_PCI_OFFSET + 0x230)
 
-extern int tsi108_setup_pci(struct device_node *dev);
+extern int tsi108_setup_pci(struct device_node *dev, u32 cfg_phys);
 extern void tsi108_pci_int_init(struct device_node *node);
 extern void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc);
 extern void tsi108_clear_pci_cfg_error(void);

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [PATCH v2 4/7] Add support for 750CL Holly board
  2007-05-05 16:13 [PATCH v2 0/7] Add support for 750CL Holly board Josh Boyer
                   ` (2 preceding siblings ...)
  2007-05-05 16:16 ` [PATCH v2 3/7] Generalize TSI 108 PCI setup Josh Boyer
@ 2007-05-05 16:17 ` Josh Boyer
  2007-05-07  4:22   ` Paul Mackerras
  2007-05-05 16:19 ` [PATCH v2 5/7] Holly defconfig Josh Boyer
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 32+ messages in thread
From: Josh Boyer @ 2007-05-05 16:17 UTC (permalink / raw)
  To: linuxppc-dev

Add PowerPC 750 Holly/Hickory platform support

Signed-off-by: Stephen Winiecki <stevewin@us.ibm.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
---
 arch/powerpc/Kconfig                        |    2 
 arch/powerpc/platforms/embedded6xx/Kconfig  |   14 -
 arch/powerpc/platforms/embedded6xx/Makefile |    1 
 arch/powerpc/platforms/embedded6xx/holly.c  |  316 ++++++++++++++++++++++++++++
 4 files changed, 329 insertions(+), 4 deletions(-)

--- linux-2.6.orig/arch/powerpc/Kconfig
+++ linux-2.6/arch/powerpc/Kconfig
@@ -659,7 +659,7 @@ config MCA
 config PCI
 	bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
 		|| PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \
-		|| MPC7448HPC2 || PPC_PS3
+		|| MPC7448HPC2 || PPC_PS3 || HOLLY
 	default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx \
 		&& !PPC_85xx && !PPC_86xx
 	default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
--- linux-2.6.orig/arch/powerpc/platforms/embedded6xx/Kconfig
+++ linux-2.6/arch/powerpc/platforms/embedded6xx/Kconfig
@@ -20,16 +20,24 @@ config MPC7448HPC2
 	select TSI108_BRIDGE
 	select DEFAULT_UIMAGE
 	select PPC_UDBG_16550
-	select MPIC
-	select MPIC_WEIRD
 	help
 	  Select MPC7448HPC2 if configuring for Freescale MPC7448HPC2 (Taiga)
 	  platform
+
+config HOLLY
+	bool "PPC750GX/CL with TSI10x bridge (Hickory/Holly)"
+	select TSI108_BRIDGE
+	select PPC_UDBG_16550
+	help
+	  Select HOLLY if configuring for an IBM 750GX/CL Eval
+	  Board with TSI108/9 bridge (Hickory/Holly)
 endchoice
 
 config TSI108_BRIDGE
 	bool
-	depends on MPC7448HPC2
+	depends on MPC7448HPC2 || HOLLY
+	select MPIC
+	select MPIC_WEIRD
 	default y
 
 config MPC10X_BRIDGE
--- linux-2.6.orig/arch/powerpc/platforms/embedded6xx/Makefile
+++ linux-2.6/arch/powerpc/platforms/embedded6xx/Makefile
@@ -3,3 +3,4 @@
 #
 obj-$(CONFIG_MPC7448HPC2)	+= mpc7448_hpc2.o
 obj-$(CONFIG_LINKSTATION)	+= linkstation.o ls_uart.o
+obj-$(CONFIG_HOLLY)		+= holly.o
--- /dev/null
+++ linux-2.6/arch/powerpc/platforms/embedded6xx/holly.c
@@ -0,0 +1,316 @@
+/*
+ * Board setup routines for the IBM 750GX/CL platform w/ TSI10x bridge
+ *
+ * Copyright 2007 IBM Corporation
+ *
+ * Stephen Winiecki <stevewin@us.ibm.com>
+ * Josh Boyer <jwboyer@linux.vnet.ibm.com>
+ *
+ * Based on code from mpc7448_hpc2.c
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2 as published by the Free Software Foundation.
+ */
+
+#include <linux/stddef.h>
+#include <linux/kernel.h>
+#include <linux/pci.h>
+#include <linux/kdev_t.h>
+#include <linux/console.h>
+#include <linux/delay.h>
+#include <linux/irq.h>
+#include <linux/ide.h>
+#include <linux/seq_file.h>
+#include <linux/root_dev.h>
+#include <linux/serial.h>
+#include <linux/tty.h>
+#include <linux/serial_core.h>
+
+#include <asm/system.h>
+#include <asm/time.h>
+#include <asm/machdep.h>
+#include <asm/prom.h>
+#include <asm/udbg.h>
+#include <asm/tsi108.h>
+#include <asm/pci-bridge.h>
+#include <asm/reg.h>
+#include <mm/mmu_decl.h>
+#include <asm/tsi108_irq.h>
+#include <asm/tsi108_pci.h>
+#include <asm/mpic.h>
+#include <asm/of_platform.h>
+
+#undef DEBUG
+
+#define HOLLY_PCI_CFG_PHYS 0x7e000000
+
+int holly_exclude_device(u_char bus, u_char devfn)
+{
+	if (bus == 0 && PCI_SLOT(devfn) == 0)
+		return PCIBIOS_DEVICE_NOT_FOUND;
+	else
+		return PCIBIOS_SUCCESSFUL;
+}
+
+static void holly_remap_bridge(void)
+{
+	u32 lut_val, lut_addr;
+	int i;
+
+	printk(KERN_INFO "Remapping PCI bridge\n");
+
+	/* Re-init the PCI bridge and LUT registers to have mappings that don't
+	 * rely on PIBS
+	 */
+	lut_addr = 0x900;
+	for (i = 0; i < 31; i++) {
+		tsi108_write_reg(TSI108_PB_OFFSET + lut_addr, 0x00000201);
+		lut_addr += 4;
+		tsi108_write_reg(TSI108_PB_OFFSET + lut_addr, 0x0);
+		lut_addr += 4;
+	}
+
+	/* Reserve the last LUT entry for PCI I/O space */
+	tsi108_write_reg(TSI108_PB_OFFSET + lut_addr, 0x00000241);
+	lut_addr += 4;
+	tsi108_write_reg(TSI108_PB_OFFSET + lut_addr, 0x0);
+
+	/* Map PCI I/O space */
+	tsi108_write_reg(TSI108_PCI_PFAB_IO_UPPER, 0x0);
+	tsi108_write_reg(TSI108_PCI_PFAB_IO, 0x1);
+
+	/* Map PCI CFG space */
+	tsi108_write_reg(TSI108_PCI_PFAB_BAR0_UPPER, 0x0);
+	tsi108_write_reg(TSI108_PCI_PFAB_BAR0, 0x7c000000 | 0x01);
+
+	/* We don't need MEM32 and PRM remapping so disable them */
+	tsi108_write_reg(TSI108_PCI_PFAB_MEM32, 0x0);
+	tsi108_write_reg(TSI108_PCI_PFAB_PFM3, 0x0);
+	tsi108_write_reg(TSI108_PCI_PFAB_PFM4, 0x0);
+
+	/* Set P2O_BAR0 */
+	tsi108_write_reg(TSI108_PCI_P2O_BAR0_UPPER, 0x0);
+	tsi108_write_reg(TSI108_PCI_P2O_BAR0, 0xc0000000);
+
+	/* Init the PCI LUTs to do no remapping */
+	lut_addr = 0x500;
+	lut_val = 0x00000002;
+
+	for (i = 0; i < 32; i++) {
+		tsi108_write_reg(TSI108_PCI_OFFSET + lut_addr, lut_val);
+		lut_addr += 4;
+		tsi108_write_reg(TSI108_PCI_OFFSET + lut_addr, 0x40000000);
+		lut_addr += 4;
+		lut_val += 0x02000000;
+	}
+	tsi108_write_reg(TSI108_PCI_P2O_PAGE_SIZES, 0x00007900);
+
+	/* Set 64-bit PCI bus address for system memory */
+	tsi108_write_reg(TSI108_PCI_P2O_BAR2_UPPER, 0x0);
+	tsi108_write_reg(TSI108_PCI_P2O_BAR2, 0x0);
+}
+
+static void __init holly_setup_arch(void)
+{
+	struct device_node *cpu;
+	struct device_node *np;
+
+	if (ppc_md.progress)
+		ppc_md.progress("holly_setup_arch():set_bridge", 0);
+
+	cpu = of_find_node_by_type(NULL, "cpu");
+	if (cpu != 0) {
+		const unsigned int *fp;
+
+		fp = of_get_property(cpu, "clock-frequency", NULL);
+		if (fp != 0)
+			loops_per_jiffy = *fp / HZ;
+		else
+			loops_per_jiffy = 50000000 / HZ;
+		of_node_put(cpu);
+	}
+	tsi108_csr_vir_base = get_vir_csrbase();
+
+	/* setup PCI host bridge */
+	holly_remap_bridge();
+
+	for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;)
+		tsi108_setup_pci(np, HOLLY_PCI_CFG_PHYS);
+
+	ppc_md.pci_exclude_device = holly_exclude_device;
+	if (ppc_md.progress)
+		ppc_md.progress("tsi108: resources set", 0x100);
+
+	printk(KERN_INFO "PPC750GX/CL Platform\n");
+}
+
+/*
+ * Interrupt setup and service.  Interrrupts on the holly come
+ * from the four external INT pins, PCI interrupts are routed via
+ * PCI interrupt control registers, it generates internal IRQ23
+ *
+ * Interrupt routing on the Holly Board:
+ * TSI108:PB_INT[0] -> CPU0:INT#
+ * TSI108:PB_INT[1] -> CPU0:MCP#
+ * TSI108:PB_INT[2] -> N/C
+ * TSI108:PB_INT[3] -> N/C
+ */
+static void __init holly_init_IRQ(void)
+{
+	struct mpic *mpic;
+	phys_addr_t mpic_paddr = 0;
+	struct device_node *tsi_pic;
+#ifdef CONFIG_PCI
+	unsigned int cascade_pci_irq;
+	struct device_node *tsi_pci;
+	struct device_node *cascade_node = NULL;
+#endif
+
+	tsi_pic = of_find_node_by_type(NULL, "open-pic");
+	if (tsi_pic) {
+		unsigned int size;
+		const void *prop = of_get_property(tsi_pic, "reg", &size);
+		mpic_paddr = of_translate_address(tsi_pic, prop);
+	}
+
+	if (mpic_paddr == 0) {
+		printk(KERN_ERR "%s: No tsi108 PIC found !\n", __func__);
+		return;
+	}
+
+	pr_debug("%s: tsi108 pic phys_addr = 0x%x\n", __func__, (u32) mpic_paddr);
+
+	mpic = mpic_alloc(tsi_pic, mpic_paddr,
+			MPIC_PRIMARY | MPIC_BIG_ENDIAN | MPIC_WANTS_RESET |
+			MPIC_SPV_EOI | MPIC_NO_PTHROU_DIS | MPIC_REGSET_TSI108,
+			24,
+			NR_IRQS-4, /* num_sources used */
+			"Tsi108_PIC");
+
+	BUG_ON(mpic == NULL);
+
+	mpic_assign_isu(mpic, 0, mpic_paddr + 0x100);
+
+	mpic_init(mpic);
+
+#ifdef CONFIG_PCI
+	tsi_pci = of_find_node_by_type(NULL, "pci");
+	if (tsi_pci == NULL) {
+		printk(KERN_ERR "%s: No tsi108 pci node found !\n", __func__);
+		return;
+	}
+
+	cascade_node = of_find_node_by_type(NULL, "pic-router");
+	if (cascade_node == NULL) {
+		printk(KERN_ERR "%s: No tsi108 pci cascade node found !\n", __func__);
+		return;
+	}
+
+	cascade_pci_irq = irq_of_parse_and_map(tsi_pci, 0);
+	pr_debug("%s: tsi108 cascade_pci_irq = 0x%x\n", __func__, (u32) cascade_pci_irq);
+	tsi108_pci_int_init(cascade_node);
+	set_irq_data(cascade_pci_irq, mpic);
+	set_irq_chained_handler(cascade_pci_irq, tsi108_irq_cascade);
+#endif
+	/* Configure MPIC outputs to CPU0 */
+	tsi108_write_reg(TSI108_MPIC_OFFSET + 0x30c, 0);
+	of_node_put(tsi_pic);
+}
+
+void holly_show_cpuinfo(struct seq_file *m)
+{
+	seq_printf(m, "vendor\t\t: IBM\n");
+	seq_printf(m, "machine\t\t: PPC750 GX/CL\n");
+}
+
+void holly_restart(char *cmd)
+{
+	__be32 __iomem *ocn_bar1 = NULL;
+	unsigned long bar;
+	struct device_node *bridge = NULL;
+	const void *prop;
+	int size;
+	phys_addr_t addr = 0xc0000000;
+
+	local_irq_disable();
+
+	bridge = of_find_node_by_type(NULL, "tsi-bridge");
+	if (bridge) {
+		prop = of_get_property(bridge, "reg", &size);
+		addr = of_translate_address(bridge, prop);
+	}
+	addr += (TSI108_PB_OFFSET + 0x414);
+
+	ocn_bar1 = ioremap(addr, 0x4);
+
+	/* Turn on the BOOT bit so the addresses are correctly
+	 * routed to the HLP interface */
+	bar = ioread32be(ocn_bar1);
+	bar |= 2;
+	iowrite32be(bar, ocn_bar1);
+	iosync();
+
+	/* Set SRR0 to the reset vector and turn on MSR_IP */
+	mtspr(SPRN_SRR0, 0xfff00100);
+	mtspr(SPRN_SRR1, MSR_IP);
+
+	/* Do an rfi to jump back to firmware.  Somewhat evil,
+	 * but it works
+	 */
+	__asm__ __volatile__("rfi" : : : "memory");
+
+	/* Spin until reset happens.  Shouldn't really get here */
+	for (;;) ;
+}
+
+void holly_power_off(void)
+{
+	local_irq_disable();
+	/* No way to shut power off with software */
+	for (;;) ;
+}
+
+void holly_halt(void)
+{
+	holly_power_off();
+}
+
+/*
+ * Called very early, device-tree isn't unflattened
+ */
+static int __init holly_probe(void)
+{
+	unsigned long root = of_get_flat_dt_root();
+
+	if (!of_flat_dt_is_compatible(root, "ppc750-tsi"))
+		return 0;
+	return 1;
+}
+
+static int ppc750_machine_check_exception(struct pt_regs *regs)
+{
+	const struct exception_table_entry *entry;
+
+	/* Are we prepared to handle this fault */
+	if ((entry = search_exception_tables(regs->nip)) != NULL) {
+		tsi108_clear_pci_cfg_error();
+		regs->msr |= MSR_RI;
+		regs->nip = entry->fixup;
+		return 1;
+	}
+	return 0;
+}
+
+define_machine(holly){
+	.name                   	= "PPC750 GX/CL TSI",
+	.probe                  	= holly_probe,
+	.setup_arch             	= holly_setup_arch,
+	.init_IRQ               	= holly_init_IRQ,
+	.show_cpuinfo           	= holly_show_cpuinfo,
+	.get_irq                	= mpic_get_irq,
+	.restart                	= holly_restart,
+	.calibrate_decr         	= generic_calibrate_decr,
+	.machine_check_exception	= ppc750_machine_check_exception,
+	.progress               	= udbg_progress,
+};

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [PATCH v2 5/7] Holly defconfig
  2007-05-05 16:13 [PATCH v2 0/7] Add support for 750CL Holly board Josh Boyer
                   ` (3 preceding siblings ...)
  2007-05-05 16:17 ` [PATCH v2 4/7] Add support for 750CL Holly board Josh Boyer
@ 2007-05-05 16:19 ` Josh Boyer
  2007-05-05 16:20 ` [PATCH v2 6/7] Holly DTS Josh Boyer
  2007-05-05 16:20 ` [PATCH v2 7/7] Holly bootwrapper Josh Boyer
  6 siblings, 0 replies; 32+ messages in thread
From: Josh Boyer @ 2007-05-05 16:19 UTC (permalink / raw)
  To: linuxppc-dev

Holly/Hickory defconfig

Signed-off-by: Stephen Winiecki <stevewin@us.ibm.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
---
 arch/powerpc/configs/holly_defconfig | 1070
+++++++++++++++++++++++++++++++++++
 1 file changed, 1070 insertions(+)

--- /dev/null
+++ linux-2.6/arch/powerpc/configs/holly_defconfig
@@ -0,0 +1,1070 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.21
+# Sat May  5 10:29:51 2007
+#
+# CONFIG_PPC64 is not set
+CONFIG_PPC32=y
+CONFIG_PPC_MERGE=y
+CONFIG_MMU=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_IRQ_PER_CPU=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_ARCH_HAS_ILOG2_U32=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_PPC=y
+CONFIG_EARLY_PRINTK=y
+CONFIG_GENERIC_NVRAM=y
+CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_PPC_OF=y
+CONFIG_PPC_UDBG_16550=y
+# CONFIG_GENERIC_TBSYNC is not set
+CONFIG_AUDIT_ARCH=y
+CONFIG_GENERIC_BUG=y
+# CONFIG_DEFAULT_UIMAGE is not set
+
+#
+# Processor support
+#
+CONFIG_CLASSIC32=y
+# CONFIG_PPC_82xx is not set
+# CONFIG_PPC_83xx is not set
+# CONFIG_PPC_85xx is not set
+# CONFIG_PPC_86xx is not set
+# CONFIG_PPC_8xx is not set
+# CONFIG_40x is not set
+# CONFIG_44x is not set
+# CONFIG_E200 is not set
+CONFIG_6xx=y
+CONFIG_PPC_FPU=y
+# CONFIG_PPC_DCR_NATIVE is not set
+# CONFIG_PPC_DCR_MMIO is not set
+# CONFIG_ALTIVEC is not set
+CONFIG_PPC_STD_MMU=y
+CONFIG_PPC_STD_MMU_32=y
+# CONFIG_SMP is not set
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_IPC_NS is not set
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_UTS_NS is not set
+# CONFIG_AUDIT is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_SYSFS_DEPRECATED=y
+# CONFIG_RELAY is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_EMBEDDED=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SHMEM=y
+CONFIG_SLAB=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+# CONFIG_SLOB is not set
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+# CONFIG_MODULE_UNLOAD is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+# CONFIG_KMOD is not set
+
+#
+# Block layer
+#
+CONFIG_BLOCK=y
+CONFIG_LBD=y
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+
+#
+# Platform support
+#
+# CONFIG_PPC_MULTIPLATFORM is not set
+CONFIG_EMBEDDED6xx=y
+# CONFIG_APUS is not set
+# CONFIG_PPC_MPC52xx is not set
+# CONFIG_PPC_MPC5200 is not set
+# CONFIG_PPC_CELL is not set
+# CONFIG_PPC_CELL_NATIVE is not set
+# CONFIG_PQ2ADS is not set
+# CONFIG_LINKSTATION is not set
+# CONFIG_MPC7448HPC2 is not set
+CONFIG_HOLLY=y
+CONFIG_TSI108_BRIDGE=y
+CONFIG_MPIC=y
+CONFIG_MPIC_WEIRD=y
+# CONFIG_PPC_I8259 is not set
+# CONFIG_PPC_RTAS is not set
+# CONFIG_MMIO_NVRAM is not set
+# CONFIG_PPC_MPC106 is not set
+# CONFIG_PPC_970_NAP is not set
+# CONFIG_PPC_INDIRECT_IO is not set
+# CONFIG_GENERIC_IOMAP is not set
+# CONFIG_CPU_FREQ is not set
+# CONFIG_TAU is not set
+# CONFIG_CPM2 is not set
+
+#
+# Kernel options
+#
+# CONFIG_HIGHMEM is not set
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=250
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_MISC=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_RESOURCES_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_PROC_DEVICETREE=y
+# CONFIG_CMDLINE_BOOL is not set
+# CONFIG_PM is not set
+# CONFIG_SECCOMP is not set
+# CONFIG_WANT_DEVICE_TREE is not set
+CONFIG_ISA_DMA_API=y
+
+#
+# Bus options
+#
+CONFIG_ZONE_DMA=y
+CONFIG_GENERIC_ISA_DMA=y
+# CONFIG_PPC_INDIRECT_PCI is not set
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+# CONFIG_PCIEPORTBUS is not set
+# CONFIG_PCI_DEBUG is not set
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+
+#
+# PCI Hotplug Support
+#
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# Advanced setup
+#
+# CONFIG_ADVANCED_OPTIONS is not set
+
+#
+# Default settings for advanced configuration options are used
+#
+CONFIG_HIGHMEM_START=0xfe000000
+CONFIG_LOWMEM_SIZE=0x30000000
+CONFIG_KERNEL_START=0xc0000000
+CONFIG_TASK_SIZE=0x80000000
+CONFIG_BOOT_LOAD=0x00800000
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=y
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+
+#
+# DCCP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP is not set
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+
+#
+# TIPC Configuration (EXPERIMENTAL)
+#
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+
+#
+# Wireless
+#
+# CONFIG_CFG80211 is not set
+# CONFIG_WIRELESS_EXT is not set
+# CONFIG_IEEE80211 is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+# CONFIG_FW_LOADER is not set
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+
+#
+# Connector - unified userspace <-> kernelspace linker
+#
+# CONFIG_CONNECTOR is not set
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play support
+#
+# CONFIG_PNPACPI is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=131072
+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+
+#
+# Misc devices
+#
+# CONFIG_SGI_IOC4 is not set
+# CONFIG_TIFM_CORE is not set
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+# CONFIG_SCSI_TGT is not set
+# CONFIG_SCSI_NETLINK is not set
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+# CONFIG_CHR_DEV_SG is not set
+# CONFIG_CHR_DEV_SCH is not set
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_MULTI_LUN is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_ATTRS is not set
+# CONFIG_SCSI_SAS_LIBSAS is not set
+
+#
+# SCSI low-level drivers
+#
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+# CONFIG_SCSI_AIC79XX is not set
+# CONFIG_SCSI_AIC94XX is not set
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_SCSI_ARCMSR is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
+# CONFIG_MEGARAID_SAS is not set
+# CONFIG_SCSI_HPTIOP is not set
+# CONFIG_SCSI_BUSLOGIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_EATA is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_GDTH is not set
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_STEX is not set
+# CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_IPR is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+# CONFIG_SCSI_QLA_FC is not set
+# CONFIG_SCSI_QLA_ISCSI is not set
+# CONFIG_SCSI_LPFC is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_DC390T is not set
+# CONFIG_SCSI_NSP32 is not set
+# CONFIG_SCSI_DEBUG is not set
+# CONFIG_SCSI_ESP_CORE is not set
+# CONFIG_SCSI_SRP is not set
+
+#
+# Serial ATA (prod) and Parallel ATA (experimental) drivers
+#
+CONFIG_ATA=y
+# CONFIG_ATA_NONSTANDARD is not set
+# CONFIG_SATA_AHCI is not set
+# CONFIG_SATA_SVW is not set
+# CONFIG_ATA_PIIX is not set
+# CONFIG_SATA_MV is not set
+# CONFIG_SATA_NV is not set
+# CONFIG_PDC_ADMA is not set
+# CONFIG_SATA_QSTOR is not set
+# CONFIG_SATA_PROMISE is not set
+# CONFIG_SATA_SX4 is not set
+# CONFIG_SATA_SIL is not set
+# CONFIG_SATA_SIL24 is not set
+# CONFIG_SATA_SIS is not set
+# CONFIG_SATA_ULI is not set
+# CONFIG_SATA_VIA is not set
+# CONFIG_SATA_VITESSE is not set
+# CONFIG_SATA_INIC162X is not set
+# CONFIG_PATA_ALI is not set
+# CONFIG_PATA_AMD is not set
+# CONFIG_PATA_ARTOP is not set
+# CONFIG_PATA_ATIIXP is not set
+# CONFIG_PATA_CMD640_PCI is not set
+# CONFIG_PATA_CMD64X is not set
+# CONFIG_PATA_CS5520 is not set
+# CONFIG_PATA_CS5530 is not set
+# CONFIG_PATA_CYPRESS is not set
+# CONFIG_PATA_EFAR is not set
+# CONFIG_ATA_GENERIC is not set
+# CONFIG_PATA_HPT366 is not set
+# CONFIG_PATA_HPT37X is not set
+# CONFIG_PATA_HPT3X2N is not set
+# CONFIG_PATA_HPT3X3 is not set
+# CONFIG_PATA_IT821X is not set
+# CONFIG_PATA_IT8213 is not set
+# CONFIG_PATA_JMICRON is not set
+# CONFIG_PATA_TRIFLEX is not set
+# CONFIG_PATA_MARVELL is not set
+# CONFIG_PATA_MPIIX is not set
+# CONFIG_PATA_OLDPIIX is not set
+# CONFIG_PATA_NETCELL is not set
+# CONFIG_PATA_NS87410 is not set
+# CONFIG_PATA_OPTI is not set
+# CONFIG_PATA_OPTIDMA is not set
+# CONFIG_PATA_PDC_OLD is not set
+# CONFIG_PATA_RADISYS is not set
+# CONFIG_PATA_RZ1000 is not set
+# CONFIG_PATA_SC1200 is not set
+# CONFIG_PATA_SERVERWORKS is not set
+# CONFIG_PATA_PDC2027X is not set
+# CONFIG_PATA_SIL680 is not set
+# CONFIG_PATA_SIS is not set
+# CONFIG_PATA_VIA is not set
+# CONFIG_PATA_WINBOND is not set
+# CONFIG_PATA_PLATFORM is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+# CONFIG_FUSION_SPI is not set
+# CONFIG_FUSION_FC is not set
+# CONFIG_FUSION_SAS is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
+# CONFIG_I2O is not set
+# CONFIG_MACINTOSH_DRIVERS is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+
+#
+# PHY device support
+#
+CONFIG_PHYLIB=y
+
+#
+# MII PHY device drivers
+#
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_FIXED_PHY is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_CASSINI is not set
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_VORTEX=y
+# CONFIG_TYPHOON is not set
+
+#
+# Tulip family network device support
+#
+# CONFIG_NET_TULIP is not set
+# CONFIG_HP100 is not set
+# CONFIG_NET_PCI is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_R8169 is not set
+# CONFIG_SIS190 is not set
+# CONFIG_SKGE is not set
+# CONFIG_SKY2 is not set
+# CONFIG_SK98LIN is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_BNX2 is not set
+CONFIG_TSI108_ETH=y
+# CONFIG_QLA3XXX is not set
+# CONFIG_ATL1 is not set
+
+#
+# Ethernet (10000 Mbit)
+#
+# CONFIG_CHELSIO_T1 is not set
+# CONFIG_CHELSIO_T3 is not set
+# CONFIG_IXGB is not set
+# CONFIG_S2IO is not set
+# CONFIG_MYRI10GE is not set
+# CONFIG_NETXEN_NIC is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_NET_FC is not set
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+# CONFIG_VT is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+# CONFIG_SERIAL_8250_PCI is not set
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+# CONFIG_SERIAL_8250_MANY_PORTS is not set
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+# CONFIG_SERIAL_8250_RSA is not set
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_UARTLITE is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_JSM is not set
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+CONFIG_GEN_RTC=y
+# CONFIG_GEN_RTC_X is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# SPI support
+#
+# CONFIG_SPI is not set
+# CONFIG_SPI_MASTER is not set
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Hardware Monitoring support
+#
+CONFIG_HWMON=y
+# CONFIG_HWMON_VID is not set
+# CONFIG_SENSORS_ABITUGURU is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+
+#
+# Graphics support
+#
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+# CONFIG_FB is not set
+# CONFIG_FB_IBM_GXT4500 is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# HID Devices
+#
+CONFIG_HID=y
+# CONFIG_HID_DEBUG is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+# CONFIG_USB is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# LED devices
+#
+# CONFIG_NEW_LEDS is not set
+
+#
+# LED drivers
+#
+
+#
+# LED Triggers
+#
+
+#
+# InfiniBand support
+#
+# CONFIG_INFINIBAND is not set
+
+#
+# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
+#
+
+#
+# Real Time Clock
+#
+# CONFIG_RTC_CLASS is not set
+
+#
+# DMA Engine support
+#
+# CONFIG_DMA_ENGINE is not set
+
+#
+# DMA Clients
+#
+
+#
+# DMA Devices
+#
+
+#
+# Auxiliary Display support
+#
+
+#
+# Virtualization
+#
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+# CONFIG_EXT4DEV_FS is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+# CONFIG_NFS_V3 is not set
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFS_DIRECTIO is not set
+# CONFIG_NFSD is not set
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+# CONFIG_9P_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+
+#
+# Native Language Support
+#
+# CONFIG_NLS is not set
+
+#
+# Distributed Lock Manager
+#
+# CONFIG_DLM is not set
+# CONFIG_UCC_SLOW is not set
+# CONFIG_UCC_FAST is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+# CONFIG_CRC_CCITT is not set
+# CONFIG_CRC16 is not set
+CONFIG_CRC32=y
+# CONFIG_LIBCRC32C is not set
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+
+#
+# Instrumentation Support
+#
+# CONFIG_PROFILING is not set
+# CONFIG_KPROBES is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_TIMER_STATS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_LIST is not set
+CONFIG_FORCED_INLINING=y
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_DEBUGGER=y
+CONFIG_XMON=y
+CONFIG_XMON_DEFAULT=y
+CONFIG_XMON_DISASSEMBLY=y
+# CONFIG_BDI_SWITCH is not set
+# CONFIG_BOOTX_TEXT is not set
+# CONFIG_PPC_EARLY_DEBUG is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+# CONFIG_CRYPTO is not set

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [PATCH v2 6/7] Holly DTS
  2007-05-05 16:13 [PATCH v2 0/7] Add support for 750CL Holly board Josh Boyer
                   ` (4 preceding siblings ...)
  2007-05-05 16:19 ` [PATCH v2 5/7] Holly defconfig Josh Boyer
@ 2007-05-05 16:20 ` Josh Boyer
  2007-05-05 17:21   ` Segher Boessenkool
  2007-05-05 16:20 ` [PATCH v2 7/7] Holly bootwrapper Josh Boyer
  6 siblings, 1 reply; 32+ messages in thread
From: Josh Boyer @ 2007-05-05 16:20 UTC (permalink / raw)
  To: linuxppc-dev

Add Holly/Hickory DTS file

Signed-off-by: Stephen Winiecki <stevewin@us.ibm.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
---
 arch/powerpc/boot/dts/holly.dts |  230 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 230 insertions(+)

--- /dev/null
+++ linux-2.6/arch/powerpc/boot/dts/holly.dts
@@ -0,0 +1,230 @@
+/*
+ * Device Tree Source for IBM Holly/Hickory (PPC 750CL/GX with TSI controller)
+ * Copyright 2007, IBM Corporation
+ *
+ * Stephen Winiecki <stevewin@us.ibm.com>
+ * Josh Boyer <jwboyer@linux.vnet.ibm.com>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without
+ * any warranty of any kind, whether express or implied.
+ *
+ * To build:
+ *   dtc -I dts -O asm -o holly.S -b 0 holly.dts
+ *   dtc -I dts -O dtb -o holly.dtb -b 0 holly.dts
+ */
+
+/ {
+	model = "ppc750-tsi109";
+	compatible = "ppc750-tsi";
+	#address-cells = <1>;
+	#size-cells = <1>;
+
+	cpus {
+		name = "cpus";
+		#address-cells = <1>;
+		#size-cells =<0>;
+		PowerPC,750@0 {
+			name = "PowerPC,750";
+			device_type = "cpu";
+			reg = <0>;
+			d-cache-line-size = <20>;
+			i-cache-line-size = <20>;
+			d-cache-size = <8000>;
+			i-cache-size = <8000>;
+			d-cache-sets = <80>;
+			i-cache-sets = <80>;
+			timebase-frequency = <2faf080>;
+			clock-frequency = <23c34600>;
+			bus-frequency = <bebc200>;
+			32-bit;
+		};
+	};
+
+	memory@0 {
+		name = "memory";
+		device_type = "memory";
+		reg = <00000000 20000000>;
+	};
+
+  	tsi109@c0000000 {
+		name = "tsi109";
+		device_type = "tsi-bridge";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <00000000 c0000000 00010000>;
+		reg = <c0000000 00010000>;
+		bus-frequency = <0>;
+
+		i2c@7000 {
+			name = "i2c";
+			device_type = "i2c";
+			compatible  = "tsi-i2c";
+			interrupt-parent = < &/tsi109@c0000000/pic@7400 >;
+			interrupts = <e 2>;
+			reg = <7000 400>;
+		};
+
+		mdio@6000 {
+			name = "mdio";
+			device_type = "mdio";
+			compatible = "tsi-ethernet";
+
+			PHY1: ethernet-phy@6000 {
+				name = "ethernet-phy";
+				device_type = "ethernet-phy";
+				compatible = "bcm54xx";
+				reg = <6000 50>;
+				phy-id = <1>;
+			};
+
+			PHY2: ethernet-phy@6400 {
+				name = "ethernet-phy";
+				device_type = "ethernet-phy";
+				compatible = "bcm54xx";
+				reg = <6000 50>;
+				phy-id = <2>;
+			};
+		};
+
+		ethernet@6200 {
+			name = "ethernet";
+			device_type = "network";
+			compatible = "tsi-ethernet";
+			model = "TSI-ETH";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <6000 200>;
+			address = [ 00 0d 60 f4 3f 04 ];
+			interrupt-parent = < &/tsi109@c0000000/pic@7400 >;
+			interrupts = <10 2>;
+			phy-handle = <&PHY1>;
+		};
+
+		ethernet@6600 {
+			name = "ethernet";
+			device_type = "network";
+			compatible = "tsi-ethernet";
+			model = "TSI-ETH";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <6400 200>;
+			address = [ 00 0d 60 f4 3f 05 ];
+			interrupt-parent = < &/tsi109@c0000000/pic@7400 >;
+			interrupts = <11 2>;
+			phy-handle = <&PHY2>;
+		};
+
+		serial@7808 {
+			name = "serial";
+			device_type = "serial";
+			compatible = "ns16550";
+			reg = <7808 200>;
+			virtual-reg = <c0007808>;
+			reg-shift = <0>;
+			clock-frequency = <3F9C6000>;
+			current-speed = <1c200>;
+			interrupt-parent = < &/tsi109@c0000000/pic@7400 >;
+			interrupts = <c 2>;
+		};
+
+		serial@7c08 {
+			name = "serial";
+			device_type = "serial";
+			compatible = "ns16550";
+			reg = <7c08 200>;
+			virtual-reg = <c0007c08>;
+			reg-shift = <0>;
+			clock-frequency = <3F9C6000>;
+			current-speed = <1c200>;
+			interrupt-parent = < &/tsi109@c0000000/pic@7400 >;
+			interrupts = <d 2>;
+		};
+
+	  	MPIC: pic@7400 {
+			name = "pic";
+			device_type = "open-pic";
+			compatible = "chrp,open-pic";
+			interrupt-controller;
+			#interrupt-cells = <2>;
+			reg = <7400 400>;
+			built-in;
+			big-endian;
+		};
+
+		pci@1000 {
+			name = "pci";
+			device_type = "pci";
+			compatible = "tsi109";
+			#interrupt-cells = <1>;
+			#size-cells = <2>;
+			#address-cells = <3>;
+			reg = <1000 1000>;
+			bus-range = <0 0>;
+			/*----------------------------------------------------+
+			| PCI memory range.
+			| 01 denotes I/O space
+			| 02 denotes 32-bit memory space
+			+----------------------------------------------------*/
+			ranges = <02000000 0 40000000 40000000 0 10000000
+				  01000000 0 00000000 7e000000 0 00010000>;
+			clock-frequency = <7f28154>;
+			interrupt-parent = < &/tsi109@c0000000/pic@7400 >;
+			interrupts = <17 2>;
+			interrupt-map-mask = <f800 0 0 7>;
+			/*----------------------------------------------------+
+			| The INTA, INTB, INTC, INTD are shared.
+			+----------------------------------------------------*/
+			interrupt-map = <
+				/*--------------------------------------------+
+				| AD17.
+				+--------------------------------------------*/
+				0800 0 0 1 &RT0 24 0
+				0800 0 0 2 &RT0 25 0
+				0800 0 0 3 &RT0 26 0
+				0800 0 0 4 &RT0 27 0
+				/*--------------------------------------------+
+				| AD18.
+				+--------------------------------------------*/
+				1000 0 0 1 &RT0 25 0
+				1000 0 0 2 &RT0 26 0
+				1000 0 0 3 &RT0 27 0
+				1000 0 0 4 &RT0 24 0
+				/*--------------------------------------------+
+				| AD19.
+				+--------------------------------------------*/
+				1800 0 0 1 &RT0 26 0
+				1800 0 0 2 &RT0 27 0
+				1800 0 0 3 &RT0 24 0
+				1800 0 0 4 &RT0 25 0
+
+				2000 0 0 1 &RT0 27 0
+				2000 0 0 2 &RT0 24 0
+				2000 0 0 3 &RT0 25 0
+				2000 0 0 4 &RT0 26 0
+				>;
+
+			RT0: router@1180 {
+				name = "router";
+ 				device_type = "pic-router";
+ 				interrupt-controller;
+ 				built-in;
+ 				big-endian;
+ 				clock-frequency = <0>;
+ 				#address-cells = <0>;
+ 				#interrupt-cells = <2>;
+ 				interrupts = <17 2>;
+				interrupt-parent = < &/tsi109@c0000000/pic@7400 >;
+			};
+		};
+	};
+
+	chosen {
+		name = "chosen";
+		linux,stdout-path = "/tsi109@c0000000/serial@7808";
+		bootargs = "console=ttyS0,115200";
+		linux,platform = <0>;
+		linux,initrd-start = <0>;
+		linux,initrd-end = <0>;
+	};
+};

^ permalink raw reply	[flat|nested] 32+ messages in thread

* [PATCH v2 7/7] Holly bootwrapper
  2007-05-05 16:13 [PATCH v2 0/7] Add support for 750CL Holly board Josh Boyer
                   ` (5 preceding siblings ...)
  2007-05-05 16:20 ` [PATCH v2 6/7] Holly DTS Josh Boyer
@ 2007-05-05 16:20 ` Josh Boyer
  6 siblings, 0 replies; 32+ messages in thread
From: Josh Boyer @ 2007-05-05 16:20 UTC (permalink / raw)
  To: linuxppc-dev

Add Holly/Hickory bootwrapper

Signed-off-by: Stephen Winiecki <stevewin@us.ibm.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
---
 arch/powerpc/boot/Makefile |    9 ++++++++-
 arch/powerpc/boot/holly.c  |   38 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 46 insertions(+), 1 deletion(-)

--- linux-2.6.orig/arch/powerpc/boot/Makefile
+++ linux-2.6/arch/powerpc/boot/Makefile
@@ -43,7 +43,7 @@ $(addprefix $(obj)/,$(zlib) main.o): $(a
 src-wlib := string.S crt0.S stdio.c main.c flatdevtree.c flatdevtree_misc.c \
 		ns16550.c serial.c simple_alloc.c div64.S util.S \
 		gunzip_util.c elf_util.c $(zlib) devtree.c
-src-plat := of.c cuboot-83xx.c cuboot-85xx.c
+src-plat := of.c cuboot-83xx.c cuboot-85xx.c holly.c
 src-boot := $(src-wlib) $(src-plat) empty.c
 
 src-boot := $(addprefix $(obj)/, $(src-boot))
@@ -131,6 +131,7 @@ image-$(CONFIG_PPC_EFIKA)		+= zImage.chr
 image-$(CONFIG_PPC_PMAC)		+= zImage.pmac
 image-$(CONFIG_PPC_83xx)		+= cuImage.83xx
 image-$(CONFIG_PPC_85xx)		+= cuImage.85xx
+image-$(CONFIG_HOLLY)			+= zImage.holly-elf
 image-$(CONFIG_DEFAULT_UIMAGE)		+= uImage
 
 # For 32-bit powermacs, build the COFF and miboot images
@@ -161,6 +162,12 @@ $(obj)/zImage.ps3: vmlinux
 $(obj)/zImage.initrd.ps3: vmlinux
 	@echo "  WARNING zImage.initrd.ps3 not supported (yet)"
 
+$(obj)/zImage.holly-elf: vmlinux $(wrapperbits)
+	$(call if_changed,wrap,holly,$(obj)/dts/holly.dts,,)
+
+$(obj)/zImage.initrd.holly-elf: vmlinux $(wrapperbits) $(obj)/ramdisk.image.gz
+	$(call if_changed,wrap,holly,$(obj)/dts/holly.dts,,$(obj)/ramdisk.image.gz)
+
 $(obj)/uImage: vmlinux $(wrapperbits)
 	$(call if_changed,wrap,uboot)
 
--- /dev/null
+++ linux-2.6/arch/powerpc/boot/holly.c
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2007 IBM Corporation
+ *
+ * Stephen Winiecki <stevewin@us.ibm.com>
+ * Josh Boyer <jwboyer@linux.vnet.ibm.com>
+ *
+ * Based on earlier code:
+ * Copyright (C) Paul Mackerras 1997.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2 as published by the Free Software Foundation.
+ */
+#include <stdarg.h>
+#include <stddef.h>
+#include "types.h"
+#include "elf.h"
+#include "string.h"
+#include "stdio.h"
+#include "page.h"
+#include "ops.h"
+#include "io.h"
+
+extern char _start[];
+extern char _end[];
+extern char _dtb_start[];
+extern char _dtb_end[];
+
+BSS_STACK(4096);
+
+void platform_init(unsigned long r3, unsigned long r4, unsigned long r5)
+{
+	u32 heapsize = 0x8000000 - (u32)_end; /* 128M */
+
+	simple_alloc_init(_end, heapsize, 32, 64);
+	ft_init(_dtb_start, 0, 4);
+	serial_console_init();
+}

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 6/7] Holly DTS
  2007-05-05 16:20 ` [PATCH v2 6/7] Holly DTS Josh Boyer
@ 2007-05-05 17:21   ` Segher Boessenkool
  2007-05-05 18:12     ` Josh Boyer
                       ` (2 more replies)
  0 siblings, 3 replies; 32+ messages in thread
From: Segher Boessenkool @ 2007-05-05 17:21 UTC (permalink / raw)
  To: Josh Boyer; +Cc: linuxppc-dev

> +/ {
> +	model = "ppc750-tsi109";

"model" should be something really specific; typically
a (unique!) model number.  This means you can't use the
same device tree for Holly and Hickory (but there are
more reasons for that; see below).

> +	compatible = "ppc750-tsi";

The needs to be more specific as well; "ibm,holly"
or something.

> +		PowerPC,750@0 {

Needs to be PowerPC,750CL etc.

> +			name = "PowerPC,750";

You don't need to specify "name" in modern DTS.

> +  	tsi109@c0000000 {
> +		device_type = "tsi-bridge";

Don't put a "device_type" here, it is useless
(and undefined).  There are more like this, but
perhaps Linux (wrongly) probes on "device_type"
for those, so the kernel would need updating
first.

> +		bus-frequency = <0>;

0?

> +		ethernet@6200 {
> +			model = "TSI-ETH";

"model" should be an exact model name.  If you don't
have one, just leave out the "model" property.

> +			address = [ 00 0d 60 f4 3f 04 ];

"local-mac-address" instead.  And you don't want to
hardcode one specific address like this; just keep
it open so if the bootloader fails to fill it in you
notice.  If the bootloader cannot do that, just leave
out this property completely (not compliant, but neither
is filling in the wrong value).

> +		serial@7808 {
> +			reg-shift = <0>;

This is the default value so you can leave it out.

> +	  	MPIC: pic@7400 {
> +			built-in;

Why say this for MPIC only, not for most other nodes?
What binding defines "built-in", anyway?

> +				/*--------------------------------------------+
> +				| AD19.
> +				+--------------------------------------------*/
> +				1800 0 0 1 &RT0 26 0
> +				1800 0 0 2 &RT0 27 0
> +				1800 0 0 3 &RT0 24 0
> +				1800 0 0 4 &RT0 25 0
> +
> +				2000 0 0 1 &RT0 27 0
> +				2000 0 0 2 &RT0 24 0
> +				2000 0 0 3 &RT0 25 0
> +				2000 0 0 4 &RT0 26 0
> +				>;

You forgot to say "AD20" ;-)

> +	chosen {
> +		linux,platform = <0>;
> +		linux,initrd-start = <0>;
> +		linux,initrd-end = <0>;

Do you need to set those zero properties?


Segher

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 6/7] Holly DTS
  2007-05-05 17:21   ` Segher Boessenkool
@ 2007-05-05 18:12     ` Josh Boyer
  2007-05-05 20:44       ` Segher Boessenkool
  2007-05-05 19:13     ` Olof Johansson
  2007-05-06  0:40     ` David Gibson
  2 siblings, 1 reply; 32+ messages in thread
From: Josh Boyer @ 2007-05-05 18:12 UTC (permalink / raw)
  To: Segher Boessenkool; +Cc: linuxppc-dev

On Sat, 2007-05-05 at 19:21 +0200, Segher Boessenkool wrote:
> > +/ {
> > +	model = "ppc750-tsi109";
> 
> "model" should be something really specific; typically
> a (unique!) model number.  This means you can't use the
> same device tree for Holly and Hickory (but there are
> more reasons for that; see below).
> 
> > +	compatible = "ppc750-tsi";
> 
> The needs to be more specific as well; "ibm,holly"
> or something.

Why?  Holly and Hickory share the same memory map and devices.  The only
thing that differs from what I can tell is the actual CPU itself.

> 
> > +		PowerPC,750@0 {
> 
> Needs to be PowerPC,750CL etc.
> 
> > +			name = "PowerPC,750";
> 
> You don't need to specify "name" in modern DTS.

Ok.

> > +  	tsi109@c0000000 {
> > +		device_type = "tsi-bridge";
> 
> Don't put a "device_type" here, it is useless
> (and undefined).  There are more like this, but
> perhaps Linux (wrongly) probes on "device_type"
> for those, so the kernel would need updating
> first.

It's not useless.  The TSI code probes by device_type all over the
place.  Do you have an example of how to probe for something like this
without using device_type?

> > +		bus-frequency = <0>;
> 
> 0?

Can likely go.

> 
> > +		ethernet@6200 {
> > +			model = "TSI-ETH";
> 
> "model" should be an exact model name.  If you don't
> have one, just leave out the "model" property.

OK.

> 
> > +			address = [ 00 0d 60 f4 3f 04 ];
> 
> "local-mac-address" instead.  And you don't want to
> hardcode one specific address like this; just keep
> it open so if the bootloader fails to fill it in you
> notice.  If the bootloader cannot do that, just leave
> out this property completely (not compliant, but neither
> is filling in the wrong value).

Ok.

> 
> > +		serial@7808 {
> > +			reg-shift = <0>;
> 
> This is the default value so you can leave it out.

Ok.

> 
> > +	  	MPIC: pic@7400 {
> > +			built-in;
> 
> Why say this for MPIC only, not for most other nodes?
> What binding defines "built-in", anyway?

http://playground.sun.com/1275/bindings/chrp/chrp1_8a.ps

Page 34.

> 
> > +				/*--------------------------------------------+
> > +				| AD19.
> > +				+--------------------------------------------*/
> > +				1800 0 0 1 &RT0 26 0
> > +				1800 0 0 2 &RT0 27 0
> > +				1800 0 0 3 &RT0 24 0
> > +				1800 0 0 4 &RT0 25 0
> > +
> > +				2000 0 0 1 &RT0 27 0
> > +				2000 0 0 2 &RT0 24 0
> > +				2000 0 0 3 &RT0 25 0
> > +				2000 0 0 4 &RT0 26 0
> > +				>;
> 
> You forgot to say "AD20" ;-)

Heh, ok.

> 
> > +	chosen {
> > +		linux,platform = <0>;
> > +		linux,initrd-start = <0>;
> > +		linux,initrd-end = <0>;
> 
> Do you need to set those zero properties?

Perhaps not.  I'll look at that.

josh

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 6/7] Holly DTS
  2007-05-05 17:21   ` Segher Boessenkool
  2007-05-05 18:12     ` Josh Boyer
@ 2007-05-05 19:13     ` Olof Johansson
  2007-05-05 19:46       ` Josh Boyer
  2007-05-05 20:49       ` Segher Boessenkool
  2007-05-06  0:40     ` David Gibson
  2 siblings, 2 replies; 32+ messages in thread
From: Olof Johansson @ 2007-05-05 19:13 UTC (permalink / raw)
  To: Segher Boessenkool; +Cc: linuxppc-dev

On Sat, May 05, 2007 at 07:21:33PM +0200, Segher Boessenkool wrote:

> > +		PowerPC,750@0 {
> 
> Needs to be PowerPC,750CL etc.

Why _needs_? Apple never used anything else than PowerPC,G5, no matter
what generation chip.

> > +  	tsi109@c0000000 {
> > +		device_type = "tsi-bridge";
> 
> Don't put a "device_type" here, it is useless
> (and undefined).  There are more like this, but
> perhaps Linux (wrongly) probes on "device_type"
> for those, so the kernel would need updating
> first.

Josh is just using the precedence that the other platform gives, the
driver is keying off of device_type. While that should be fixed, that's
a separate issue. I'm sure they'd welcome a driver patch from you.

(Does anyone know if there's an actual firmware out there with the
tsi-bridge device_type set, and thus just changing DTS's won't help? We'd
still need to be able to boot/probe the device on those firmwares.)

> > +		bus-frequency = <0>;
> 
> 0?

Filled in by bootloader/wrapper? Other dts'es are similar. Could be nice
to have a comment next to it if that's the case.


-Olof

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 6/7] Holly DTS
  2007-05-05 19:13     ` Olof Johansson
@ 2007-05-05 19:46       ` Josh Boyer
  2007-05-05 20:51         ` Segher Boessenkool
  2007-05-05 20:49       ` Segher Boessenkool
  1 sibling, 1 reply; 32+ messages in thread
From: Josh Boyer @ 2007-05-05 19:46 UTC (permalink / raw)
  To: Olof Johansson; +Cc: linuxppc-dev

On Sat, 2007-05-05 at 14:13 -0500, Olof Johansson wrote:
> > > +  	tsi109@c0000000 {
> > > +		device_type = "tsi-bridge";
> > 
> > Don't put a "device_type" here, it is useless
> > (and undefined).  There are more like this, but
> > perhaps Linux (wrongly) probes on "device_type"
> > for those, so the kernel would need updating
> > first.
> 
> Josh is just using the precedence that the other platform gives, the
> driver is keying off of device_type. While that should be fixed, that's
> a separate issue. I'm sure they'd welcome a driver patch from you.

Right.  I'm not saying it _has_ to be device_type or anything.  It's
simply what the current in-tree functions key off of.  And if that needs
to be fixed, that's fine too.  I just don't think it's a prerequisite
for getting the Holly platform patches merged.

> 
> (Does anyone know if there's an actual firmware out there with the
> tsi-bridge device_type set, and thus just changing DTS's won't help? We'd
> still need to be able to boot/probe the device on those firmwares.)

I'm not sure.  I know PIBS doesn't _currently_ do anything with the DT
on this board, but I think work is on-going there.  As for the FSL
board, I have no idea.  Perhaps U-Boot is doing something there?

> 
> > > +		bus-frequency = <0>;
> > 
> > 0?
> 
> Filled in by bootloader/wrapper? Other dts'es are similar. Could be nice
> to have a comment next to it if that's the case.

No, it's just leftover.  It can be pulled.

josh

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 6/7] Holly DTS
  2007-05-05 18:12     ` Josh Boyer
@ 2007-05-05 20:44       ` Segher Boessenkool
  2007-05-05 21:36         ` Josh Boyer
  0 siblings, 1 reply; 32+ messages in thread
From: Segher Boessenkool @ 2007-05-05 20:44 UTC (permalink / raw)
  To: Josh Boyer; +Cc: linuxppc-dev

>>> +/ {
>>> +	model = "ppc750-tsi109";
>>
>> "model" should be something really specific; typically
>> a (unique!) model number.  This means you can't use the
>> same device tree for Holly and Hickory (but there are
>> more reasons for that; see below).
>>
>>> +	compatible = "ppc750-tsi";
>>
>> The needs to be more specific as well; "ibm,holly"
>> or something.
>
> Why?  Holly and Hickory share the same memory map and devices.  The 
> only
> thing that differs from what I can tell is the actual CPU itself.

And the model number I suspect.

"ppc750-tsi" really isn't good enough as a "compatible"
property, there are many many more boards with some 750
and some TSI bridge.

>>> +  	tsi109@c0000000 {
>>> +		device_type = "tsi-bridge";
>>
>> Don't put a "device_type" here, it is useless
>> (and undefined).  There are more like this, but
>> perhaps Linux (wrongly) probes on "device_type"
>> for those, so the kernel would need updating
>> first.
>
> It's not useless.  The TSI code probes by device_type all over the
> place.  Do you have an example of how to probe for something like this
> without using device_type?

Sure: use "compatible" instead.

This problem is all over the place, don't worry
about it too much.  It would be good if new ports
could stop adding to the madness though ;-)

>>> +	  	MPIC: pic@7400 {
>>> +			built-in;
>>
>> Why say this for MPIC only, not for most other nodes?
>> What binding defines "built-in", anyway?
>
> http://playground.sun.com/1275/bindings/chrp/chrp1_8a.ps

But this isn't a CHRP compatible board, that binding
doesn't apply.


Segher

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 6/7] Holly DTS
  2007-05-05 19:13     ` Olof Johansson
  2007-05-05 19:46       ` Josh Boyer
@ 2007-05-05 20:49       ` Segher Boessenkool
  2007-05-07 17:50         ` Loeliger Jon-LOELIGER
  1 sibling, 1 reply; 32+ messages in thread
From: Segher Boessenkool @ 2007-05-05 20:49 UTC (permalink / raw)
  To: Olof Johansson; +Cc: linuxppc-dev

>>> +		PowerPC,750@0 {
>>
>> Needs to be PowerPC,750CL etc.
>
> Why _needs_?

Because that's what the PowerPC binding says:

	Open Firmware standard property. The value of the
	is property shall be of the form: =93PowerPC,<name>=94,
	where <name> is the name of the processor chip which
	may be displayed to the user.


> Apple never used anything else than PowerPC,G5, no matter
> what generation chip.

I don't care what Apple did in their device trees,
they made many mistakes.

>>> +  	tsi109@c0000000 {
>>> +		device_type =3D "tsi-bridge";
>>
>> Don't put a "device_type" here, it is useless
>> (and undefined).  There are more like this, but
>> perhaps Linux (wrongly) probes on "device_type"
>> for those, so the kernel would need updating
>> first.
>
> Josh is just using the precedence that the other platform gives, the
> driver is keying off of device_type. While that should be fixed, =
that's
> a separate issue.

Yes I know, I tried to explain that already, but
seems I failed :-)

> I'm sure they'd welcome a driver patch from you.

It's on my todo list.

>>> +		bus-frequency =3D <0>;
>>
>> 0?
>
> Filled in by bootloader/wrapper?

I don't think it is?

> Other dts'es are similar. Could be nice
> to have a comment next to it if that's the case.

Yeah.  There's also this ?? syntax now I believe.


Segher

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 6/7] Holly DTS
  2007-05-05 19:46       ` Josh Boyer
@ 2007-05-05 20:51         ` Segher Boessenkool
  0 siblings, 0 replies; 32+ messages in thread
From: Segher Boessenkool @ 2007-05-05 20:51 UTC (permalink / raw)
  To: Josh Boyer; +Cc: Olof Johansson, linuxppc-dev

> Right.  I'm not saying it _has_ to be device_type or anything.  It's
> simply what the current in-tree functions key off of.  And if that 
> needs
> to be fixed, that's fine too.  I just don't think it's a prerequisite
> for getting the Holly platform patches merged.

Sure, I didn't say "NAK" or anything :-)


Segher

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 6/7] Holly DTS
  2007-05-05 20:44       ` Segher Boessenkool
@ 2007-05-05 21:36         ` Josh Boyer
  2007-05-06  0:47           ` Segher Boessenkool
  0 siblings, 1 reply; 32+ messages in thread
From: Josh Boyer @ 2007-05-05 21:36 UTC (permalink / raw)
  To: Segher Boessenkool; +Cc: linuxppc-dev

On Sat, 2007-05-05 at 22:44 +0200, Segher Boessenkool wrote:
> >>> +/ {
> >>> +	model = "ppc750-tsi109";
> >>
> >> "model" should be something really specific; typically
> >> a (unique!) model number.  This means you can't use the
> >> same device tree for Holly and Hickory (but there are
> >> more reasons for that; see below).
> >>
> >>> +	compatible = "ppc750-tsi";
> >>
> >> The needs to be more specific as well; "ibm,holly"
> >> or something.
> >
> > Why?  Holly and Hickory share the same memory map and devices.  The 
> > only
> > thing that differs from what I can tell is the actual CPU itself.
> 
> And the model number I suspect.
> 
> "ppc750-tsi" really isn't good enough as a "compatible"
> property, there are many many more boards with some 750
> and some TSI bridge.

Ok.  It really doesn't matter one way or another to me, since it's
something I'm defining anyway.  "ibm,holly" and/or "ibm,hickory" or
"ibm,ppc750-tsi" would likely work.

Actually, I might muck around with the PVR in the bootwrapper and poke
the correct model and compatible nodes in there.  That might work out
well enough.

> >>> +  	tsi109@c0000000 {
> >>> +		device_type = "tsi-bridge";
> >>
> >> Don't put a "device_type" here, it is useless
> >> (and undefined).  There are more like this, but
> >> perhaps Linux (wrongly) probes on "device_type"
> >> for those, so the kernel would need updating
> >> first.
> >
> > It's not useless.  The TSI code probes by device_type all over the
> > place.  Do you have an example of how to probe for something like this
> > without using device_type?
> 
> Sure: use "compatible" instead.
> 
> This problem is all over the place, don't worry
> about it too much.  It would be good if new ports
> could stop adding to the madness though ;-)

For now, I'm inclined to leave it as is to minimize the amount of things
needed to actually get Holly merged.  However, I'll start looking at
doing it via compatible shortly.  Hopefully someone will be able to test
out the mpc7448hpc2 board as I go to make sure things are breaking
there.

> >>> +	  	MPIC: pic@7400 {
> >>> +			built-in;
> >>
> >> Why say this for MPIC only, not for most other nodes?
> >> What binding defines "built-in", anyway?
> >
> > http://playground.sun.com/1275/bindings/chrp/chrp1_8a.ps
> 
> But this isn't a CHRP compatible board, that binding
> doesn't apply.

I'm not pretending it is.  You just asked which binding defined it and I
was proud of myself for actually finding one ;).

It doesn't actually do anything in this case, so it can be removed.

josh

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 6/7] Holly DTS
  2007-05-05 17:21   ` Segher Boessenkool
  2007-05-05 18:12     ` Josh Boyer
  2007-05-05 19:13     ` Olof Johansson
@ 2007-05-06  0:40     ` David Gibson
  2007-05-07 13:11       ` Josh Boyer
  2 siblings, 1 reply; 32+ messages in thread
From: David Gibson @ 2007-05-06  0:40 UTC (permalink / raw)
  To: Segher Boessenkool; +Cc: linuxppc-dev

On Sat, May 05, 2007 at 07:21:33PM +0200, Segher Boessenkool wrote:
[snip]
> > +	compatible = "ppc750-tsi";
> 
> The needs to be more specific as well; "ibm,holly"
> or something.

Or perhaps just include something more specific, compatible can have
the general version as well.

[snip]
> > +	chosen {
> > +		linux,platform = <0>;
> > +		linux,initrd-start = <0>;
> > +		linux,initrd-end = <0>;
> 
> Do you need to set those zero properties?

linux,platform is obsolete and should definitely go.  With the recent
bootloader updates the initrd properties can also go (the bootloader
will add them correctly).  I had them in the Ebony device tree until
very recently because until some of the recent flatdevtree.c fixes,
the bootloader could replace the value of the properties, but it
couldn't add new properties (or at least not properties with new
names).

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 6/7] Holly DTS
  2007-05-05 21:36         ` Josh Boyer
@ 2007-05-06  0:47           ` Segher Boessenkool
  0 siblings, 0 replies; 32+ messages in thread
From: Segher Boessenkool @ 2007-05-06  0:47 UTC (permalink / raw)
  To: Josh Boyer; +Cc: linuxppc-dev

>>>>> +	compatible = "ppc750-tsi";
>>>>
>>>> The needs to be more specific as well; "ibm,holly"
>>>> or something.
>>>
>>> Why?  Holly and Hickory share the same memory map and devices.  The
>>> only
>>> thing that differs from what I can tell is the actual CPU itself.
>>
>> And the model number I suspect.
>>
>> "ppc750-tsi" really isn't good enough as a "compatible"
>> property, there are many many more boards with some 750
>> and some TSI bridge.
>
> Ok.  It really doesn't matter one way or another to me, since it's
> something I'm defining anyway.  "ibm,holly" and/or "ibm,hickory" or
> "ibm,ppc750-tsi" would likely work.

That last one still has the same problem, just now
only for IBM boards.  Maybe go fancy and do
"ibm,ppc750-tsi-holly" or something.  Your decision,
just make it specific enough.

> Actually, I might muck around with the PVR in the bootwrapper and poke
> the correct model and compatible nodes in there.  That might work out
> well enough.

Yeah, that should work great.

>>> It's not useless.  The TSI code probes by device_type all over the
>>> place.  Do you have an example of how to probe for something like 
>>> this
>>> without using device_type?
>>
>> Sure: use "compatible" instead.
>>
>> This problem is all over the place, don't worry
>> about it too much.  It would be good if new ports
>> could stop adding to the madness though ;-)
>
> For now, I'm inclined to leave it as is to minimize the amount of 
> things
> needed to actually get Holly merged.  However, I'll start looking at
> doing it via compatible shortly.

Just make sure your "compatible" property is good
to go; then when the kernel starts doing the right
thing, your tree still works.

>>>>> +	  	MPIC: pic@7400 {
>>>>> +			built-in;
>>>>
>>>> Why say this for MPIC only, not for most other nodes?
>>>> What binding defines "built-in", anyway?
>>>
>>> http://playground.sun.com/1275/bindings/chrp/chrp1_8a.ps
>>
>> But this isn't a CHRP compatible board, that binding
>> doesn't apply.
>
> I'm not pretending it is.  You just asked which binding defined it and 
> I
> was proud of myself for actually finding one ;).

Heh sure :-)

> It doesn't actually do anything in this case, so it can be removed.

Exactly.

Cheers,


Segher

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 4/7] Add support for 750CL Holly board
  2007-05-05 16:17 ` [PATCH v2 4/7] Add support for 750CL Holly board Josh Boyer
@ 2007-05-07  4:22   ` Paul Mackerras
  2007-05-07 10:32     ` Josh Boyer
  0 siblings, 1 reply; 32+ messages in thread
From: Paul Mackerras @ 2007-05-07  4:22 UTC (permalink / raw)
  To: Josh Boyer; +Cc: linuxppc-dev

Josh Boyer writes:

> +config HOLLY

That's a bit too non-specific, I think; please make it PPC_HOLLY.

Paul.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 4/7] Add support for 750CL Holly board
  2007-05-07  4:22   ` Paul Mackerras
@ 2007-05-07 10:32     ` Josh Boyer
  0 siblings, 0 replies; 32+ messages in thread
From: Josh Boyer @ 2007-05-07 10:32 UTC (permalink / raw)
  To: Paul Mackerras; +Cc: linuxppc-dev

On Mon, 2007-05-07 at 14:22 +1000, Paul Mackerras wrote:
> Josh Boyer writes:
> 
> > +config HOLLY
> 
> That's a bit too non-specific, I think; please make it PPC_HOLLY.

Ok.

josh

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 6/7] Holly DTS
  2007-05-06  0:40     ` David Gibson
@ 2007-05-07 13:11       ` Josh Boyer
  2007-05-08  0:06         ` David Gibson
  0 siblings, 1 reply; 32+ messages in thread
From: Josh Boyer @ 2007-05-07 13:11 UTC (permalink / raw)
  To: David Gibson; +Cc: linuxppc-dev

On Sun, 2007-05-06 at 10:40 +1000, David Gibson wrote:
> On Sat, May 05, 2007 at 07:21:33PM +0200, Segher Boessenkool wrote:
> [snip]
> > > +	compatible = "ppc750-tsi";
> > 
> > The needs to be more specific as well; "ibm,holly"
> > or something.
> 
> Or perhaps just include something more specific, compatible can have
> the general version as well.
> 
> [snip]
> > > +	chosen {
> > > +		linux,platform = <0>;
> > > +		linux,initrd-start = <0>;
> > > +		linux,initrd-end = <0>;
> > 
> > Do you need to set those zero properties?
> 
> linux,platform is obsolete and should definitely go.  With the recent
> bootloader updates the initrd properties can also go (the bootloader
> will add them correctly).  I had them in the Ebony device tree until
> very recently because until some of the recent flatdevtree.c fixes,
> the bootloader could replace the value of the properties, but it
> couldn't add new properties (or at least not properties with new
> names).

s/bootloader/bootwrapper?

josh

^ permalink raw reply	[flat|nested] 32+ messages in thread

* RE: [PATCH v2 6/7] Holly DTS
  2007-05-05 20:49       ` Segher Boessenkool
@ 2007-05-07 17:50         ` Loeliger Jon-LOELIGER
  2007-05-09  0:49           ` David Gibson
  0 siblings, 1 reply; 32+ messages in thread
From: Loeliger Jon-LOELIGER @ 2007-05-07 17:50 UTC (permalink / raw)
  To: Segher Boessenkool, Olof Johansson; +Cc: linuxppc-dev

=20
> >
>=20
> > Other dts'es are similar. Could be nice
> > to have a comment next to it if that's the case.
>=20
> Yeah.  There's also this ?? syntax now I believe.

Not quite yet.  We didn't really get a 2/3 majority
Ratification from The Syndicate yet.  The debate
Is ongoing, I suspect.

Let's listen in...

Jdl

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 6/7] Holly DTS
  2007-05-07 13:11       ` Josh Boyer
@ 2007-05-08  0:06         ` David Gibson
  0 siblings, 0 replies; 32+ messages in thread
From: David Gibson @ 2007-05-08  0:06 UTC (permalink / raw)
  To: Josh Boyer; +Cc: linuxppc-dev

On Mon, May 07, 2007 at 08:11:52AM -0500, Josh Boyer wrote:
> On Sun, 2007-05-06 at 10:40 +1000, David Gibson wrote:
> > On Sat, May 05, 2007 at 07:21:33PM +0200, Segher Boessenkool wrote:
> > [snip]
> > > > +	compatible = "ppc750-tsi";
> > > 
> > > The needs to be more specific as well; "ibm,holly"
> > > or something.
> > 
> > Or perhaps just include something more specific, compatible can have
> > the general version as well.
> > 
> > [snip]
> > > > +	chosen {
> > > > +		linux,platform = <0>;
> > > > +		linux,initrd-start = <0>;
> > > > +		linux,initrd-end = <0>;
> > > 
> > > Do you need to set those zero properties?
> > 
> > linux,platform is obsolete and should definitely go.  With the recent
> > bootloader updates the initrd properties can also go (the bootloader
> > will add them correctly).  I had them in the Ebony device tree until
> > very recently because until some of the recent flatdevtree.c fixes,
> > the bootloader could replace the value of the properties, but it
> > couldn't add new properties (or at least not properties with new
> > names).
> 
> s/bootloader/bootwrapper?

Yes.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 6/7] Holly DTS
  2007-05-07 17:50         ` Loeliger Jon-LOELIGER
@ 2007-05-09  0:49           ` David Gibson
  2007-05-09  7:40             ` Stephen Rothwell
  2007-05-09 10:29             ` Josh Boyer
  0 siblings, 2 replies; 32+ messages in thread
From: David Gibson @ 2007-05-09  0:49 UTC (permalink / raw)
  To: Loeliger Jon-LOELIGER; +Cc: Olof Johansson, linuxppc-dev

On Mon, May 07, 2007 at 10:50:50AM -0700, Jon Loeliger wrote:
> > > Other dts'es are similar. Could be nice
> > > to have a comment next to it if that's the case.
> > 
> > Yeah.  There's also this ?? syntax now I believe.
> 
> Not quite yet.  

Yes, the idea was raised, but discussion kind of petered out and
nobody (read: me) got around to implementing it.

> We didn't really get a 2/3 majority
> Ratification from The Syndicate yet.  The debate
> Is ongoing, I suspect.

/me wonders who jdl is thinking of as The Syndicate.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 6/7] Holly DTS
  2007-05-09  0:49           ` David Gibson
@ 2007-05-09  7:40             ` Stephen Rothwell
  2007-05-09 10:29             ` Josh Boyer
  1 sibling, 0 replies; 32+ messages in thread
From: Stephen Rothwell @ 2007-05-09  7:40 UTC (permalink / raw)
  To: David Gibson; +Cc: Olof Johansson, linuxppc-dev, Loeliger Jon-LOELIGER

[-- Attachment #1: Type: text/plain, Size: 281 bytes --]

On Wed, 9 May 2007 10:49:48 +1000 David Gibson <david@gibson.dropbear.id.au> wrote:
>
> /me wonders who jdl is thinking of as The Syndicate.

That would be the nonexistent Cabal.
--
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 6/7] Holly DTS
  2007-05-09  0:49           ` David Gibson
  2007-05-09  7:40             ` Stephen Rothwell
@ 2007-05-09 10:29             ` Josh Boyer
  2007-05-09 15:28               ` Segher Boessenkool
  1 sibling, 1 reply; 32+ messages in thread
From: Josh Boyer @ 2007-05-09 10:29 UTC (permalink / raw)
  To: David Gibson; +Cc: Olof Johansson, linuxppc-dev, Loeliger Jon-LOELIGER

On Wed, 2007-05-09 at 10:49 +1000, David Gibson wrote:
> On Mon, May 07, 2007 at 10:50:50AM -0700, Jon Loeliger wrote:
> > > > Other dts'es are similar. Could be nice
> > > > to have a comment next to it if that's the case.
> > > 
> > > Yeah.  There's also this ?? syntax now I believe.
> > 
> > Not quite yet.  
> 
> Yes, the idea was raised, but discussion kind of petered out and
> nobody (read: me) got around to implementing it.

What exactly did this ?? syntax imply?  I must have missed that thread.

josh

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 6/7] Holly DTS
  2007-05-09 10:29             ` Josh Boyer
@ 2007-05-09 15:28               ` Segher Boessenkool
  2007-05-10 23:54                 ` David Gibson
  0 siblings, 1 reply; 32+ messages in thread
From: Segher Boessenkool @ 2007-05-09 15:28 UTC (permalink / raw)
  To: Josh Boyer
  Cc: Olof Johansson, linuxppc-dev, Loeliger Jon-LOELIGER, David Gibson

>>>>> Other dts'es are similar. Could be nice
>>>>> to have a comment next to it if that's the case.
>>>>
>>>> Yeah.  There's also this ?? syntax now I believe.
>>>
>>> Not quite yet.
>>
>> Yes, the idea was raised, but discussion kind of petered out and
>> nobody (read: me) got around to implementing it.
>
> What exactly did this ?? syntax imply?  I must have missed that thread.

A property in a DTS file can use that to say
the property should have a value, but it will
be filled in by the bootwrapper instead (memory
address/size, or network MAC address, for
instance).  Presumably the kernel parser would
complain when it sees the this-is-still-undefined
marker.

The original proposal specified the length of
the property value IIRC, but that isn't necessary
anymore.


Segher

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 6/7] Holly DTS
  2007-05-09 15:28               ` Segher Boessenkool
@ 2007-05-10 23:54                 ` David Gibson
  2007-05-12 12:02                   ` Segher Boessenkool
  0 siblings, 1 reply; 32+ messages in thread
From: David Gibson @ 2007-05-10 23:54 UTC (permalink / raw)
  To: Segher Boessenkool; +Cc: Olof Johansson, linuxppc-dev, Loeliger Jon-LOELIGER

On Wed, May 09, 2007 at 05:28:18PM +0200, Segher Boessenkool wrote:
> >>>>> Other dts'es are similar. Could be nice
> >>>>> to have a comment next to it if that's the case.
> >>>>
> >>>> Yeah.  There's also this ?? syntax now I believe.
> >>>
> >>> Not quite yet.
> >>
> >> Yes, the idea was raised, but discussion kind of petered out and
> >> nobody (read: me) got around to implementing it.
> >
> > What exactly did this ?? syntax imply?  I must have missed that thread.
> 
> A property in a DTS file can use that to say
> the property should have a value, but it will
> be filled in by the bootwrapper instead (memory
> address/size, or network MAC address, for
> instance).  Presumably the kernel parser would
> complain when it sees the this-is-still-undefined
> marker.
> 
> The original proposal specified the length of
> the property value IIRC, but that isn't necessary
> anymore.

Well.. sort of.  The first cut at the idea is that ? would be
equivalent to zeroes in terms of dtc output, but would act as internal
documentation that that property is supposed to be filled in by the
bootloader.

Refinements to try to enforce that would be nice: easiest is to
replace it with a configurable poison value.  When using asm output,
or with a map file, it might be possible to generate out-of-band
information which we can use to check that the right things are filled
in.

It's not a simply a matter of making the kernel parser recognize the
uninitialized info, because there's no way to encode that in the dtb
itself.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 6/7] Holly DTS
  2007-05-10 23:54                 ` David Gibson
@ 2007-05-12 12:02                   ` Segher Boessenkool
  2007-05-14  0:24                     ` David Gibson
  0 siblings, 1 reply; 32+ messages in thread
From: Segher Boessenkool @ 2007-05-12 12:02 UTC (permalink / raw)
  To: David Gibson; +Cc: Olof Johansson, linuxppc-dev, Loeliger Jon-LOELIGER

>>> What exactly did this ?? syntax imply?  I must have missed that 
>>> thread.
>>
>> A property in a DTS file can use that to say
>> the property should have a value, but it will
>> be filled in by the bootwrapper instead (memory
>> address/size, or network MAC address, for
>> instance).  Presumably the kernel parser would
>> complain when it sees the this-is-still-undefined
>> marker.
>>
>> The original proposal specified the length of
>> the property value IIRC, but that isn't necessary
>> anymore.
>
> Well.. sort of.  The first cut at the idea is that ? would be
> equivalent to zeroes in terms of dtc output, but would act as internal
> documentation that that property is supposed to be filled in by the
> bootloader.

Yes.

> Refinements to try to enforce that would be nice:

Exactly my point.

> easiest is to
> replace it with a configurable poison value.  When using asm output,
> or with a map file, it might be possible to generate out-of-band
> information which we can use to check that the right things are filled
> in.
>
> It's not a simply a matter of making the kernel parser recognize the
> uninitialized info, because there's no way to encode that in the dtb
> itself.

There can be, with a new DTB version -- perhaps simply
define proplen == -1 to mean "undefined" or similar.


Segher

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 6/7] Holly DTS
  2007-05-12 12:02                   ` Segher Boessenkool
@ 2007-05-14  0:24                     ` David Gibson
  2007-05-14 12:33                       ` Segher Boessenkool
  0 siblings, 1 reply; 32+ messages in thread
From: David Gibson @ 2007-05-14  0:24 UTC (permalink / raw)
  To: Segher Boessenkool; +Cc: Olof Johansson, linuxppc-dev, Loeliger Jon-LOELIGER

On Sat, May 12, 2007 at 02:02:42PM +0200, Segher Boessenkool wrote:
> >>> What exactly did this ?? syntax imply?  I must have missed that 
> >>> thread.
> >>
> >> A property in a DTS file can use that to say
> >> the property should have a value, but it will
> >> be filled in by the bootwrapper instead (memory
> >> address/size, or network MAC address, for
> >> instance).  Presumably the kernel parser would
> >> complain when it sees the this-is-still-undefined
> >> marker.
> >>
> >> The original proposal specified the length of
> >> the property value IIRC, but that isn't necessary
> >> anymore.
> >
> > Well.. sort of.  The first cut at the idea is that ? would be
> > equivalent to zeroes in terms of dtc output, but would act as internal
> > documentation that that property is supposed to be filled in by the
> > bootloader.
> 
> Yes.
> 
> > Refinements to try to enforce that would be nice:
> 
> Exactly my point.
> 
> > easiest is to
> > replace it with a configurable poison value.  When using asm output,
> > or with a map file, it might be possible to generate out-of-band
> > information which we can use to check that the right things are filled
> > in.
> >
> > It's not a simply a matter of making the kernel parser recognize the
> > uninitialized info, because there's no way to encode that in the dtb
> > itself.
> 
> There can be, with a new DTB version -- perhaps simply
> define proplen == -1 to mean "undefined" or similar.

That doesn't quite do it, because I'd prefer ? to cover cases where
the property's length is known, just not its value.  In particular
that could be useful for device trees where *only* non-moving edits
are required by the bootloader, letting us use the asm output mode as
intended.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 6/7] Holly DTS
  2007-05-14  0:24                     ` David Gibson
@ 2007-05-14 12:33                       ` Segher Boessenkool
  2007-05-14 16:16                         ` Scott Wood
  0 siblings, 1 reply; 32+ messages in thread
From: Segher Boessenkool @ 2007-05-14 12:33 UTC (permalink / raw)
  To: David Gibson; +Cc: Olof Johansson, linuxppc-dev, Loeliger Jon-LOELIGER

>>> easiest is to
>>> replace it with a configurable poison value.  When using asm output,
>>> or with a map file, it might be possible to generate out-of-band
>>> information which we can use to check that the right things are 
>>> filled
>>> in.
>>>
>>> It's not a simply a matter of making the kernel parser recognize the
>>> uninitialized info, because there's no way to encode that in the dtb
>>> itself.
>>
>> There can be, with a new DTB version -- perhaps simply
>> define proplen == -1 to mean "undefined" or similar.
>
> That doesn't quite do it, because I'd prefer ? to cover cases where
> the property's length is known, just not its value.  In particular
> that could be useful for device trees where *only* non-moving edits
> are required by the bootloader, letting us use the asm output mode as
> intended.

[First things first -- it is generally wrong to
require properties to have a certain length, newer
(versions of) bindings can add extra fields to the
end of a property.  It should be okay for this ??
stuff though, if a bootwrapper/firmware fills in
the property it better know its whole semantics,
including the new part.]

Okay, so use negative lengths to represent undefined
properties of a certain length, and use -inf to mean
"completely undefined yet".  Or some other encoding,
there are many ways that would work.

My point is that you need a new DTB version to properly
represent ??.


Segher

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [PATCH v2 6/7] Holly DTS
  2007-05-14 12:33                       ` Segher Boessenkool
@ 2007-05-14 16:16                         ` Scott Wood
  0 siblings, 0 replies; 32+ messages in thread
From: Scott Wood @ 2007-05-14 16:16 UTC (permalink / raw)
  To: Segher Boessenkool; +Cc: Olof Johansson, linuxppc-dev, David Gibson

On Mon, May 14, 2007 at 02:33:13PM +0200, Segher Boessenkool wrote:
> My point is that you need a new DTB version to properly
> represent ??.

If we do make a new DTB version, I'd like to see a size field added to
each tag, thus allowing unrecognized tags (or unrecognized extensions to
known tags) to be skipped, thus minimizing the need for new, incompatible
DTB versions in the future.

-Scott

^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2007-05-14 16:17 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-05-05 16:13 [PATCH v2 0/7] Add support for 750CL Holly board Josh Boyer
2007-05-05 16:14 ` [PATCH v2 0/1] Add tsi108_pci.h for common PCI functions Josh Boyer
2007-05-05 16:15 ` [PATCH v2 2/7] Generalize tsi108 PHY types Josh Boyer
2007-05-05 16:16 ` [PATCH v2 3/7] Generalize TSI 108 PCI setup Josh Boyer
2007-05-05 16:17 ` [PATCH v2 4/7] Add support for 750CL Holly board Josh Boyer
2007-05-07  4:22   ` Paul Mackerras
2007-05-07 10:32     ` Josh Boyer
2007-05-05 16:19 ` [PATCH v2 5/7] Holly defconfig Josh Boyer
2007-05-05 16:20 ` [PATCH v2 6/7] Holly DTS Josh Boyer
2007-05-05 17:21   ` Segher Boessenkool
2007-05-05 18:12     ` Josh Boyer
2007-05-05 20:44       ` Segher Boessenkool
2007-05-05 21:36         ` Josh Boyer
2007-05-06  0:47           ` Segher Boessenkool
2007-05-05 19:13     ` Olof Johansson
2007-05-05 19:46       ` Josh Boyer
2007-05-05 20:51         ` Segher Boessenkool
2007-05-05 20:49       ` Segher Boessenkool
2007-05-07 17:50         ` Loeliger Jon-LOELIGER
2007-05-09  0:49           ` David Gibson
2007-05-09  7:40             ` Stephen Rothwell
2007-05-09 10:29             ` Josh Boyer
2007-05-09 15:28               ` Segher Boessenkool
2007-05-10 23:54                 ` David Gibson
2007-05-12 12:02                   ` Segher Boessenkool
2007-05-14  0:24                     ` David Gibson
2007-05-14 12:33                       ` Segher Boessenkool
2007-05-14 16:16                         ` Scott Wood
2007-05-06  0:40     ` David Gibson
2007-05-07 13:11       ` Josh Boyer
2007-05-08  0:06         ` David Gibson
2007-05-05 16:20 ` [PATCH v2 7/7] Holly bootwrapper Josh Boyer

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.