From ba4d24ea04c80feddbfdd4feced8a764840aff3d Mon Sep 17 00:00:00 2001 From: Sir Richard Date: Tue, 23 Nov 2010 17:24:59 +0000 Subject: [PATCH] [FREELDR]: VaToPa/PaToVa are assuming all architectures have VA at PA | KSEG0_BASE. This is not the case. On ZOOM2, DDR RAM starts at 0x80000000 for example, so KSEG0 == VA == PA. Use an ifdef do handle this. svn path=/trunk/; revision=49752 --- reactos/boot/freeldr/freeldr/windows/conversion.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/reactos/boot/freeldr/freeldr/windows/conversion.c b/reactos/boot/freeldr/freeldr/windows/conversion.c index 95c5bde5ee9..2f58a5f5466 100644 --- a/reactos/boot/freeldr/freeldr/windows/conversion.c +++ b/reactos/boot/freeldr/freeldr/windows/conversion.c @@ -15,6 +15,7 @@ /* FUNCTIONS **************************************************************/ +#ifndef _ZOOM2_ /* Arch-specific addresses translation implementation */ PVOID VaToPa(PVOID Va) @@ -27,6 +28,19 @@ PaToVa(PVOID Pa) { return (PVOID)((ULONG_PTR)Pa | KSEG0_BASE); } +#else +PVOID +VaToPa(PVOID Va) +{ + return Va; +} + +PVOID +PaToVa(PVOID Pa) +{ + return Pa; +} +#endif VOID List_PaToVa(LIST_ENTRY *ListEntry)