Subject: Re: Changing kernel base address (was: Re: Heads up: shared arm include files)
To: Chris Gilbert <chris@buzzbee.freeserve.co.uk>
From: Mike Pumford <mpumford@black-star.demon.co.uk>
List: port-arm32
Date: 01/18/2001 19:35:44
This is a multipart MIME message.

--==_Exmh_-6774220160
Content-Type: text/plain; charset=us-ascii


> Move Podules and IOMD to f7000000
> This will allow Video RAM to be a f6e00000
> Upper limit for KVM is then f6e00000 which should be more than enough.
> f8000000 and up is the EASI podule space.
> 
Right I have now done some tinkering and it turns out that moving VIDC/IOMD 
and the podules is not that straightforward as tweaking a few #defines and 
recompiling. The code in initarm assumes that these have been mapped by the 
bootloader at f6000000. I have a partial work round for this but the kernels 
crash after switching to the final page tables. On a more positive note it is 
possible to move the VRAM (or video DRAM) without too much effort.

However I do now have a booting kernel which has VRAM at f7000000 and 80MB
available for kernel VM. The patches required are attached below. There is
one other tweak in my patches that reduces the number of buffers allocated 
which may not be necessary

Mike
 


--==_Exmh_-6774220160
Content-Type: application/x-patch ; name="vmspace.patch"
Content-Description: vmspace.patch
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment; filename="vmspace.patch"

Index: vmparam.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /overflow/cvsrep/netbsd/sys/arch/arm32/include/vmparam.h,v
retrieving revision 1.1.1.12
diff -c -r1.1.1.12 vmparam.h
*** vmparam.h	2001/01/10 00:10:01	1.1.1.12
--- vmparam.h	2001/01/18 15:01:51
***************
*** 122,131 ****
  #define	KERNEL_VM_SIZE		0x04000000
  #else
  /*
!  * The range 0xf1000000 - 0xf3ffffff is available for kernel VM space
!  * Fixed mappings exist from 0xf4000000 - 0xffffffff
   */
! #define	KERNEL_VM_SIZE		0x03000000
  #endif
  #define	PROCESS_PAGE_TBLS_BASE	PAGE_TABLE_SPACE_START
  =

--- 122,131 ----
  #define	KERNEL_VM_SIZE		0x04000000
  #else
  /*
!  * The range 0xf1000000 - 0xf5ffffff is available for kernel VM space
!  * Fixed mappings exist from 0xf6000000 - 0xffffffff
   */
! #define	KERNEL_VM_SIZE		0x05000000
  #endif
  #define	PROCESS_PAGE_TBLS_BASE	PAGE_TABLE_SPACE_START
  =

***************
*** 155,161 ****
  /* XXX max. amount of KVM to be used by buffers. */
  #ifndef VM_MAX_KERNEL_BUF
  #define VM_MAX_KERNEL_BUF \
! 	((VM_MAXKERN_ADDRESS - KERNEL_VM_BASE) * 4 / 10)
  #endif
  =

  /* virtual sizes (bytes) for various kernel submaps */
--- 155,161 ----
  /* XXX max. amount of KVM to be used by buffers. */
  #ifndef VM_MAX_KERNEL_BUF
  #define VM_MAX_KERNEL_BUF \
! 	((VM_MAXKERN_ADDRESS - KERNEL_VM_BASE) * 2 / 10)
  #endif
  =

  /* virtual sizes (bytes) for various kernel submaps */
Index: vidc.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /overflow/cvsrep/netbsd/sys/arch/arm32/include/vidc.h,v
retrieving revision 1.1.1.3
diff -c -r1.1.1.3 vidc.h
*** vidc.h	1999/06/07 20:07:10	1.1.1.3
--- vidc.h	2001/01/18 14:53:15
***************
*** 155,161 ****
  =

  /* Where the display memory is mapped */
  =

! #define VMEM_VBASE 0xf4000000
  =

  /* Where the VRAM will be found */
  =

--- 155,161 ----
  =

  /* Where the display memory is mapped */
  =

! #define VMEM_VBASE 0xf7000000
  =

  /* Where the VRAM will be found */
  =


--==_Exmh_-6774220160--