Thread (12 messages) 12 messages, 3 authors, 2007-12-04

Re: Unable to Read PPC440EPx Board ID thru Board Control and Status Registers (BCSR)

From: Josh Boyer <hidden>
Date: 2007-11-28 03:25:56

On Tue, 27 Nov 2007 02:47:45 -0800 (PST)
Dell Query [off-list ref] wrote:
Hi,

I am creating a simple program which will try to read the board ID of the PPC440EPx thru BCSR but when I load it, it gives me "Data Read PLB Error". 

I am not sure if I missed out something.

I would really appreciate it if somebody could help me on this.

I have posted the source code below, as well as the complete message.

Many thanks!

SOURCE CODE:
----------------------------------------------------------------------
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/ioport.h>
#include <linux/delay.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/platform_device.h>
#include <asm/irq.h>
#include <asm/io.h>
#include <linux/i2c.h>
#include <linux/i2c-id.h>
#include <asm/ocp.h>
#include <asm/ibm4xx.h>

MODULE_LICENSE("GPL");

#define BCSR_BASE   0xC0002000
This is wrong.  It's 0x1C0002000.
#define BCSR0       0
#define BCSR1       1
#define BCSR2       2

#define USER_LED    0x2
#define SIZE_TO_MAP 10

#define LED_ON      0

uint __iomem *bcsrbase = NULL;

static int __init initFunction(void) {
   uint tmp;
   printk("<1> Calling init function.\n");
   printk("<1> bcsrbase value %p...\n",bcsrbase);
   printk("<1> Remapping %x...\n",BCSR_BASE);
   /*map*/
   bcsrbase = ioremap(BCSR_BASE, SIZE_TO_MAP);
Since this seems to be arch/ppc, use ioremap64.

josh
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help