[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));
  	
  	/*