From dcb404a6770682d7f913c9e6579f4c39a917ff15 Mon Sep 17 00:00:00 2001 From: Joseph Chen Date: Tue, 7 May 2019 17:34:04 +0800 Subject: [PATCH] lib: sysmem: add sysmem_alloc() interface Change-Id: I3ae1fe618ba1bb9c7924bb9816884eb26927dc1e Signed-off-by: Joseph Chen --- include/sysmem.h | 7 +++++++ lib/sysmem.c | 15 +++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/include/sysmem.h b/include/sysmem.h index 0a5d807f82..f32b63a03b 100644 --- a/include/sysmem.h +++ b/include/sysmem.h @@ -7,6 +7,7 @@ #define _SYSMEM_H #include +#include /* * CONFIG_SYS_FDT_PAD default value is sync with bootm framework in: @@ -121,6 +122,12 @@ static inline int sysmem_initr(void) { return 0; } static inline int sysmem_free(phys_addr_t base) { return 0; } static inline void sysmem_dump(void) {} __weak int board_sysmem_reserve(struct sysmem *sysmem) { return 0; } + +static inline void *sysmem_alloc(enum memblk_id id, phys_size_t size) +{ + return malloc(size); +} + static inline void *sysmem_alloc_base(enum memblk_id id, phys_addr_t base, phys_size_t size) { diff --git a/lib/sysmem.c b/lib/sysmem.c index 7ec9c1479f..be14ada671 100644 --- a/lib/sysmem.c +++ b/lib/sysmem.c @@ -364,6 +364,21 @@ out: return (attr.flags & M_ATTR_PEEK) ? (void *)base : NULL; } +void *sysmem_alloc(enum memblk_id id, phys_size_t size) +{ + void *paddr; + + paddr = sysmem_alloc_align_base(id, + NULL, + SYSMEM_ALLOC_ANYWHERE, + size, + SYSMEM_ALLOC_NO_ALIGN); + if (!paddr) + sysmem_dump(); + + return paddr; +} + void *sysmem_alloc_base(enum memblk_id id, phys_addr_t base, phys_size_t size) { void *paddr;