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

some table is in start of kernel (Re: PLAYSTATION 3



>                                           千葉市中央区長洲
>                                                    藤原 誠
PS3 をまた引っぱり出しました。
(以前の話)
2007/01/15 の頃に、ふかうみさんに必要な変更点を用意してもらって、
ps3-070108-add3.tar.gz
という名前でいただきました。これと
  ps3-070108.tar.gz を使って、./build.sh で、
  kernel と etc.tgz, base.tgz
を作り、kboot から netboot すると、USB キーボードも使えて 一応
single user まで動きました。これは AsiaBSDCon の NetBSD BOF の
時に、Let's Note R1 をTFTP/BOOTP/NFS サーバにして、そこにいらっ
しゃった方々にお見せしました。この時の dmesg は次のところにあり
ます (以前にも書いていたらごめんなさい)
http://www.ki.nu/hardware/.ps3/files/4.99.8-dmesg

(今回の話)
で、今度は
macppc-070526.tar.gz
ps3-070526.tar.gz
を使って、自力で、何とか tools と kernel (PS3) を作って
同じようにして見ました。
(gcc/toolchain は src にあるものを使っているつもりです)
しかし、画面には、

─────────────────────
kboot: tftp://example.com/ps3/netbsd-4.99.20
get memory ranges:1
Modified cmdline:root=LABEL=/
segment[0].mem:0x17e6000 memsz:6414336
segment[1].mem:0x1e04000 memsz:16384
segment[2].mem:0x7bff000 memsz:4096
VUArt: cleanup.
SYSMGR: cleanup. (close event mask)
─────────────────────
のように表示され、全く受付けられていない感じです。

で objdump -d netbsd して見ると、最初の方に、何か変な表のような
ものがあって、ELF 的には問題ないような気もしますが、上のように
なっていると、それが問題なのか関係ないのかさえも良く分りません。
で、

ld  -o netbsd ${SYSTEM_OBJ} の最初にある locore.o を、
link する前に見ると、そのような表は入っていません。

じゃ、linker script かなと思ったのですが、
  ・実際にどれを参照しているのか不明
    (ld --verbose で見えるものと同じものを探せていない)
  ・以前の版の時には問題がなく、linker script 近辺には変更が
    ないから、そういう問題ではない (?)
 ということで、行詰っています。

これだけでは、情報が足りないと思いますが、とりあえず、何か御存
知の方がいらっしゃいましたら、教えて下さい。

/export/20070526a/checkout/src/tooldir.NetBSD-4.99.9-powerpc/bin/powerpc64--netbsd-objdump -d netbsd 
-------------------------------------------------
netbsd:     file format elf64-powerpc

Disassembly of section .text:

0000000000100000 <__start-0x244>:
  100000:       f8 41 00 28     std     r2,40(r1)
  100004:       3c 42 00 01     addis   r2,r2,1
  100008:       38 42 ff b0     addi    r2,r2,-80
  10000c:       48 21 94 94     b       3194a0 <.prop_dictionary_set_uint64>
  100010:       f8 41 00 28     std     r2,40(r1)
  100014:       3c 42 00 01     addis   r2,r2,1
  100018:       38 42 ff b0     addi    r2,r2,-80
  10001c:       48 21 48 34     b       314850 <.emul_find_interp>
          (中略)
  100240:       48 00 00 04     b       100244 <__start>

0000000000100244 <__start>:
  100244:       48 00 01 00     b       100344 <secondary_entry+0x20>
  100248:       60 00 00 00     nop
  10024c:       60 00 00 00     nop


/export/20070526a/checkout/src/tooldir.NetBSD-4.99.9-powerpc/bin/powerpc64--netbsd-objdump -s netbsd
---------------------------------------------------
Contents of section .text:
 100000 f8410028 3c420001 3842ffb0 48219494  .A.(<B..8B..H!..
 100010 f8410028 3c420001 3842ffb0 48214834  .A.(<B..8B..H!H4
 100020 f8410028 3c420001 3842ffb0 48215294  .A.(<B..8B..H!R.

(32bit でいいのかなと思いながら) 
いつもありがとうございます。
---
(藤原)
────────────────
NetBSD 解説
http://www.ki.nu/software/NetBSD2/index.html