Linux Kernel Using ioremap().
This would be the reason that my brain was totally fried last night.
this would be an example of the code:
Now, the issue is this: If I unregister_my_system then attempt to register_my_system I hang. Sometimes I get an error from the kernel:
static void *mmio, *control;
int32_t register_my_system(MY_SYSTEM_USER *user)
// request memory region is done at insmod time and _should_not_ be where the problem is.
mmio = ioremap(0x080C0000, 0x100);
control = mmio + 0x28;
iowrite16(6, control); // enables bits 2 and 3 (one of these is an IRQ enable)
void unregister_my_system(MY_SYSTEM_USER *user)
control = NULL;
mmio = NULL;
but this is the ONLY thing I can get from it. The actual virtual address is 0xCAA6C028 and is that address each time I reboot and register with the driver.
Originally Posted by Linux Kernel
So, my question is what could possibly be hanging the system? I have tried absolutely everything I can think of but still cannot figure this one out. Any help would be greatly appreciated.