[PATCH] ARM bootz: use request_sdram_region

Sascha Hauer s.hauer at pengutronix.de
Mon Oct 15 15:21:58 EDT 2012


We now have request_sdram_region to request a region. Use
it instead of a comparison with MALLOC_BASE.

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 arch/arm/lib/bootz.c |   12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/arch/arm/lib/bootz.c b/arch/arm/lib/bootz.c
index f394a6b..f069127 100644
--- a/arch/arm/lib/bootz.c
+++ b/arch/arm/lib/bootz.c
@@ -30,6 +30,7 @@ static int do_bootz(int argc, char *argv[])
 	u32 end;
 	int usemap = 0;
 	struct memory_bank *bank = list_first_entry(&memory_banks, struct memory_bank, list);
+	struct resource *res = NULL;
 
 	if (argc != 2)
 		return COMMAND_ERROR_USAGE;
@@ -83,8 +84,10 @@ static int do_bootz(int argc, char *argv[])
 			zimage = xmalloc(end);
 		} else {
 			zimage = (void *)bank->start + SZ_8M;
-			if (bank->start + SZ_8M + end >= MALLOC_BASE) {
-				printf("won't overwrite malloc space with image\n");
+			res = request_sdram_region("zimage",
+					bank->start + SZ_8M, end);
+			if (!res) {
+				printf("can't request region for kernel\n");
 				goto err_out1;
 			}
 		}
@@ -94,7 +97,7 @@ static int do_bootz(int argc, char *argv[])
 		ret = read(fd, zimage + sizeof(*header), end - sizeof(*header));
 		if (ret < end - sizeof(*header)) {
 			printf("could not read %s\n", argv[1]);
-			goto err_out1;
+			goto err_out2;
 		}
 	}
 
@@ -113,6 +116,9 @@ static int do_bootz(int argc, char *argv[])
 
 	return 0;
 
+err_out2:
+	if (res)
+		release_sdram_region(res);
 err_out1:
 	free(zimage);
 err_out:
-- 
1.7.10.4




More information about the barebox mailing list