On Wed, Oct 22, 2008 at 02:10:12PM +0200, Mirsad Vejseli wrote:
> hello at all,
> 
> at the moment I use development board ML410 with montavistalinux. 
> 
> I have a problem, please help me! 
> 
> I try to write a linux-driver for writing or reading registers.
> I have a ace-file, which contents Linux and EDK-project with a component 
> (IP-wizard) which is added on a PLB-bus.
> I also have a driver-construct which I can register (insmod driver.ko) into 
> the linux-Kernel only if i do not use functions to write or read the bus 
> (XIO_out32() or XIO_in32 ()  ). If I use this function after registering the 
> driver I got an error.
> If I try to insert the modul with Insmod driver.ko I get a bus error!  
> 
> my driver is similar to 
> http://ozlabs.org/pipermail/linuxppc-embedded/2006-January/021578.html
>  
> 
> her the two importent functions  of the driver:
> 

Try something like this:

#define REG_BASE        (u32) XPAR_komponente_0_BASEADDR // defined in 
xparameters_ml41x.h 
#define REG_HIGH        (u32) XPAR_komponente_0_HIGHADDR // defined in 
xparameters_ml41x.h 

#define reg0_upper      (u32) komponente_SLV_REG0_OFFSET // 32-bit register / 
defined in komponente.h
#define reg1_upper      (u32) komponente_SLV_REG1_OFFSET // 32-bit register / 
defined in komponente.h
#define reg2_upper      (u32) komponente_SLV_REG2_OFFSET // 32-bit register / 
defined in komponente.h

static int __init meintreiber_init(void)
{
        int rtn, upper;

        reg_remapped_address = (u32) ioremap(REG_BASE, REG_HIGH - REG_BASE + 1);
        if (!reg_remapped_address) {
                printk("error mapping registers\n");
                return -ENOMEM;
        }

        upper = in_be32(reg_mapped_address + reg1_upper);
        printk("Data in: %.8X\n", upper);
        return 0;
}
 

g.
_______________________________________________
Linuxppc-embedded mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-embedded

Reply via email to