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--