From 3db0cc5595c00bbfce162c23ecad673b8fd45671 Mon Sep 17 00:00:00 2001 From: David Welch Date: Tue, 16 Mar 2004 22:45:56 +0000 Subject: [PATCH] - Map only the vga frame buffer for the hal to write debug messages and map it higher up in the kernel address space so more space is available for the nonpaged and paged pools. svn path=/trunk/; revision=8769 --- reactos/hal/halx86/display.c | 7 +++---- reactos/ntoskrnl/kd/mda.c | 4 ++-- reactos/ntoskrnl/ke/i386/multiboot.S | 13 ++++++++++++- reactos/ntoskrnl/mm/mminit.c | 10 +++++----- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/reactos/hal/halx86/display.c b/reactos/hal/halx86/display.c index 51785b563b7..2ba9975658c 100644 --- a/reactos/hal/halx86/display.c +++ b/reactos/hal/halx86/display.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: display.c,v 1.13 2004/01/18 22:35:26 gdalsnes Exp $ +/* $Id: display.c,v 1.14 2004/03/16 22:45:55 dwelch Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -577,9 +577,8 @@ HalInitializeDisplay (PLOADER_PARAMETER_BLOCK LoaderBlock) ULONG ScanLines; ULONG Data; - VideoBuffer = (WORD *)(0xd0000000 + 0xb8000); - GraphVideoBuffer = (PUCHAR)(0xd0000000 + 0xa0000); -// VideoBuffer = HalMapPhysicalMemory (0xb8000, 2); + VideoBuffer = (WORD *)(0xff3b8000); + GraphVideoBuffer = (PUCHAR)(0xff3a0000); /* Set cursor position */ // CursorX = LoaderBlock->cursorx; diff --git a/reactos/ntoskrnl/kd/mda.c b/reactos/ntoskrnl/kd/mda.c index 787359ea6ef..872ea398af4 100644 --- a/reactos/ntoskrnl/kd/mda.c +++ b/reactos/ntoskrnl/kd/mda.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: mda.c,v 1.3 2002/09/08 10:23:27 chorns Exp $ +/* $Id: mda.c,v 1.4 2004/03/16 22:45:56 dwelch Exp $ * * PROJECT: ReactOS kernel * FILE: ntoskrnl/kd/mda.c @@ -77,7 +77,7 @@ KdInitializeMda(VOID) MdaStatusPort = 0x3ba; MdaGfxPort = 0x3bf; - VideoBuffer = (PUSHORT)(0xd0000000 + 0xb0000); + VideoBuffer = (PUSHORT)(0xff3b0000); MdaCursorX = MdaCursorY = 0; } diff --git a/reactos/ntoskrnl/ke/i386/multiboot.S b/reactos/ntoskrnl/ke/i386/multiboot.S index 8f8191a883e..f50e03a70f6 100644 --- a/reactos/ntoskrnl/ke/i386/multiboot.S +++ b/reactos/ntoskrnl/ke/i386/multiboot.S @@ -139,7 +139,6 @@ _multiboot_entry: movl $(V2P(kernel_pagetable+30*4096) + 0x7), 0xC78(%esi) movl $(V2P(kernel_pagetable+31*4096) + 0x7), 0xC7c(%esi) - movl $(V2P(lowmem_pagetable) + 0x7), 0xD00(%esi) movl $(V2P(startup_pagedirectory) + 0x7), 0xF00(%esi) #ifdef MP movl $(V2P(apic_pagetable) + 0x7), 0xFEC(%esi) @@ -200,6 +199,18 @@ _multiboot_entry: movl $0x1007, %eax movl %eax, (%esi, %edi) + /* + * Initialize a part of the same pagetable to map the vga frame buffer. + */ + movl $0xa0007, %eax + movl $0x20, %ecx + movl $0xE80, %edi +.l9: + movl %eax, (%esi, %edi) + add $4, %edi + add $0x1000, %eax + loop .l9 + #ifdef MP .m1: diff --git a/reactos/ntoskrnl/mm/mminit.c b/reactos/ntoskrnl/mm/mminit.c index f51d19f5015..10e43f6bf0a 100644 --- a/reactos/ntoskrnl/mm/mminit.c +++ b/reactos/ntoskrnl/mm/mminit.c @@ -1,4 +1,4 @@ -/* $Id: mminit.c,v 1.61 2004/03/16 21:13:15 dwelch Exp $ +/* $Id: mminit.c,v 1.62 2004/03/16 22:45:56 dwelch Exp $ * * COPYRIGHT: See COPYING in the top directory * PROJECT: ReactOS kernel @@ -48,7 +48,7 @@ static MEMORY_AREA* kernel_data_desc = NULL; static MEMORY_AREA* kernel_param_desc = NULL; static MEMORY_AREA* kernel_pool_desc = NULL; static MEMORY_AREA* kernel_shared_data_desc = NULL; -static MEMORY_AREA* kernel_mapped_low_mem_desc = NULL; +static MEMORY_AREA* kernel_mapped_vga_framebuffer_desc = NULL; static MEMORY_AREA* MiKernelMapDescriptor = NULL; static MEMORY_AREA* MiPagedPoolDescriptor = NULL; @@ -146,14 +146,14 @@ MmInitVirtualMemory(ULONG LastKernelAddress, FALSE, BoundaryAddressMultiple); - BaseAddress = (PVOID)0xd0000000; + BaseAddress = (PVOID)0xFF3A0000; MmCreateMemoryArea(NULL, MmGetKernelAddressSpace(), MEMORY_AREA_SYSTEM, &BaseAddress, - 0x100000, + 0x20000, 0, - &kernel_mapped_low_mem_desc, + &kernel_mapped_vga_framebuffer_desc, FALSE, FALSE, BoundaryAddressMultiple);