[Suzaku:00595] Re: キャラクタデバイスのドライバーの作成 => 上手くいきました
Abe
email@hidden
2006年 7月 14日 (金) 17:02:40 JST
abe です。
お陰さまで上手くいきました。
ソースは
ssize_t s_write(struct file *filp, const char *buf, size_t count, loff_t
*f_pos)
{
ssize_t retval = 0;
void * addr;
addr = (void *)ioremap(0xF0F00000, 1);
if(copy_from_user(addr, buf, count)){
retval = -EFAULT;
}else{
retval = count;
}
iounmap(addr);
return retval;
}
です。
私には良く分からないのですが
copy_from_user() の所を iob() や write() ですと Oopになってしまいました。
以上、報告します。
ありがとうございました。
----- Original Message -----
From: "Yasushi SHOJI" <email@hidden>
To: "SUZAKU general discussion list" <email@hidden>
Sent: Friday, July 14, 2006 3:00 PM
Subject: [Suzaku:00594] Re: キャラクタデバイスのドライバーの作成
> At Fri, 14 Jul 2006 14:05:14 +0900,
> Abe wrote:
> [...]
>> 直接アドレスに書いてみましたら
>>
>> Oops: kernel access of bad area, sig: 11
>> NIP: C38011BC XER: 00000000 LR: C0034424 SP: C1ECDF20 REGS: c1ecde70
>> TRAP:
>> 0800dMSR: 00008030 EE: 1 PR: 0 FP: 0 ME: 0 IR/DR: 11
>> DEAR: F0F00004, ESR: 00800000
>> TASK = c1ecc000[44] 'suzaku_read' Last syscall: 4
>> last math 00000000 last altivec 00000000
>> GPR00: 00000040 C1ECDF20 C1ECC000 00000001 7FFFF818 00000001 C03DA5C0
>> 00000000
>> GPR08: 00000000 F0F00004 0000000C 00000002 30000600 00000000 7FFFFED0
>> 30005000
>> GPR16: 30005140 00000002 300050A0 000000E4 00008030 01ECDF40 00000000
>> C0002948
>> GPR24: C00026A0 30000CEC 30000240 300152DC 7FFFF818 FFFFFFEA C03DA5A0
>> 00000001
>> Call backtrace:
>> C001A228 C00026FC 100005B0 10000AF8 30025CB4 30025CD0 10000480
>> Memory fault
>>
>> と言う結果になってしまいました。
>
> SUZAKU-Vだったんですね。SUZAKU-VのCPU(powerpc)は MMUの機構を持っていま
> すので、保護されている領域にアクセスすると保護違反になります。
>
> ioremap()を参照してください。
> --
> yashi
> _______________________________________________
> suzaku mailing list
> email@hidden
> http://lists.atmark-techno.com/mailman/listinfo/suzaku
>
suzaku メーリングリストの案内