FC2カウンター FPGAの部屋 ZedBoard用Digilent LinuxのSysfs
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

ZedBoard用Digilent LinuxのSysfs

ウィキペディアのSysfs によると、”Sysfs は Linuxカーネル 2.6 によって提供される仮想ファイルシステムである。”だそうだ。
以下に、ウィキペディアのSysfsの文章を引用する。

sysfs は元々 ddfs (Device Driver Filesystem) と呼ばれており、始め、実装されているとき新しいドライバモデルをデバッグするために作成された。


ドライバモデルツリーに追加された個々のオブジェクト(ドライバ、クラスドライバを含むデバイス)に対して、sysfs 内にディレクトリが作られる。親と子の関係は(物理的な配置を反映して)/sys/devices/ の下のサブディレクトリに反映される。サブディレクトリ /sys/bus/ はシンボリックリンクが置かれており、どのようにデバイスが異なるバスに所属しているのかを反映している。/sys/block/ がブロックデバイスを含む一方で、/sys/class/ はネットワークのようなクラスによって分類されたデバイスを表している。


Sysfs については、xoxyuxuさんにヒントを頂いた。ありがとうございました。

ZedBoardのLinuxで、/sys ディレクトリの下を見ていこうと思う。(以下、この色で表示された名前はディレクトリを表す)

zynq> cd sys
zynq> ls
block     class     devices   fs        module
bus       dev       firmware  kernel    power

zynq>


8個のディレクトリがある。devices ディレクトリを見てみよう。

zynq> cd devices
zynq> ls
ARMv7 Cortex-A9  breakpoint       software         virtual
axi.0            platform         system

zynq>


axi.0 ディレクトリに入ってみる。

zynq> cd axi.0
zynq> ls
40400000.axidma           e000a000.gpio             leds.3
41600000.i2c              e000b000.eth
              modalias
43000000.axivdma          e000d000.qspi             power
45000000.i2c              e0100000.sdhci 
           subsystem
70e00000.cf-adv7x11-core  f8001000.timer            uevent
75c00000.axi-spdif-tx     f8005000.swdt             xilinx_pcm_audio.1
adv7511_hdmi_snd.2        f8007000.devcfg           zed_oled.4
e0001000.uart             f8f01000.intc
e0002000.usb              f8f02000.pl310

zynq> cd 45000000.i2c/
zynq> ls
driver     i2c-1      modalias   power      subsystem  uevent
zynq> more uevent
DRIVER=xiic-i2c
OF_NAME=i2c
OF_FULLNAME=/axi@0/i2c@45000000
OF_COMPATIBLE_0=xlnx,axi-iic-1.02.a
OF_COMPATIBLE_1=xlnx,xps-iic-2.00.a
OF_COMPATIBLE_N=2
MODALIAS=of:Ni2cT<NULL>Cxlnx,axi-iic-1.02.aCxlnx,xps-iic-2.00.a
zynq>


axi.0 ディレクトリの下には、XPSプロジェクトのIPごとに先にアドレスのついたディレクトリが並んでいる。そのうちの 45000000.i2c にはいった。このIPはXPSプロジェクトでは、axi_iic_mt9d111 というインスタンス名を持っているはずだ。
ISE_for_Linux_112_130316.png

もう1つのaxi iic の41600000.i2c/ を見てみた。

zynq> cd 41600000.i2c/
zynq> ls
driver     i2c-0      modalias   power      subsystem  uevent
zynq> more uevent
DRIVER=xiic-i2c
OF_NAME=i2c
OF_FULLNAME=/axi@0/i2c@41600000
OF_COMPATIBLE_0=xlnx,axi-iic-1.01.b
OF_COMPATIBLE_1=xlnx,xps-iic-2.00.a
OF_COMPATIBLE_N=2
MODALIAS=of:Ni2cT<NULL>Cxlnx,axi-iic-1.01.bCxlnx,xps-iic-2.00.a
zynq>


OF_COMPATIBLE_0 が違っていて、i2c-0 というディレクトリがある。45000000.i2c/には i2c-1 というディレクトリがあった。
試しに、40400000.axidma/ ディレクトリに入ってみたが、OF_COMPATIBLE_1 はなかった。

zynq> cd 40400000.axidma/
zynq> ls
dma        driver     modalias   power      subsystem  uevent
zynq> more uevent
DRIVER=xilinx-dma
OF_NAME=axidma
OF_FULLNAME=/axi@0/axidma@40400000
OF_COMPATIBLE_0=xlnx,axi-dma
OF_COMPATIBLE_N=1
MODALIAS=of:NaxidmaT<NULL>Cxlnx,axi-dma
zynq>


/sys ディレクトリ下のその他のディレクトリの内容を下に示す。

zynq> ls
block     class     devices   fs        module
bus       dev       firmware  kernel    power
zynq> ls block
loop0    loop4    mmcblk0  ram11    ram15    ram5     ram9
loop1    loop5    ram0     ram12    ram2     ram6
loop2    loop6    ram1     ram13    ram3     ram7
loop3    loop7    ram10    ram14    ram4     ram8

zynq> ls class/
bdi           input         mtd           scsi_host     vtconsole
dma           leds          net           sound         watchdog
drm           mdio_bus      rtc           spi_master    xslcr_mio
gpio          mem           scsi_device   tty           xslcr_reset
graphics      misc          scsi_disk     udc
i2c-adapter   mmc_host      scsi_generic  vc

zynq> ls fs
ext4
zynq> ls module/
block           keyboard        rcutree         spurious
brd             loop            scsi_mod        tcp_cubic
drm             mmc_core        sdhci           usb_storage
drm_kms_helper  mmcblk          sg              usbcore
ehci_hcd        mousedev        snd             usbhid
hid             pl330           snd_pcm         vt
i2c_algo_bit    printk          snd_timer       xilinx_uartps
kernel          psmouse         sparse_keymap

zynq> ls bus
amba          event_source  mdio_bus      scsi          spi
clocksource   hid           mmc           sdio          usb
cpu           i2c           platform      serio

zynq> ls dev
block  char
zynq> ls firmware/
zynq> ls kernel/
debug          mm             uevent_helper
fscaps         notes          uevent_seqnum
zynq> ls power/
state
zynq>

ISE_for_Linux_113_130316.png
  1. 2013年03月16日 05:33 |
  2. Linux
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/2413-bfed27ef
この記事にトラックバックする(FC2ブログユーザー)