]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - common/malloc_simple.c
karo: tx6: remove obsolete configs
[karo-tx-uboot.git] / common / malloc_simple.c
index afdacff80d8e1fc411cba7eab59286ef28a8a1e5..134e05970672b045aec9cfe74c566f32fb35699a 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <common.h>
 #include <malloc.h>
+#include <mapmem.h>
 #include <asm/io.h>
 
 DECLARE_GLOBAL_DATA_PTR;
@@ -19,12 +20,26 @@ void *malloc_simple(size_t bytes)
 
        new_ptr = gd->malloc_ptr + bytes;
        if (new_ptr > gd->malloc_limit)
-               panic("Out of pre-reloc memory");
+               return NULL;
        ptr = map_sysmem(gd->malloc_base + gd->malloc_ptr, bytes);
        gd->malloc_ptr = ALIGN(new_ptr, sizeof(new_ptr));
        return ptr;
 }
 
+void *memalign_simple(size_t align, size_t bytes)
+{
+       ulong addr, new_ptr;
+       void *ptr;
+
+       addr = ALIGN(gd->malloc_base + gd->malloc_ptr, align);
+       new_ptr = addr + bytes;
+       if (new_ptr > gd->malloc_limit)
+               return NULL;
+       ptr = map_sysmem(addr, bytes);
+       gd->malloc_ptr = ALIGN(new_ptr, sizeof(new_ptr));
+       return ptr;
+}
+
 #ifdef CONFIG_SYS_MALLOC_SIMPLE
 void *calloc(size_t nmemb, size_t elem_size)
 {