[Armadillo:04062] Re: armadillo-500で/dev/mem、mmap()でのアクセスについて

藤岡 email@hidden
2009年 2月 23日 (月) 13:17:13 JST


菅野様

 応答が大変遅くなりました。
 藤岡です。

 ご教示ありがとうございます。
 助かります。

 下記、ご連絡を頂けた事で、0xB800_xxxxに対する/dev/mem、mmap()
を使ったアクセスはあきらめました。

 ご報告になるのですが、今の所、0xB800_xxxxの読み書きを行うための
デバイスドライバをatmark-dist 開発者ガイド(atmark-dist_developers_
guide_ja-1.0.4.pdf)の11.新規デバイスドライバの追加方法の項を参考に
作成して、様子を見ております。

 抜粋になるのですが、以下のようなロジックで様子を見ております。

1.0xB800_xxxxの読み出し

readData = __raw_readl(IO_ADDRESS(adrs));

2.0xB800_xxxxへの書き込み

__raw_writel(wrData, IO_ADDRESS(adrs));

 linux-2.6.18/include/asm-arm/arch-mxc/mx31.hに定義されている
以下のデファインから、参考になりそうなソースを検索して作りました。

/*
 * NAND, SDRAM, WEIM, M3IF, EMI controllers
 */
#define X_MEMC_BASE_ADDR 0xB8000000
#define X_MEMC_BASE_ADDR_VIRT 0xD4320000
#define X_MEMC_SIZE  SZ_64K

#define NFC_BASE_ADDR  (X_MEMC_BASE_ADDR + 0x0000)
#define ESDCTL_BASE_ADDR (X_MEMC_BASE_ADDR + 0x1000)
#define WEIM_BASE_ADDR  (X_MEMC_BASE_ADDR + 0x2000)
#define M3IF_BASE_ADDR  (X_MEMC_BASE_ADDR + 0x3000)
#define EMI_CTL_BASE_ADDR (X_MEMC_BASE_ADDR + 0x4000)

 また、#define IO_ADDRESS(x)の定義内容も関連しているように
見えました。

 以上です。
 重ねて、ご連絡ありがとうございました。

----- Original Message ----- 
From: "Hiroki Sugano" <email@hidden>
To: "Armadillo series general discussion list" 
<email@hidden>
Sent: Friday, February 20, 2009 1:09 PM
Subject: [Armadillo:04060] Re: armadillo-500で/dev/mem、mmap()でのアクセスについて


> 藤岡さん
>
> [Armadillo:03387] [Armadillo-500] 外部拡張バスについて
> の菅野です.
>
> 0xB8001000 から 0xB8004000 の領域というと,いくつかの設定レジスタでしょうか. 
> 
> 私の場合,結局,Linux からは読み書きできなかったので,ブートローダの時点で
> これらのレジスタの値をセットしました.
>
> 簡単にする場合,ジャンパピンの設定で hermit のコマンドプロンプトを出した後に 
> 
> frob コマンドでこれらのレジスタの値をセットできます.
>
> ただ,この方法だと起動するたびに手作業での設定が必要なので,
> 自動化したい場合は hermit-at ソースコードの board.c を編集するのがよいと思い 
> 
> ます.
>
> -- 
> 京都大学 情報学研究科
> 通信情報システム専攻 情報回路方式研究室 博士後期課程
> 菅野 裕揮 <email@hidden>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> 




armadillo メーリングリストの案内