LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH 2/3] i2c: Convert all new-style drivers to use module aliasing
From: Jean Delvare @ 2008-01-22 10:09 UTC (permalink / raw)
  To: Jon Smirl; +Cc: David Brownell, linuxppc-dev, Linux I2C
In-Reply-To: <9e4733910801210850j39b9d51fy706b58ca15805f35@mail.gmail.com>

Hi Jon,

On Mon, 21 Jan 2008 11:50:13 -0500, Jon Smirl wrote:
> In my version of these patches new style drivers could be loaded with
> both the driver_name/name scheme and the modalias. In these patches
> new style drivers can only be loaded via modalias. Is that what you
> intended? I'm all for making new style driver only use the modalias
> scheme.

Yes, this is what I intended. I see no point in having two ways to
achieve the same result, it makes things more complex, more costly and
possibly confusing.

I would reconsider if someone points out a very good reason to keep both
schemes in parallel.

-- 
Jean Delvare

^ permalink raw reply

* [PATCH 1/4] Search for and publish cell OF platform devices earlier
From: Michael Ellerman @ 2008-01-22 11:04 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: cbe-oss-dev

Currently cell publishes OF devices at device_initcall() time, which
means the earliest a driver can bind to a device is also device_initcall()
time. We have a driver we want to register before other devices, so
publish the devices at subsys_initcall() time.

This should not cause any behaviour change for existing drivers, as they
are still bound at device_initcall() time.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
---
 arch/powerpc/platforms/cell/setup.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/powerpc/platforms/cell/setup.c b/arch/powerpc/platforms/cell/setup.c
index e6534b5..a7f609b 100644
--- a/arch/powerpc/platforms/cell/setup.c
+++ b/arch/powerpc/platforms/cell/setup.c
@@ -98,7 +98,7 @@ static int __init cell_publish_devices(void)
 	}
 	return 0;
 }
-machine_device_initcall(cell, cell_publish_devices);
+machine_subsys_initcall(cell, cell_publish_devices);
 
 static void cell_mpic_cascade(unsigned int irq, struct irq_desc *desc)
 {
-- 
1.5.2.rc1.1884.g59b20

^ permalink raw reply related

* [PATCH 2/4] Create and hook up of_platform_device_shutdown
From: Michael Ellerman @ 2008-01-22 11:04 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: cbe-oss-dev
In-Reply-To: <3ce7be4c77581ce103a8da9f33a734270c9dc6e8.1200999872.git.michael@ellerman.id.au>

Although of_platform_device's can have a shutdown routine, at the moment
the bus code doesn't actually call it. So add the required glue to
hook the shutdown routine.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
---
 drivers/of/platform.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/drivers/of/platform.c b/drivers/of/platform.c
index b47bb2d..9152479 100644
--- a/drivers/of/platform.c
+++ b/drivers/of/platform.c
@@ -85,6 +85,15 @@ static int of_platform_device_resume(struct device * dev)
 	return error;
 }
 
+static void of_platform_device_shutdown(struct device * dev)
+{
+	struct of_device *of_dev = to_of_device(dev);
+	struct of_platform_driver *drv = to_of_platform_driver(dev->driver);
+
+	if (dev->driver && drv->shutdown)
+		drv->shutdown(of_dev);
+}
+
 int of_bus_type_init(struct bus_type *bus, const char *name)
 {
 	bus->name = name;
@@ -93,6 +102,7 @@ int of_bus_type_init(struct bus_type *bus, const char *name)
 	bus->remove = of_platform_device_remove;
 	bus->suspend = of_platform_device_suspend;
 	bus->resume = of_platform_device_resume;
+	bus->shutdown = of_platform_device_shutdown;
 	return bus_register(bus);
 }
 
-- 
1.5.2.rc1.1884.g59b20

^ permalink raw reply related

* [PATCH 3/4] Convert axon_msi to an of_platform driver
From: Michael Ellerman @ 2008-01-22 11:04 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: cbe-oss-dev
In-Reply-To: <3ce7be4c77581ce103a8da9f33a734270c9dc6e8.1200999872.git.michael@ellerman.id.au>

Now that we create of_platform devices earlier on cell, we can make the
axon_msi driver an of_platform driver. This makes the code cleaner in
several ways, and most importantly means we have a struct device.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
---
 arch/powerpc/platforms/cell/axon_msi.c |   76 ++++++++++++++-----------------
 1 files changed, 34 insertions(+), 42 deletions(-)

diff --git a/arch/powerpc/platforms/cell/axon_msi.c b/arch/powerpc/platforms/cell/axon_msi.c
index 095988f..8de3d23 100644
--- a/arch/powerpc/platforms/cell/axon_msi.c
+++ b/arch/powerpc/platforms/cell/axon_msi.c
@@ -13,8 +13,8 @@
 #include <linux/kernel.h>
 #include <linux/pci.h>
 #include <linux/msi.h>
-#include <linux/reboot.h>
 
+#include <asm/of_platform.h>
 #include <asm/dcr.h>
 #include <asm/machdep.h>
 #include <asm/prom.h>
@@ -67,12 +67,9 @@ struct axon_msic {
 	struct irq_host *irq_host;
 	__le32 *fifo;
 	dcr_host_t dcr_host;
-	struct list_head list;
 	u32 read_offset;
 };
 
-static LIST_HEAD(axon_msic_list);
-
 static void msic_dcr_write(struct axon_msic *msic, unsigned int dcr_n, u32 val)
 {
 	pr_debug("axon_msi: dcr_write(0x%x, 0x%x)\n", val, dcr_n);
@@ -292,30 +289,25 @@ static struct irq_host_ops msic_host_ops = {
 	.map	= msic_host_map,
 };
 
-static int axon_msi_notify_reboot(struct notifier_block *nb,
-				  unsigned long code, void *data)
+static int axon_msi_shutdown(struct of_device *device)
 {
-	struct axon_msic *msic;
+	struct axon_msic *msic = device->dev.platform_data;
 	u32 tmp;
 
-	list_for_each_entry(msic, &axon_msic_list, list) {
-		pr_debug("axon_msi: disabling %s\n",
-			  msic->irq_host->of_node->full_name);
-		tmp  = dcr_read(msic->dcr_host, MSIC_CTRL_REG);
-		tmp &= ~MSIC_CTRL_ENABLE & ~MSIC_CTRL_IRQ_ENABLE;
-		msic_dcr_write(msic, MSIC_CTRL_REG, tmp);
-	}
+	pr_debug("axon_msi: disabling %s\n",
+		  msic->irq_host->of_node->full_name);
+	tmp  = dcr_read(msic->dcr_host, MSIC_CTRL_REG);
+	tmp &= ~MSIC_CTRL_ENABLE & ~MSIC_CTRL_IRQ_ENABLE;
+	msic_dcr_write(msic, MSIC_CTRL_REG, tmp);
 
 	return 0;
 }
 
-static struct notifier_block axon_msi_reboot_notifier = {
-	.notifier_call = axon_msi_notify_reboot
-};
-
-static int axon_msi_setup_one(struct device_node *dn)
+static int axon_msi_probe(struct of_device *device,
+			  const struct of_device_id *device_id)
 {
 	struct page *page;
+	struct device_node *dn = device->node;
 	struct axon_msic *msic;
 	unsigned int virq;
 	int dcr_base, dcr_len;
@@ -385,7 +377,11 @@ static int axon_msi_setup_one(struct device_node *dn)
 			MSIC_CTRL_IRQ_ENABLE | MSIC_CTRL_ENABLE |
 			MSIC_CTRL_FIFO_SIZE);
 
-	list_add(&msic->list, &axon_msic_list);
+	device->dev.platform_data = msic;
+
+	ppc_md.setup_msi_irqs = axon_msi_setup_msi_irqs;
+	ppc_md.teardown_msi_irqs = axon_msi_teardown_msi_irqs;
+	ppc_md.msi_check_device = axon_msi_check_device;
 
 	printk(KERN_DEBUG "axon_msi: setup MSIC on %s\n", dn->full_name);
 
@@ -402,28 +398,24 @@ out:
 	return -1;
 }
 
-static int axon_msi_init(void)
-{
-	struct device_node *dn;
-	int found = 0;
-
-	pr_debug("axon_msi: initialising ...\n");
-
-	for_each_compatible_node(dn, NULL, "ibm,axon-msic") {
-		if (axon_msi_setup_one(dn) == 0)
-			found++;
-	}
-
-	if (found) {
-		ppc_md.setup_msi_irqs = axon_msi_setup_msi_irqs;
-		ppc_md.teardown_msi_irqs = axon_msi_teardown_msi_irqs;
-		ppc_md.msi_check_device = axon_msi_check_device;
-
-		register_reboot_notifier(&axon_msi_reboot_notifier);
+static struct of_device_id axon_msi_device_id[] = {
+	{
+		.compatible	= "ibm,axon-msic"
+	},
+	{}
+};
 
-		pr_debug("axon_msi: registered callbacks!\n");
-	}
+static struct of_platform_driver axon_msi_driver = {
+	.match_table	= axon_msi_device_id,
+	.probe		= axon_msi_probe,
+	.shutdown	= axon_msi_shutdown,
+	.driver		= {
+		.name	= "axon-msi"
+	},
+};
 
-	return 0;
+static int __init axon_msi_init(void)
+{
+	return of_register_platform_driver(&axon_msi_driver);
 }
-arch_initcall(axon_msi_init);
+subsys_initcall(axon_msi_init);
-- 
1.5.2.rc1.1884.g59b20

^ permalink raw reply related

* [PATCH 4/4] Avoid DMA exception when using axon_msi with IOMMU
From: Michael Ellerman @ 2008-01-22 11:04 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: cbe-oss-dev
In-Reply-To: <3ce7be4c77581ce103a8da9f33a734270c9dc6e8.1200999872.git.michael@ellerman.id.au>

There's a brown-paper-bag bug in axon_msi, we pass the address of our
FIFO directly to the hardware, without DMA mapping it. This leads to
DMA exceptions if you enable MSI & the IOMMU.

The fix is to correctly DMA map the fifo, dma_alloc_coherent() does
what we want - and we need to track the virt & phys addresses.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
---
 arch/powerpc/platforms/cell/axon_msi.c |   21 ++++++++++-----------
 1 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/arch/powerpc/platforms/cell/axon_msi.c b/arch/powerpc/platforms/cell/axon_msi.c
index 8de3d23..c546879 100644
--- a/arch/powerpc/platforms/cell/axon_msi.c
+++ b/arch/powerpc/platforms/cell/axon_msi.c
@@ -65,7 +65,8 @@
 
 struct axon_msic {
 	struct irq_host *irq_host;
-	__le32 *fifo;
+	__le32 *fifo_virt;
+	dma_addr_t fifo_phys;
 	dcr_host_t dcr_host;
 	u32 read_offset;
 };
@@ -91,7 +92,7 @@ static void axon_msi_cascade(unsigned int irq, struct irq_desc *desc)
 
 	while (msic->read_offset != write_offset) {
 		idx  = msic->read_offset / sizeof(__le32);
-		msi  = le32_to_cpu(msic->fifo[idx]);
+		msi  = le32_to_cpu(msic->fifo_virt[idx]);
 		msi &= 0xFFFF;
 
 		pr_debug("axon_msi: woff %x roff %x msi %x\n",
@@ -306,7 +307,6 @@ static int axon_msi_shutdown(struct of_device *device)
 static int axon_msi_probe(struct of_device *device,
 			  const struct of_device_id *device_id)
 {
-	struct page *page;
 	struct device_node *dn = device->node;
 	struct axon_msic *msic;
 	unsigned int virq;
@@ -338,16 +338,14 @@ static int axon_msi_probe(struct of_device *device,
 		goto out_free_msic;
 	}
 
-	page = alloc_pages_node(of_node_to_nid(dn), GFP_KERNEL,
-				get_order(MSIC_FIFO_SIZE_BYTES));
-	if (!page) {
+	msic->fifo_virt = dma_alloc_coherent(&device->dev, MSIC_FIFO_SIZE_BYTES,
+					     &msic->fifo_phys, GFP_KERNEL);
+	if (!msic->fifo_virt) {
 		printk(KERN_ERR "axon_msi: couldn't allocate fifo for %s\n",
 		       dn->full_name);
 		goto out_free_msic;
 	}
 
-	msic->fifo = page_address(page);
-
 	msic->irq_host = irq_alloc_host(of_node_get(dn), IRQ_HOST_MAP_NOMAP,
 					NR_IRQS, &msic_host_ops, 0);
 	if (!msic->irq_host) {
@@ -370,9 +368,9 @@ static int axon_msi_probe(struct of_device *device,
 	pr_debug("axon_msi: irq 0x%x setup for axon_msi\n", virq);
 
 	/* Enable the MSIC hardware */
-	msic_dcr_write(msic, MSIC_BASE_ADDR_HI_REG, (u64)msic->fifo >> 32);
+	msic_dcr_write(msic, MSIC_BASE_ADDR_HI_REG, msic->fifo_phys >> 32);
 	msic_dcr_write(msic, MSIC_BASE_ADDR_LO_REG,
-				  (u64)msic->fifo & 0xFFFFFFFF);
+				  msic->fifo_phys & 0xFFFFFFFF);
 	msic_dcr_write(msic, MSIC_CTRL_REG,
 			MSIC_CTRL_IRQ_ENABLE | MSIC_CTRL_ENABLE |
 			MSIC_CTRL_FIFO_SIZE);
@@ -390,7 +388,8 @@ static int axon_msi_probe(struct of_device *device,
 out_free_host:
 	kfree(msic->irq_host);
 out_free_fifo:
-	__free_pages(virt_to_page(msic->fifo), get_order(MSIC_FIFO_SIZE_BYTES));
+	dma_free_coherent(&device->dev, MSIC_FIFO_SIZE_BYTES, msic->fifo_virt,
+			  msic->fifo_phys);
 out_free_msic:
 	kfree(msic);
 out:
-- 
1.5.2.rc1.1884.g59b20

^ permalink raw reply related

* RE: Generated xilinx linux 2.6  image sections
From: greenlean @ 2008-01-22 13:28 UTC (permalink / raw)
  To: linuxppc-embedded
In-Reply-To: <15015244.post@talk.nabble.com>


Now It's running the problem was the DDR controller I was including the 512
one but I'm working with a 256 DDR module .......

Thanks for the orientation, really usefull.

Bye.


Stephen Neuendorffer wrote:
> 
> The testapps are generated using a different linker script.
> 
> Based on what you sent out, it looks like your EDK design has a memory
> at 0x10000000, but this is
> not reflected in the linux image you've generated.  This makes me
> suspect that you haven't generated the BSP and copied the appropriate
> xparameters file over xparameters_xup.h (assuming you are using
> CONFIG_XILINX_XUPV2P).
> 
> Steve
> 
>> -----Original Message-----
>> From: linuxppc-embedded-bounces+stephen=neuendorffer.name@ozlabs.org
> [mailto:linuxppc-embedded-
>> bounces+stephen=neuendorffer.name@ozlabs.org] On Behalf Of greenlean
>> Sent: Monday, January 21, 2008 5:06 AM
>> To: linuxppc-embedded@ozlabs.org
>> Subject: Generated xilinx linux 2.6 image sections
>> 
>> 
>> Hi all,
>> 
>> I'm trying to boot the 2.6 xilinx kernel downloaded from their git
> server in
>> the XUPV2P board I'm really having troubles (I can't see anything in
> the
>> minicom console terminal). I'm not seeing anything, neither the
> ucompressing
>> kernel string nor the prompt with the memory addresses that kernel
> prompt at
>> first time, so I have started to distrust of anything.
>> 
>>
>> Linuxppc-embedded@ozlabs.org
>> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
> 
> 
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
> 
> 



-- 
View this message in context: http://www.nabble.com/Generated-xilinx-linux-2.6--image-sections-tp14997109p15018508.html
Sent from the linuxppc-embedded mailing list archive at Nabble.com.

^ permalink raw reply

* Re: [PATCH] create modalias file in sysfs for bus vio
From: Stephen Rothwell @ 2008-01-22 14:05 UTC (permalink / raw)
  To: Olaf Hering; +Cc: linuxppc-dev
In-Reply-To: <20080122083328.GA11928@aepfle.de>

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

Hi Olaf,

Thanks for this.  Just a couple of nits ...

On Tue, 22 Jan 2008 09:33:28 +0100 Olaf Hering <olaf@aepfle.de> wrote:
>
> +static ssize_t modalias_show (struct device *dev, struct device_attribute *attr,
                               ^
No space here, please.

> +			      char *buf)
> +{
> +	struct device_node *of_node = dev->archdata.of_node;
> +	const char *compat;
> +	int i = 0;
> +
> +	if (of_node) {
> +		compat = of_get_property(of_node, "compatible", &i);
> +		i = sprintf (buf, "vio:T%sS%s\n", of_node->type, compat ? compat : "");
                           ^
Or here.

It would be nice if we could factor out the "vio:T%sS%s" string as it is
also used in vio_hotplug().

-- 
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

* [PATCH] create modalias file in sysfs for bus of_platform
From: Olaf Hering @ 2008-01-22 14:21 UTC (permalink / raw)
  To: linuxppc-dev


Create /sys/bus/of_platform/devices/*/modalias file to allow autoloading
of modules. modalias files are already present for many other bus types.

Signed-off-by: Olaf Hering <olaf@aepfle.de>

---
 drivers/of/device.c |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

--- a/drivers/of/device.c
+++ b/drivers/of/device.c
@@ -86,7 +86,19 @@ static ssize_t dev_show_devspec(struct d
 	return sprintf(buf, "%s", ofdev->node->full_name);
 }
 
+static ssize_t dev_show_modalias(struct device *dev,
+				struct device_attribute *attr, char *buf)
+{
+	struct of_device *ofdev = to_of_device(dev);
+	ssize_t len = 0;
+
+	if (ofdev)
+		len = of_device_get_modalias(ofdev, buf, PAGE_SIZE);
+	return len;
+}
+
 static DEVICE_ATTR(devspec, S_IRUGO, dev_show_devspec, NULL);
+static DEVICE_ATTR(modalias, S_IRUGO, dev_show_modalias, NULL);
 
 /**
  * of_release_dev - free an of device structure when all users of it are finished.
@@ -116,6 +128,11 @@ int of_device_register(struct of_device 
 		return rc;
 
 	rc = device_create_file(&ofdev->dev, &dev_attr_devspec);
+	if (rc) {
+		device_unregister(&ofdev->dev);
+		return rc;
+	}
+	rc = device_create_file(&ofdev->dev, &dev_attr_modalias);
 	if (rc)
 		device_unregister(&ofdev->dev);
 
@@ -126,6 +143,7 @@ EXPORT_SYMBOL(of_device_register);
 void of_device_unregister(struct of_device *ofdev)
 {
 	device_remove_file(&ofdev->dev, &dev_attr_devspec);
+	device_remove_file(&ofdev->dev, &dev_attr_modalias);
 	device_unregister(&ofdev->dev);
 }
 EXPORT_SYMBOL(of_device_unregister);

^ permalink raw reply

* Re: [PATCH 2/4] Create and hook up of_platform_device_shutdown
From: Stephen Rothwell @ 2008-01-22 14:34 UTC (permalink / raw)
  To: Michael Ellerman; +Cc: linuxppc-dev, cbe-oss-dev
In-Reply-To: <bb8d7cc1a060af291ef6efb0f4222f81fa91f417.1200999872.git.michael@ellerman.id.au>

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

Hi Michael,

Just a couple of things.

On Tue, 22 Jan 2008 22:04:40 +1100 (EST) Michael Ellerman <michael@ellerman.id.au> wrote:
>
> +static void of_platform_device_shutdown(struct device * dev)
                                                          ^
No space, please.

Also, I wonder if we should check that the drivers that already have
specified a shutdown routine (drivers/input/misc/sparcspkr.c,
drivers/usb/host/ohci-ppc-of.c and drivers/watchdog/mpc5200_wdt.c) are
actually ok if it actually gets called.  :-)

Also, patches like this should be cc'd to (at least) the sparc guys
(sparclinux@vger.kernel.org) since they share this stuff with us, now.

-- 
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

* Re: [PATCH 3/4] Convert axon_msi to an of_platform driver
From: Stephen Rothwell @ 2008-01-22 14:38 UTC (permalink / raw)
  To: Michael Ellerman; +Cc: linuxppc-dev, cbe-oss-dev
In-Reply-To: <c04b1ca531fcd78c42c5a13802c1c331f9b4c8a7.1200999872.git.michael@ellerman.id.au>

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

Hi Michael,

On Tue, 22 Jan 2008 22:04:40 +1100 (EST) Michael Ellerman <michael@ellerman.id.au> wrote:
>
> +#include <asm/of_platform.h>

You must have missed the lectures :-) Please use linux/of_platform.h

> +static struct of_device_id axon_msi_device_id[] = {

const, please.

-- 
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

* [PATCH v2] create modalias file in sysfs for bus of_platform
From: Olaf Hering @ 2008-01-22 14:40 UTC (permalink / raw)
  To: linuxppc-dev
In-Reply-To: <20080122142109.GA12967@aepfle.de>

Create /sys/bus/of_platform/devices/*/modalias file to allow autoloading
of modules. modalias files are already present for many other bus types.

Signed-off-by: Olaf Hering <olaf@aepfle.de>

---
 drivers/of/device.c |   19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

--- a/drivers/of/device.c
+++ b/drivers/of/device.c
@@ -86,7 +86,20 @@ static ssize_t dev_show_devspec(struct d
 	return sprintf(buf, "%s", ofdev->node->full_name);
 }
 
+static ssize_t dev_show_modalias(struct device *dev,
+				struct device_attribute *attr, char *buf)
+{
+	struct of_device *ofdev = to_of_device(dev);
+	ssize_t len = 0;
+
+	len = of_device_get_modalias(ofdev, buf, PAGE_SIZE);
+	buf[len] = '\n';
+	buf[len+1] = 0;
+	return len+1;
+}
+
 static DEVICE_ATTR(devspec, S_IRUGO, dev_show_devspec, NULL);
+static DEVICE_ATTR(modalias, S_IRUGO, dev_show_modalias, NULL);
 
 /**
  * of_release_dev - free an of device structure when all users of it are finished.
@@ -116,6 +129,11 @@ int of_device_register(struct of_device 
 		return rc;
 
 	rc = device_create_file(&ofdev->dev, &dev_attr_devspec);
+	if (rc) {
+		device_unregister(&ofdev->dev);
+		return rc;
+	}
+	rc = device_create_file(&ofdev->dev, &dev_attr_modalias);
 	if (rc)
 		device_unregister(&ofdev->dev);
 
@@ -126,6 +144,7 @@ EXPORT_SYMBOL(of_device_register);
 void of_device_unregister(struct of_device *ofdev)
 {
 	device_remove_file(&ofdev->dev, &dev_attr_devspec);
+	device_remove_file(&ofdev->dev, &dev_attr_modalias);
 	device_unregister(&ofdev->dev);
 }
 EXPORT_SYMBOL(of_device_unregister);

^ permalink raw reply

* Re: ppc32: Weird process scheduling behaviour with 2.6.24-rc
From: Michel Dänzer @ 2008-01-22 14:56 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Ingo Molnar
In-Reply-To: <1200659696.23161.81.camel@thor.sulgenrain.local>


On Fri, 2008-01-18 at 13:34 +0100, Michel Dänzer wrote:
> This is on a PowerBook5,8.
> 
> In a nutshell, things seem more sluggish in general than with 2.6.23.
> But in particular, processes running at nice levels >0 can get most of
> the CPU cycles available, slowing down processes running at nice level
> 0.

The canonical test case I've come up with is to run an infinite loop
with

sudo -u nobody nice -n 19 sh -c 'while true; do true; done'

This makes my X session (X server running at nice level -1, clients at
0) unusably sluggish (it can even take several seconds to process ctrl-c
to interrupt the infinite loop) with 2.6.24-rc but works as expected
with 2.6.23.

Anybody else seeing this?


> I've seen this since .24-rc5 (the first .24-rc I tried), and it's still
> there with -rc8. I'd be surprised if this kind of behaviour remained
> unfixed for that long if it affected x86, so  I presume it's powerpc
> specific.

Or maybe not... I've bisected this down to the scheduler changes between
df3d80f5a5c74168be42788364d13cf6c83c7b9c/23fd50450a34f2558070ceabb0bfebc1c9604af5 and b5869ce7f68b233ceb81465a7644be0d9a5f3dbb . I'll try and bisect it further, but this is my main work machine, so I can't reboot it too often. I'm CC'ing Ingo in case he has any ideas offhand.


-- 
Earthling Michel Dänzer           |          http://tungstengraphics.com
Libre software enthusiast         |          Debian, X and DRI developer

^ permalink raw reply

* Re: [PATCH v2] create modalias file in sysfs for bus of_platform
From: Stephen Rothwell @ 2008-01-22 14:58 UTC (permalink / raw)
  To: Olaf Hering; +Cc: sparclinux, linuxppc-dev
In-Reply-To: <20080122144053.GA13019@aepfle.de>

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

Hi Olaf,

Thanks for doing this.  Patches to drivers/of should also be cc'd to the
Sparc guys as they share this stuff with is, now.

Also, drivers/macintosh/macio_sysfs.c does this for itself, so that
should probably be removed.

On Tue, 22 Jan 2008 15:40:53 +0100 Olaf Hering <olaf@aepfle.de> wrote:
>
> Create /sys/bus/of_platform/devices/*/modalias file to allow autoloading
> of modules. modalias files are already present for many other bus types.
> 
> Signed-off-by: Olaf Hering <olaf@aepfle.de>
> 
> ---
>  drivers/of/device.c |   19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
> 
> --- a/drivers/of/device.c
> +++ b/drivers/of/device.c
> @@ -86,7 +86,20 @@ static ssize_t dev_show_devspec(struct d
>  	return sprintf(buf, "%s", ofdev->node->full_name);
>  }
>  
> +static ssize_t dev_show_modalias(struct device *dev,
> +				struct device_attribute *attr, char *buf)
> +{
> +	struct of_device *ofdev = to_of_device(dev);
> +	ssize_t len = 0;
> +
> +	len = of_device_get_modalias(ofdev, buf, PAGE_SIZE);

Should you pass (PAGE_SIZE - 1 (or 2)) here?

> +	buf[len] = '\n';
> +	buf[len+1] = 0;
> +	return len+1;
> +}
> +
>  static DEVICE_ATTR(devspec, S_IRUGO, dev_show_devspec, NULL);
> +static DEVICE_ATTR(modalias, S_IRUGO, dev_show_modalias, NULL);
>  
>  /**
>   * of_release_dev - free an of device structure when all users of it are finished.
> @@ -116,6 +129,11 @@ int of_device_register(struct of_device 
>  		return rc;
>  
>  	rc = device_create_file(&ofdev->dev, &dev_attr_devspec);
> +	if (rc) {
> +		device_unregister(&ofdev->dev);
> +		return rc;
> +	}
> +	rc = device_create_file(&ofdev->dev, &dev_attr_modalias);
>  	if (rc)
>  		device_unregister(&ofdev->dev);
>  
> @@ -126,6 +144,7 @@ EXPORT_SYMBOL(of_device_register);
>  void of_device_unregister(struct of_device *ofdev)
>  {
>  	device_remove_file(&ofdev->dev, &dev_attr_devspec);
> +	device_remove_file(&ofdev->dev, &dev_attr_modalias);
>  	device_unregister(&ofdev->dev);
>  }
>  EXPORT_SYMBOL(of_device_unregister);

-- 
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

* framebuffer swap endianess
From: Angelo @ 2008-01-22 15:46 UTC (permalink / raw)
  To: linuxppc-embedded

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

Hi, i'm angelo.

I have just create a framebuffer for an embedded system:
- powerpc (little endian)  with  a GPU (big endian).

I'm working on linux 2.6.22

When i try to execute Xfbdev, it starts but with wrong colors.
I need to swap the RGB format (RRRRRGGGGGGBBBBB) to BGR, respecting the endianess (GGGRRRRRBBBBBGGG).

I know that X loads with some ioctl, the principal settings through framebuffer.
But i'm not sure if framebuffer can inform it on the RGB format.

I also tried to change something on cmap, but nothing changes on display;

So, i hope you can help me. 

Many thanks.


       
---------------------------------

---------------------------------
L'email della prossima generazione? Puoi averla con la nuova Yahoo! Mail

[-- Attachment #2: Type: text/html, Size: 952 bytes --]

^ permalink raw reply

* Re: [PATCH 1/2] Add flash node to mpc8641_hpcn.dts
From: Kumar Gala @ 2008-01-22 16:44 UTC (permalink / raw)
  To: Wade Farnsworth; +Cc: linuxppc-dev
In-Reply-To: <1201019917.5716.154.camel@rhino>


On Jan 22, 2008, at 10:38 AM, Wade Farnsworth wrote:

> Add flash and partition information to mpc8641_hpcn.dts
>
> Signed-off-by: Wade Farnsworth <wfarnsworth@mvista.com>
>
> ---
> arch/powerpc/boot/dts/mpc8641_hpcn.dts |   27 +++++++++++++++++++++++
> 1 file changed, 27 insertions(+)
>
> diff --git a/arch/powerpc/boot/dts/mpc8641_hpcn.dts b/arch/powerpc/ 
> boot/dts/mpc8641_hpcn.dts
> index a719179..679e857 100644
> --- a/arch/powerpc/boot/dts/mpc8641_hpcn.dts
> +++ b/arch/powerpc/boot/dts/mpc8641_hpcn.dts
> @@ -457,4 +457,31 @@
> 				  0 00100000>;
> 		};
> 	};

This really should be under a localbus node.

- k

>
> +
> +	flash@ff800000 {
> +		compatible = "cfi-flash";
> +		reg = <ff800000 00800000>;
> +		bank-width = <2>;
> +		device-width = <2>;
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		partition@0 {
> +			label = "kernel";
> +			reg = <00000000 00300000>;
> +		};
> +		partition@300000 {
> +			label = "firmware b";
> +			reg = <00300000 00100000>;
> +			read-only;
> +		};
> +		partition@400000 {
> +			label = "fs";
> +			reg = <00400000 00300000>;
> +		};
> +		partition@700000 {
> +			label = "firmware a";
> +			reg = <00700000 00100000>;
> +			read-only;
> +		};
> +	};
> };
>

^ permalink raw reply

* Re: framebuffer swap endianess
From: Josh Boyer @ 2008-01-22 16:45 UTC (permalink / raw)
  To: Angelo; +Cc: linuxppc-embedded
In-Reply-To: <323144.65236.qm@web23105.mail.ird.yahoo.com>

On Tue, 22 Jan 2008 16:46:47 +0100 (CET)
Angelo <s104259@yahoo.it> wrote:

> Hi, i'm angelo.
> 
> I have just create a framebuffer for an embedded system:
> - powerpc (little endian)  with  a GPU (big endian).

I think you have those backwards?  PowerPC is big-endian...

josh

^ permalink raw reply

* [PATCH 2/2] MPC8641 HPCN: publish all soc and flash devices
From: Wade Farnsworth @ 2008-01-22 16:47 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linuxppc-dev
In-Reply-To: <1201019917.5716.154.camel@rhino>

Publish all soc and flash devices from the device tree, similar to what
is done for other boards.

Signed-off-by: Wade Farnsworth <wfarnsworth@mvista.com>

---
 arch/powerpc/platforms/86xx/mpc86xx_hpcn.c |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
index 14f4e52..f266264 100644
--- a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
+++ b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
@@ -18,6 +18,7 @@
 #include <linux/kdev_t.h>
 #include <linux/delay.h>
 #include <linux/seq_file.h>
+#include <linux/of_platform.h>
 
 #include <asm/system.h>
 #include <asm/time.h>
@@ -212,6 +213,21 @@ mpc86xx_time_init(void)
 	return 0;
 }
 
+static struct of_device_id mpc86xx_ids[] = {
+	{ .type = "soc", },
+	{ .compatible = "soc", },
+	{ .compatible = "cfi-flash", },
+	{},
+};
+
+static int __init mpc86xx_publish_devices(void)
+{
+	of_platform_bus_probe(NULL, mpc86xx_ids, NULL);
+
+	return 0;
+}
+device_initcall(mpc86xx_publish_devices);
+
 define_machine(mpc86xx_hpcn) {
 	.name			= "MPC86xx HPCN",
 	.probe			= mpc86xx_hpcn_probe,

^ permalink raw reply related

* Re: [PATCH 1/2] Add flash node to mpc8641_hpcn.dts
From: Wade Farnsworth @ 2008-01-22 16:47 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linuxppc-dev
In-Reply-To: <06AA1424-0697-4AF8-B843-945211A5B54A@kernel.crashing.org>

On Tue, 2008-01-22 at 10:44 -0600, Kumar Gala wrote:
> On Jan 22, 2008, at 10:38 AM, Wade Farnsworth wrote:
> 
> > Add flash and partition information to mpc8641_hpcn.dts
> >
> > Signed-off-by: Wade Farnsworth <wfarnsworth@mvista.com>
> >
> > ---
> > arch/powerpc/boot/dts/mpc8641_hpcn.dts |   27 +++++++++++++++++++++++
> > 1 file changed, 27 insertions(+)
> >
> > diff --git a/arch/powerpc/boot/dts/mpc8641_hpcn.dts b/arch/powerpc/ 
> > boot/dts/mpc8641_hpcn.dts
> > index a719179..679e857 100644
> > --- a/arch/powerpc/boot/dts/mpc8641_hpcn.dts
> > +++ b/arch/powerpc/boot/dts/mpc8641_hpcn.dts
> > @@ -457,4 +457,31 @@
> > 				  0 00100000>;
> > 		};
> > 	};
> 
> This really should be under a localbus node.
> 
> - k
> 

Ok. I'll fix it up and resend.

--Wade

^ permalink raw reply

* Re: [PATCH 2/2] MPC8641 HPCN: publish all soc and flash devices
From: Kumar Gala @ 2008-01-22 16:50 UTC (permalink / raw)
  To: Wade Farnsworth; +Cc: linuxppc-dev
In-Reply-To: <1201020432.5716.159.camel@rhino>


On Jan 22, 2008, at 10:47 AM, Wade Farnsworth wrote:

> Publish all soc and flash devices from the device tree, similar to  
> what
> is done for other boards.
>
> Signed-off-by: Wade Farnsworth <wfarnsworth@mvista.com>
>
> ---
> arch/powerpc/platforms/86xx/mpc86xx_hpcn.c |   16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
> diff --git a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c b/arch/ 
> powerpc/platforms/86xx/mpc86xx_hpcn.c
> index 14f4e52..f266264 100644
> --- a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
> +++ b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
> @@ -18,6 +18,7 @@
> #include <linux/kdev_t.h>
> #include <linux/delay.h>
> #include <linux/seq_file.h>
> +#include <linux/of_platform.h>
>
> #include <asm/system.h>
> #include <asm/time.h>
> @@ -212,6 +213,21 @@ mpc86xx_time_init(void)
> 	return 0;
> }
>
> +static struct of_device_id mpc86xx_ids[] = {
> +	{ .type = "soc", },
> +	{ .compatible = "soc", },
> +	{ .compatible = "cfi-flash", },
> +	{},
> +};
> +
> +static int __init mpc86xx_publish_devices(void)
> +{
> +	of_platform_bus_probe(NULL, mpc86xx_ids, NULL);
> +
> +	return 0;
> +}
> +device_initcall(mpc86xx_publish_devices);
> +

this should look more like:

+static struct of_device_id __initdata of_bus_ids[] = {
+       { .compatible = "simple-bus" },
+       {},
+};
+
+static int __init declare_of_platform_devices(void)
+{
+       of_platform_bus_probe(NULL, of_bus_ids, NULL);
+       return 0;
+}
+machine_device_initcall(mpc86xx_hpcn, mpc86xx_publish_devices);
+


>
> define_machine(mpc86xx_hpcn) {
> 	.name			= "MPC86xx HPCN",
> 	.probe			= mpc86xx_hpcn_probe,
>

^ permalink raw reply

* Re: [PATCH 1/2] Add flash node to mpc8641_hpcn.dts
From: Kumar Gala @ 2008-01-22 16:49 UTC (permalink / raw)
  To: Wade Farnsworth; +Cc: linuxppc-dev
In-Reply-To: <1201020463.5716.161.camel@rhino>


On Jan 22, 2008, at 10:47 AM, Wade Farnsworth wrote:

> On Tue, 2008-01-22 at 10:44 -0600, Kumar Gala wrote:
>> On Jan 22, 2008, at 10:38 AM, Wade Farnsworth wrote:
>>
>>> Add flash and partition information to mpc8641_hpcn.dts
>>>
>>> Signed-off-by: Wade Farnsworth <wfarnsworth@mvista.com>
>>>
>>> ---
>>> arch/powerpc/boot/dts/mpc8641_hpcn.dts |   27 +++++++++++++++++++++ 
>>> ++
>>> 1 file changed, 27 insertions(+)
>>>
>>> diff --git a/arch/powerpc/boot/dts/mpc8641_hpcn.dts b/arch/powerpc/
>>> boot/dts/mpc8641_hpcn.dts
>>> index a719179..679e857 100644
>>> --- a/arch/powerpc/boot/dts/mpc8641_hpcn.dts
>>> +++ b/arch/powerpc/boot/dts/mpc8641_hpcn.dts
>>> @@ -457,4 +457,31 @@
>>> 				  0 00100000>;
>>> 		};
>>> 	};
>>
>> This really should be under a localbus node.
>>
>> - k
>>
>
> Ok. I'll fix it up and resend.

look at the mpc8313erdb.dts (in my tree, as an example).

- k

^ permalink raw reply

* [PATCH 1/2] Add flash node to mpc8641_hpcn.dts
From: Wade Farnsworth @ 2008-01-22 16:38 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linuxppc-dev

Add flash and partition information to mpc8641_hpcn.dts

Signed-off-by: Wade Farnsworth <wfarnsworth@mvista.com>

---
 arch/powerpc/boot/dts/mpc8641_hpcn.dts |   27 +++++++++++++++++++++++
 1 file changed, 27 insertions(+)
 
diff --git a/arch/powerpc/boot/dts/mpc8641_hpcn.dts b/arch/powerpc/boot/dts/mpc8641_hpcn.dts
index a719179..679e857 100644
--- a/arch/powerpc/boot/dts/mpc8641_hpcn.dts
+++ b/arch/powerpc/boot/dts/mpc8641_hpcn.dts
@@ -457,4 +457,31 @@
 				  0 00100000>;
 		};
 	};
+
+	flash@ff800000 {
+		compatible = "cfi-flash";
+		reg = <ff800000 00800000>;
+		bank-width = <2>;
+		device-width = <2>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		partition@0 {
+			label = "kernel";
+			reg = <00000000 00300000>;
+		};
+		partition@300000 {
+			label = "firmware b";
+			reg = <00300000 00100000>;
+			read-only;
+		};
+		partition@400000 {
+			label = "fs";
+			reg = <00400000 00300000>;
+		};
+		partition@700000 {
+			label = "firmware a";
+			reg = <00700000 00100000>;
+			read-only;
+		};
+	};
 };

^ permalink raw reply related

* Re: [PATCH] Various new ibm405 DCRN #defines
From: Joshua Williams @ 2008-01-22 17:08 UTC (permalink / raw)
  To: benh; +Cc: linuxppc-dev
In-Reply-To: <1200956274.6807.12.camel@pasglop>

Benjamin Herrenschmidt wrote:
> On Mon, 2008-01-21 at 16:43 -0600, Joshua Williams wrote:
>> Various new ibm405 DCRN #defines.
>>
>>      Signed-off-by: Joshua Williams <joshua.williams@qlogic.com>
> 
> May I ask what for ? :-) Also, it's all arch/ppc, not arch/powerpc...
> nothing we want to improve to much on at this stage unless there's a
> really good reason.

The 405x #defines were incomplete and this was meant to
make them a bit tighter.  Since arch/ppc is in life support
mode this can wait until the 405x stuff gets moved over to
arch/powerpc.

Thanks!

- Josh

>> ---
>>   arch/ppc/platforms/4xx/ibm405ep.h  |    3 +++
>>   arch/ppc/platforms/4xx/ibm405gp.h  |    9 +++++++++
>>   arch/ppc/platforms/4xx/ibm405gpr.h |    9 +++++++++
>>   include/asm-ppc/ibm405.h           |   27 +++++++++++++++++++++++++++
>>   4 files changed, 48 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/ppc/platforms/4xx/ibm405ep.h 
>> b/arch/ppc/platforms/4xx/ibm405ep.h
>> index 3ef20a5..d82a4c7 100644
>> --- a/arch/ppc/platforms/4xx/ibm405ep.h
>> +++ b/arch/ppc/platforms/4xx/ibm405ep.h
>> @@ -139,6 +139,9 @@
>>   #define DCRN_UIC0_BASE          0x0C0
>>   #define UIC0 DCRN_UIC0_BASE
>>
>> +/* DCRN_SDRAM0_BASE offsets - general 405 offsets in asm/ibm405.h */
>> +#define DCRN_SDRAM0_STATUS	0x24	/* SDRAM Controller Status */
>> +
>>   #include <asm/ibm405.h>
>>
>>   #endif				/* __ASM_IBM405EP_H__ */
>> diff --git a/arch/ppc/platforms/4xx/ibm405gp.h 
>> b/arch/ppc/platforms/4xx/ibm405gp.h
>> index 9f15e55..9f7e850 100644
>> --- a/arch/ppc/platforms/4xx/ibm405gp.h
>> +++ b/arch/ppc/platforms/4xx/ibm405gp.h
>> @@ -142,6 +142,15 @@
>>   #define DCRN_UIC0_BASE		0x0C0
>>   #define UIC0 DCRN_UIC0_BASE
>>
>> +/* DCRN_SDRAM0_BASE offsets - general 405 offsets in asm/ibm405.h */
>> +#define DCRN_SDRAM0_BESR0	0x00	/* Bus Error Syndrome Reg 0 */
>> +#define DCRN_SDRAM0_BESR1	0x08	/* Bus Error Syndrome Reg 1 */
>> +#define DCRN_SDRAM0_BEAR	0x10	/* Bus Error Address Reg */
>> +#define DCRN_SDRAM0_B2CR	0x48	/* Memory Bank 2 Configuration Reg */
>> +#define DCRN_SDRAM0_B3CR	0x4c	/* Memory Bank 3 Configuration Reg */
>> +#define DCRN_SDRAM0_ECCCFG	0x94	/* ECC Configuration */
>> +#define DCRN_SDRAM0_ECCESR	0x98	/* ECC Error Status */
>> +
>>   #include <asm/ibm405.h>
>>
>>   #endif				/* __ASM_IBM405GP_H__ */
>> diff --git a/arch/ppc/platforms/4xx/ibm405gpr.h 
>> b/arch/ppc/platforms/4xx/ibm405gpr.h
>> index 9e01f15..6f39042 100644
>> --- a/arch/ppc/platforms/4xx/ibm405gpr.h
>> +++ b/arch/ppc/platforms/4xx/ibm405gpr.h
>> @@ -142,6 +142,15 @@
>>   #define DCRN_UIC0_BASE		0x0C0
>>   #define UIC0 DCRN_UIC0_BASE
>>
>> +/* DCRN_SDRAM0_BASE offsets - general 405 offsets in asm/ibm405.h */
>> +#define DCRN_SDRAM0_BESR0	0x00	/* Bus Error Syndrome Reg 0 */
>> +#define DCRN_SDRAM0_BESR1	0x08	/* Bus Error Syndrome Reg 1 */
>> +#define DCRN_SDRAM0_BEAR	0x10	/* Bus Error Address Reg */
>> +#define DCRN_SDRAM0_B2CR	0x48	/* Memory Bank 2 Configuration Reg */
>> +#define DCRN_SDRAM0_B3CR	0x4c	/* Memory Bank 3 Configuration Reg */
>> +#define DCRN_SDRAM0_ECCCFG	0x94	/* ECC Configuration */
>> +#define DCRN_SDRAM0_ECCESR	0x98	/* ECC Error Status */
>> +
>>   #include <asm/ibm405.h>
>>
>>   #endif				/* __ASM_IBM405GPR_H__ */
>> diff --git a/include/asm-ppc/ibm405.h b/include/asm-ppc/ibm405.h
>> index 4e5be9e..04aaae6 100644
>> --- a/include/asm-ppc/ibm405.h
>> +++ b/include/asm-ppc/ibm405.h
>> @@ -135,6 +135,26 @@
>>   #ifdef DCRN_EBC_BASE
>>   #define DCRN_EBCCFGADR	(DCRN_EBC_BASE + 0x0)	/* Peripheral Controller 
>> Address */
>>   #define DCRN_EBCCFGDATA	(DCRN_EBC_BASE + 0x1)	/* Peripheral Controller 
>> Data */
>> +#define DCRN_EBC_PB0CR	0x00	/* Peripheral Bank 0 Config Reg */
>> +#define DCRN_EBC_PB1CR	0x01	/* Peripheral Bank 1 Config Reg */
>> +#define DCRN_EBC_PB2CR	0x02	/* Peripheral Bank 2 Config Reg */
>> +#define DCRN_EBC_PB3CR	0x03	/* Peripheral Bank 3 Config Reg */
>> +#define DCRN_EBC_PB4CR	0x04	/* Peripheral Bank 4 Config Reg */
>> +#define DCRN_EBC_PB5CR	0x05	/* Peripheral Bank 5 Config Reg */
>> +#define DCRN_EBC_PB6CR	0x06	/* Peripheral Bank 6 Config Reg */
>> +#define DCRN_EBC_PB7CR	0x07	/* Peripheral Bank 7 Config Reg */
>> +#define DCRN_EBC_PB0AP	0x10	/* Peripheral Bank 0 Access Parameters */
>> +#define DCRN_EBC_PB1AP	0x11	/* Peripheral Bank 1 Access parameters */
>> +#define DCRN_EBC_PB2AP	0x12	/* Peripheral Bank 2 Access Parameters */
>> +#define DCRN_EBC_PB3AP	0x13	/* Peripheral Bank 3 Access Parameters */
>> +#define DCRN_EBC_PB4AP	0x14	/* Peripheral Bank 4 Access Parameters */
>> +#define DCRN_EBC_PB5AP	0x15	/* Peripheral Bank 5 Access Parameters */
>> +#define DCRN_EBC_PB6AP	0x16	/* Peripheral Bank 6 Access Parameters */
>> +#define DCRN_EBC_PB7AP	0x17	/* Peripheral Bank 7 Access Parameters */
>> +#define DCRN_EBC_PBEAR	0x20	/* Peripheral Bus Error Address Reg */
>> +#define DCRN_EBC_PBESR0	0x21	/* Peripheral Bus Error Status Reg 0 */
>> +#define DCRN_EBC_PBESR1	0x22	/* Peripheral Bus Error Status Reg 1 */
>> +#define DCRN_EBC_EPCR	0x23	/* External Peripheral Control Reg */
>>   #endif
>>
>>   #ifdef DCRN_EXIER_BASE
>> @@ -286,6 +306,13 @@
>>   #ifdef DCRN_SDRAM0_BASE
>>   #define DCRN_SDRAM0_CFGADDR	(DCRN_SDRAM0_BASE + 0x0)	/* Memory 
>> Controller Address */
>>   #define DCRN_SDRAM0_CFGDATA	(DCRN_SDRAM0_BASE + 0x1)	/* Memory 
>> Controller Data */
>> +#define DCRN_SDRAM0_CFG		0x20	/* SDRAM Configuration */
>> +#define DCRN_SDRAM0_STATUS	0x24	/* SDRAM Controller Status */
>> +#define DCRN_SDRAM0_RTR		0x30	/* Refresh Timer Reg */
>> +#define DCRN_SDRAM0_PMIT	0x34	/* Power Management Idle Timer */
>> +#define DCRN_SDRAM0_B0CR	0x40	/* Memory Bank 0 Configuration Reg */
>> +#define DCRN_SDRAM0_B1CR	0x44	/* Memory Bank 1 Configuration Reg */
>> +#define DCRN_SDRAM0_TR		0x80	/* SDRAM Timing Reg */
>>   #endif
>>
>>   #ifdef DCRN_OCM0_BASE
>> _______________________________________________
>> Linuxppc-dev mailing list
>> Linuxppc-dev@ozlabs.org
>> https://ozlabs.org/mailman/listinfo/linuxppc-dev
> 
> 

^ permalink raw reply

* Re: [PATCH] Various new ibm405 DCRN #defines
From: Josh Boyer @ 2008-01-22 17:10 UTC (permalink / raw)
  To: Joshua Williams; +Cc: linuxppc-dev
In-Reply-To: <47962316.8040709@qlogic.com>

On Tue, 22 Jan 2008 11:08:38 -0600
Joshua Williams <joshua.williams@qlogic.com> wrote:

> Benjamin Herrenschmidt wrote:
> > On Mon, 2008-01-21 at 16:43 -0600, Joshua Williams wrote:
> >> Various new ibm405 DCRN #defines.
> >>
> >>      Signed-off-by: Joshua Williams <joshua.williams@qlogic.com>
> > 
> > May I ask what for ? :-) Also, it's all arch/ppc, not arch/powerpc...
> > nothing we want to improve to much on at this stage unless there's a
> > really good reason.
> 
> The 405x #defines were incomplete and this was meant to
> make them a bit tighter.  Since arch/ppc is in life support
> mode this can wait until the 405x stuff gets moved over to
> arch/powerpc.

Which 405x stuff?  Walnut is moved over already.  Other boards will
need to be ported by people that have those boards.

josh

^ permalink raw reply

* RE: Generated xilinx linux 2.6  image sections
From: Stephen Neuendorffer @ 2008-01-22 17:40 UTC (permalink / raw)
  To: greenlean, linuxppc-embedded
In-Reply-To: <15018508.post@talk.nabble.com>


That would do it!
What's strange is that the testapps linked into the second bank by
default, which *happened* to work.

Steve

> -----Original Message-----
> From: linuxppc-embedded-bounces+stephen=3Dneuendorffer.name@ozlabs.org
[mailto:linuxppc-embedded-
> bounces+stephen=3Dneuendorffer.name@ozlabs.org] On Behalf Of greenlean
> Sent: Tuesday, January 22, 2008 5:29 AM
> To: linuxppc-embedded@ozlabs.org
> Subject: RE: Generated xilinx linux 2.6 image sections
>=20
>=20
> Now It's running the problem was the DDR controller I was including
the 512
> one but I'm working with a 256 DDR module .......
>=20
> Thanks for the orientation, really usefull.
>=20
> Bye.
>=20
>=20
> Stephen Neuendorffer wrote:
> >
> > The testapps are generated using a different linker script.
> >
> > Based on what you sent out, it looks like your EDK design has a
memory
> > at 0x10000000, but this is
> > not reflected in the linux image you've generated.  This makes me
> > suspect that you haven't generated the BSP and copied the
appropriate
> > xparameters file over xparameters_xup.h (assuming you are using
> > CONFIG_XILINX_XUPV2P).
> >
> > Steve
> >
> >> -----Original Message-----
> >> From:
linuxppc-embedded-bounces+stephen=3Dneuendorffer.name@ozlabs.org
> > [mailto:linuxppc-embedded-
> >> bounces+stephen=3Dneuendorffer.name@ozlabs.org] On Behalf Of
greenlean
> >> Sent: Monday, January 21, 2008 5:06 AM
> >> To: linuxppc-embedded@ozlabs.org
> >> Subject: Generated xilinx linux 2.6 image sections
> >>
> >>
> >> Hi all,
> >>
> >> I'm trying to boot the 2.6 xilinx kernel downloaded from their git
> > server in
> >> the XUPV2P board I'm really having troubles (I can't see anything
in
> > the
> >> minicom console terminal). I'm not seeing anything, neither the
> > ucompressing
> >> kernel string nor the prompt with the memory addresses that kernel
> > prompt at
> >> first time, so I have started to distrust of anything.
> >>
> >>
> >> Linuxppc-embedded@ozlabs.org
> >> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
> >
> >
> > _______________________________________________
> > Linuxppc-embedded mailing list
> > Linuxppc-embedded@ozlabs.org
> > https://ozlabs.org/mailman/listinfo/linuxppc-embedded
> >
> >
>=20
>=20
>=20
> --
> View this message in context:
http://www.nabble.com/Generated-xilinx-linux-2.6--image-sections-
> tp14997109p15018508.html
> Sent from the linuxppc-embedded mailing list archive at Nabble.com.
>=20
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded

^ permalink raw reply

* [PATCH] [POWERPC] mpc52xx: clean up Kconfig
From: Grant Likely @ 2008-01-22 18:22 UTC (permalink / raw)
  To: linuxppc-dev

From: Grant Likely <grant.likely@secretlab.ca>

Put all the mpc5200 board config option behind a menu item to get them
out of the top level of the platform support list

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
---

 arch/powerpc/platforms/52xx/Kconfig |   41 +++++++++++++----------------------
 1 files changed, 15 insertions(+), 26 deletions(-)

diff --git a/arch/powerpc/platforms/52xx/Kconfig b/arch/powerpc/platforms/52xx/Kconfig
index 733a806..515f244 100644
--- a/arch/powerpc/platforms/52xx/Kconfig
+++ b/arch/powerpc/platforms/52xx/Kconfig
@@ -1,31 +1,14 @@
 config PPC_MPC52xx
-	bool
+	bool "52xx-based boards"
+	depends on PPC_MULTIPLATFORM && PPC32
 	select FSL_SOC
 	select PPC_CLOCK
-	default n
-
-config PPC_MPC5200
-	bool
-	select PPC_MPC52xx
-	default n
-
-config PPC_MPC5200_BUGFIX
-	bool "MPC5200 (L25R) bugfix support"
-	depends on PPC_MPC5200
-	default n
-	help
-	  Enable workarounds for original MPC5200 errata.  This is not required
-	  for MPC5200B based boards.
-
-	  It is safe to say 'Y' here
 
 config PPC_MPC5200_SIMPLE
 	bool "Generic support for simple MPC5200 based boards"
-	depends on PPC_MULTIPLATFORM && PPC32
-	select PPC_MPC5200
+	depends on PPC_MPC52xx
 	select DEFAULT_UIMAGE
 	select WANT_DEVICE_TREE
-	default n
 	help
 	  This option enables support for a simple MPC52xx based boards which
 	  do not need a custom platform specific setup. Such boards are
@@ -43,17 +26,23 @@ config PPC_MPC5200_SIMPLE
 
 config PPC_EFIKA
 	bool "bPlan Efika 5k2. MPC5200B based computer"
-	depends on PPC_MULTIPLATFORM && PPC32
+	depends on PPC_MPC52xx
 	select PPC_RTAS
 	select RTAS_PROC
-	select PPC_MPC52xx
 	select PPC_NATIVE
-	default n
 
 config PPC_LITE5200
 	bool "Freescale Lite5200 Eval Board"
-	depends on PPC_MULTIPLATFORM && PPC32
-	select PPC_MPC5200
+	depends on PPC_MPC52xx
 	select DEFAULT_UIMAGE
 	select WANT_DEVICE_TREE
-	default n
+
+config PPC_MPC5200_BUGFIX
+	bool "MPC5200 (L25R) bugfix support"
+	depends on PPC_MPC52xx
+	help
+	  Enable workarounds for original MPC5200 errata.  This is not required
+	  for MPC5200B based boards.
+
+	  It is safe to say 'Y' here
+

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox