Quantcast
Channel: Embedded Software (Read Only)
Viewing all articles
Browse latest Browse all 25965

Forum Post: gpmc_cs_request exception

$
0
0

Hello,

I am using kernel module for testing and get exception, when using gpmc_cs_request() call.

Does anyone have any idea ?


~ # insmod sram_test.ko
[ 22.299072] sramtest_init
[ 22.301879] Unable to handle kernel NULL pointer dereference at virtual address 00000000
[ 22.310424] pgd = cd3f4000


static void __iomem *vaddr;

#define SRAM_CS 2
#define SRAM_ADDR 0x18000000
void __iomem *sram_map_addr;


static struct cdev sramtest_cdev;

static struct file_operations sramtest_fops =
{
.owner = THIS_MODULE,
.unlocked_ioctl = sramtest_ioctl,

};

static int __init sramtest_init(void)

{

   dev_t dev;
   int ret = 0;
   int i = 0;
   int val = 0;
   unsigned long startaddr = 0;


   dev = MKDEV(SRAMTEST_MAJOR, SRAMTEST_MINOR);

   ret = register_chrdev_region(dev, 1, "sramtest");
   if(ret)
   {
    printk("cdev fail on register\n");
   return ret;
   }

   cdev_init(&sramtest_cdev, &sramtest_fops);
   sramtest_cdev.owner = THIS_MODULE;
   sramtest_cdev.ops = &sramtest_fops;

   ret = cdev_add(&sramtest_cdev, dev, 1);
   if(ret)
   {
     unregister_chrdev_region(dev, 1);
     return ret;
   }
  ret = gpmc_cs_request(SRAM_CS, SZ_1M - 1, (unsigned long *) &startaddr);

  vaddr = ioremap_nocache(SRAM_ADDR, SZ_1M);

  if (vaddr == NULL)
  {
    printk ("Failed to map address\n");
   return -1;  }

}

return 0;

}

static void __exit sramtest_exit(void)
{
   iounmap(vaddr);
  cdev_del(&sramtest_cdev);
  unregister_chrdev_region(MKDEV(SRAMTEST_MAJOR, SRAMTEST_MINOR), 1);

}

module_init(sramtest_init);
module_exit(sramtest_exit);

Thanks,

Ran


Viewing all articles
Browse latest Browse all 25965

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>