From 0b456883350dafd8967d836448d8c0423864775e Mon Sep 17 00:00:00 2001 From: Tomasz Bursztyka Date: Fri, 15 Sep 2023 12:14:51 +0200 Subject: [PATCH] drivers/nvme: Rely on CONFIG_MMU_PAGE_SIZE for PRP Getting rid of 4Kib page size hardcoded value on PRP handling. Signed-off-by: Tomasz Bursztyka --- drivers/disk/nvme/nvme_cmd.h | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/disk/nvme/nvme_cmd.h b/drivers/disk/nvme/nvme_cmd.h index c0e4e512ab4..24351570f10 100644 --- a/drivers/disk/nvme/nvme_cmd.h +++ b/drivers/disk/nvme/nvme_cmd.h @@ -306,16 +306,14 @@ enum nvme_feature { #define CACHE_LINE_SIZE CONFIG_DCACHE_LINE_SIZE #endif -/* Assuming page size it always 4Kib - * ToDo: define it accorditng to CONFIG_MMU_PAGE_SIZE - */ -#define NVME_PBAO_MASK 0xFFF +#define NVME_PBAO_MASK (CONFIG_MMU_PAGE_SIZE - 1) -#define NVME_PRP_NEXT_PAGE(_addr) ((_addr & (~NVME_PBAO_MASK)) + 0x1000) +#define NVME_PRP_NEXT_PAGE(_addr) \ + ((_addr & ~NVME_PBAO_MASK) + CONFIG_MMU_PAGE_SIZE) struct nvme_prp_list { uintptr_t prp[CONFIG_MMU_PAGE_SIZE / sizeof(uintptr_t)] - __aligned(0x1000); + __aligned(CONFIG_MMU_PAGE_SIZE); sys_dnode_t node; };