新千葉 ガーベージ・コレクション

FPGA マガジンやインターフェースで書けなかったこと等をちょぼちょぼ書いてます。@ryos36

2012-02-01から1ヶ月間の記事一覧

gma500

linux/drivers/staging/gma500 確かにソースはある。これで android も動くかな?

Xen をインストール

ubuntu 11.10 に xen-hypervisor-4.1-i386 をインストール。単純に apt-get すればよい。その後 grub_update を掛けるも(もしかしたらしなくてもいいのかもしれないが、、、) /boot/grub/grub.cfg が更新されない。/etc/grub/S20_xen_linux (だったかな?…

Linux Z530 GMA500

ubuntu 11.10 で対応されたようだ。11.10 の desktop は X が動かなくてインストールすらできなかった。11.10 の altanate を使うとインストールできる。途中で ubuntu desktop をインストールしなかったら X は入らないようだ。ubuntu desktop を入れようと…

ignore tegra

tegra に依存しつつ、tegra のコードを排除。bogo mips の計算は遅いだけだった、、、 <6>Calibrating delay loop... 13421.77 BogoMIPS (lpj=67108864)root がないとおこられた。あれ? cpio であるはずなんだけど、、、 Please append a correct "root=" b…

bogo mips の計算で無限ループ

(gdb) x/10i $pc => 0xc015df04 <__delay+4>: bhi 0xc015df00 <__delay> 0xc015df08 <__delay+8>: mov pc, lr 0xc015df0c <__do_div64>: subs r12, r4, #1 0xc015df10 <__do_div64+4>: bls 0xc015dfe4 <__do_div64+216> 0xc015df14 <__do_div64+8>: tst r12, r4 0xc015df18 <__do_div64+12>: beq 0xc015dfc0 </__do_div64+12></__do_div64+8></__do_div64+216></__do_div64+4></__do_div64></__delay+8></__delay></__delay+4>

tegra のコード

tegra_map_common_io () at arch/arm/mach-tegra/io.c:62 62 iotable_init(tegra_io_desc, ARRAY_SIZE(tegra_io_desc)); 初期化時に machine_arch_type をけってして、そこからマッチした mdesc を特定して、個別ルーチンを呼ぶようになっている。machine_ar…

0xe0000000

0xe0000000 でエラー。XEN で許している領域の初期化までしてしまう。XEN に戻ってきたときにちゃんと変換されればいい気もするが、、、げ, Xen 用の Linux は VMALLOC_END を微妙に調整していて、この場合は 0xf8000000、まで page_table を初期化してしま…

こんどはページテーブルクリアでエラー

Linux の 0 ページ目をクリアしたところで気を失う。 0 ページ目に svc のとび先が書いてあるのに、0 ページ目をクリアするから。ヨーク見たら XEN のページテーブルのエントリーは HIGH アドレスになっていたのを自分が勝手に変えていた。なんだよ、、、複…

qemu の使い方といえば使い方バグといえばバグ

ページテーブルを初期化する前にバグで 0 アドレス付近を触ってしまった。data として触ったのだが qemu は data と code の tlb の分離がされていないので、tlb にアドレスがのってしまった。で、結局自分のバグだった。qemu の挙動がおかしいのはおかしい…

vector

やっぱり vector が設定されていない気がする。

qemu のバグか

0 番地から始まる。0x10000 にとぶ。そのとき、なぜか 0 番地を tlb にロードしてしまう。mmu を使っていないのに tlb をロードしてしまう。 mmu を使う瞬間に tlb を flush していないのか?とりあえず、データキャッシュのパージをする耽美に tlb_flush を…

libusb

なんかべんりそうじゃない?

どうやると Android の処理がきれいにかけるか?

まずは GUI と処理を分離すること。なので、ハッカーな人は GUI から作り始めない。コアのロジックを作るべき。コアのロジックは CUI でコントロールできるようにすべきだ。一般的には BaseClass があり、それを発生させた Script 用のクラスができ、BaseCla…

android

android create project で eclipse をつかわないで開発をスタートできる。 http://izeef.web.fc2.com/develop/android/hello_ant.html

mingw の lisp

mingw の clisp が動いたが、LTK が動かない。cygwin の mingw の clisp で LTK は動く。

XEN on ARM on QEMU

rem:test> !sh sh xen.sh ram size=10000000 a0mpcore_priv: smp_priv_base f8f00000 ram_size 10000000, board_id 76d, loader_start 0 [XEN] Xen/ARM virtual machine monitor for <NULL> Copyright (C) 2007 Samsung Electronics Co, Ltd. All Rights Reserved.</null>…

ARM プロセッサでの asmlinkage の意味

Russell King さんが次のように書いてます。 ARM doesn't require any special API modification to call functions from assembly. x86 has two different calling conventions - one is to stack all function arguments, the other passes some arguments…

QEMU の mpcore.c

グローバルタイマーが実装されていない。 みんなつかってないのかな? とおもったら、どうも xilinx の mpcore.c がおかしい。プライベートエリアが特別なのだろうか?すくなくとも ARM の出している mpcore の仕様書とは違う。qemu のオリジナルの a9mpcore…

XEN/ARM/QEMU

rem:test> sh xen.sh ram size=10000000 a0mpcore_priv: smp_priv_base f8f00000 ram_size 10000000, board_id 76d, loader_start 0 [XEN] Hello World動き始めた。zynq の QEMU。

Linux ARM のbootシーケンス(のさわり)

たとえば、0x8000 から始まるように設計されていたとする。ところが 0x10000 にロードされてしまった。まずは 0x10000 から実行が始まる。そこで、解凍後のサイズを計算して、そこに自分自身をコピー。そしてコピー先にとぶ。こうすることによって、本来の 0…

ARM の略語

SBO: Should Be One SBZ: Should Be Zero SBZP: Should Be Zero or PreservedRAZ なんてのもあるな Reserved as Zero とかかかな?RAZ/WI とか RAO とかもある。あーやっとみつけた。 RWRead and write RORead-only WOWrite-only RAZRead-As-Zero WIWrite-ig…

qemu の VTBL

サポートしていないのか? xxxx1110 oooLNNNN ddddpppp qqq1MMMM MRC/MCR MRC, if L=1, MCR otherwise. MCR p,o,Rd,CRN,CRM,q

omap のメモリマップ

gumstix でつかっている OMAP3530 のアドレスマップは次の通り Boot ROM:0x4000 0000 - 0x400F FFFF SRAM:0x4020 0000 - 0x4020 FFFF SDRAM:0x8000 0000 - 0x8FFF FFFF (256MB) Booting from mmc ... ## Booting kernel from Legacy Image at 82000000 ..…

QEMU Zynq

動き始めた(え?何が?)。ちゃんと初期化ルーチンを書くのと、ちゃんと Zynq のメモリマップに対応しなければならない。

QEMU

ロードしている場所が 0x10000 ずれているためうまく動いていないことがわかった。 もぉーー