Accessing Device Registers on Power PC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I am trying to read / write to device registers from my module on a Power PC
# cat /proc/cpuinfo 
processor       : 0
cpu             : 8xx
clock           : 66MHz
bus clock       : 66MHz
revision        : 0.0
bogomips        : 66.24
zero pages      : total: 0 (0Kb) current: 0 (0Kb) hits: 0/0 (0%)
The start (physical) address of register is 0x10100000 and extends for 0x3000. I can read these
locations from ppcboot, but when I try from module running under Linux kernel, I get

Oops: kernel access of bad area, sig: 11
NIP: C2811100 XER: A0000077 LR: C28110FC SP: C0991DC0 REGS: c0991d10 TRAP: 0300
MSR: 00009032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
DAR: 82811000, DSISR: 00012080
TASK = c0990000[15] 'insmod' Last syscall: 128 
last math 00000000 last altivec 00000000
GPR00: C28110FC C0991DC0 C0990000 0000001A 82811000 00000001 C0100000 0000001A 
GPR08: C0E6F060 00000000 FFF02830 C0991D10 FFFFFFFF 1002D984 00FF1C00 007FFF1D 
GPR16: 00000000 00000001 00000000 00000001 00009032 00991E80 C0991DE8 C0E70600 
GPR24: 00000003 00000060 C0991E4C 1002D858 FFFFFFEA FFF00000 C095A000 C2811000 
Call backtrace: 
C28110FC C0010104 C00025BC 1002D858 10003578 1000462C 10004870 
0FED9DBC 00000000 
SIGSEGV
The br4 and or4 registers are set in ppcboot for chip select and just before I try to access
0x10100000 memory location from module, these values are set (ratined) correctly.
Address of immap->im_memctl.memc_br4    = fff00120
Address of immap->im_memctl.memc_or4    = fff00124
Contents of immap->im_memctl.memc_br4   = 10100801
Contents of immap->im_memctl.memc_or4   = ffff85a0
I have tried to access memory with physical address and also tried using virtuall address
(__va()).

What is I am missing ? Please help.

=====
Usman S. Ansari
Linux OS & Device Drivers

__________________________________________________
Do You Yahoo!?
Yahoo! - Official partner of 2002 FIFA World Cup
http://fifaworldcup.yahoo.com
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux