[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Please test this patch on NetBSD/macppc
どなたか以下のパッチで動作するかテストしてもらえませんか?
実装メモリー量に応じて 0x03f0.... になっているところを
変更してください。RAM の最後の 1MB だと思いますが、Openfirm から
0 > dev /memory .properties
name memory
device_type memory
reg 00000000 04000000
available 00000000 03F00000
^^^^
のようにして得ることができます。(この場合64MB積んでいます)
# テストってことで…手抜きです。
# 本当は 0xf000... とか 0xff80... も Openfirm からもってこなきゃいけない。
これですくなくとも printf() ぐらいは動くはずなんですが…。
*** /a/src/sys/arch/macppc/macppc/locore.S Sat Jun 6 20:19:29 1998
--- ./locore.S Mon Jun 15 23:14:32 1998
***************
*** 98,111 ****
.text
.globl __start
__start:
- #ifdef FIRMWORKSBUGS
- mfmsr 0
- andi. 0,0,PSL_IR|PSL_DR
- beq 1f
! bl _C_LABEL(ofwr_init)
! 1:
! #endif
li 0,0
mtmsr 0 /* Disable FPU/MMU/exceptions */
isync
--- 98,135 ----
.text
.globl __start
__start:
! li 0,0
! mtdbatu 1,0
! mtibatu 1,0
! mtdbatu 2,0
! mtibatu 2,0
!
! /* va pa
! * f0000000 - f7ffffff --> 0xf0000000 bat1 128MB
! * ff800000 - ff8fffff --> 0x03f00000 bat2 1MB
! */
!
! lis 8,0xf0000ffe@ha /* batu map 128MB */
! addi 8,8,0xf0000ffe@l
! lis 9,0xf0000022@ha /* batl */
! addi 9,9,0xf0000022@l /* BAT_I */
! mtdbatl 1,9
! mtdbatu 1,8
! mtibatl 1,9
! mtibatu 1,8
!
! lis 8,0xff80001e@ha /* batu map 1MB */
! addi 8,8,0xff80001e@l
! lis 9,0x03f00002@ha /* batl */
! addi 9,9,0x03f00002@l
! mtdbatl 2,9
! mtdbatu 2,8
! mtibatl 2,9
! mtibatu 2,8
!
! isync
!
li 0,0
mtmsr 0 /* Disable FPU/MMU/exceptions */
isync
***************
*** 158,166 ****
--- 182,192 ----
lwz 4,openfirmware_entry@l(4)
mtlr 4
+ #ifdef notdef
li 0,0 /* turn off any ints/mmu/etc. */
mtmsr 0
isync
+ #endif
blrl /* call OpenFirmware */
*** /a/src/sys/arch/macppc/macppc/machdep.c Sat Jun 6 20:19:30 1998
--- ./machdep.c Mon Jun 15 23:14:10 1998
***************
*** 178,189 ****
* overlapping mappings below.
*/
asm volatile ("mtibatu 0,%0" :: "r"(0));
! asm volatile ("mtibatu 1,%0" :: "r"(0));
! asm volatile ("mtibatu 2,%0" :: "r"(0));
asm volatile ("mtibatu 3,%0" :: "r"(0));
asm volatile ("mtdbatu 0,%0" :: "r"(0));
! asm volatile ("mtdbatu 1,%0" :: "r"(0));
! asm volatile ("mtdbatu 2,%0" :: "r"(0));
asm volatile ("mtdbatu 3,%0" :: "r"(0));
/*
--- 178,189 ----
* overlapping mappings below.
*/
asm volatile ("mtibatu 0,%0" :: "r"(0));
! // asm volatile ("mtibatu 1,%0" :: "r"(0));
! // asm volatile ("mtibatu 2,%0" :: "r"(0));
asm volatile ("mtibatu 3,%0" :: "r"(0));
asm volatile ("mtdbatu 0,%0" :: "r"(0));
! // asm volatile ("mtdbatu 1,%0" :: "r"(0));
! // asm volatile ("mtdbatu 2,%0" :: "r"(0));
asm volatile ("mtdbatu 3,%0" :: "r"(0));
/*