{"id":813969,"url":"http://patchwork.ozlabs.org/api/patches/813969/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/patch/20170914220513.9359-14-paul.burton@imgtec.com/","project":{"id":18,"url":"http://patchwork.ozlabs.org/api/projects/18/?format=json","name":"U-Boot","link_name":"uboot","list_id":"u-boot.lists.denx.de","list_email":"u-boot@lists.denx.de","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20170914220513.9359-14-paul.burton@imgtec.com>","list_archive_url":null,"date":"2017-09-14T22:05:13","name":"[U-Boot,v2,13/13] sandbox: Use asm-generic/io.h","commit_ref":"f7ae1ca3e894d67ef1e8b6256a26c08e30e25127","pull_url":null,"state":"accepted","archived":false,"hash":"59370b7e523eba5c717063a14045baae40d5485c","submitter":{"id":33698,"url":"http://patchwork.ozlabs.org/api/people/33698/?format=json","name":"Paul Burton","email":"paul.burton@imgtec.com"},"delegate":{"id":3651,"url":"http://patchwork.ozlabs.org/api/users/3651/?format=json","username":"trini","first_name":"Tom","last_name":"Rini","email":"trini@ti.com"},"mbox":"http://patchwork.ozlabs.org/project/uboot/patch/20170914220513.9359-14-paul.burton@imgtec.com/mbox/","series":[{"id":3169,"url":"http://patchwork.ozlabs.org/api/series/3169/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/list/?series=3169","date":"2017-09-14T22:05:00","name":"Add asm-generic/io.h; virt_to_phys(), phys_to_virt() for all arches","version":2,"mbox":"http://patchwork.ozlabs.org/series/3169/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/813969/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/813969/checks/","tags":{},"related":[],"headers":{"Return-Path":"<u-boot-bounces@lists.denx.de>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.denx.de\n\t(client-ip=81.169.180.215; helo=lists.denx.de;\n\tenvelope-from=u-boot-bounces@lists.denx.de;\n\treceiver=<UNKNOWN>)","Received":["from lists.denx.de (dione.denx.de [81.169.180.215])\n\tby ozlabs.org (Postfix) with ESMTP id 3xtXps0L5rz9s3T\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 15 Sep 2017 08:13:08 +1000 (AEST)","by lists.denx.de (Postfix, from userid 105)\n\tid C9F49C21F4B; Thu, 14 Sep 2017 22:12:31 +0000 (UTC)","from lists.denx.de (localhost [IPv6:::1])\n\tby lists.denx.de (Postfix) with ESMTP id 64FA3C21F26;\n\tThu, 14 Sep 2017 22:12:15 +0000 (UTC)","by lists.denx.de (Postfix, from userid 105)\n\tid 73195C21F74; Thu, 14 Sep 2017 22:09:28 +0000 (UTC)","from mailapp01.imgtec.com (mailapp01.imgtec.com [195.59.15.196])\n\tby lists.denx.de (Postfix) with ESMTP id 74727C21F01\n\tfor <u-boot@lists.denx.de>; Thu, 14 Sep 2017 22:09:25 +0000 (UTC)","from hhmail02.hh.imgtec.org (unknown [10.100.10.20])\n\tby Forcepoint Email with ESMTPS id 7DC31D59A4CCC;\n\tThu, 14 Sep 2017 23:09:19 +0100 (IST)","from localhost (10.20.1.88) by hhmail02.hh.imgtec.org\n\t(10.100.10.21) with Microsoft SMTP Server (TLS) id 14.3.294.0;\n\tThu, 14 Sep 2017 23:09:24 +0100"],"X-Spam-Checker-Version":"SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de","X-Spam-Level":"","X-Spam-Status":"No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_NONE\n\tautolearn=unavailable autolearn_force=no version=3.4.0","From":"Paul Burton <paul.burton@imgtec.com>","To":"<u-boot@lists.denx.de>","Date":"Thu, 14 Sep 2017 15:05:13 -0700","Message-ID":"<20170914220513.9359-14-paul.burton@imgtec.com>","X-Mailer":"git-send-email 2.14.1","In-Reply-To":"<20170914220513.9359-1-paul.burton@imgtec.com>","References":"<20170914220513.9359-1-paul.burton@imgtec.com>","MIME-Version":"1.0","X-Originating-IP":"[10.20.1.88]","Subject":"[U-Boot] [PATCH v2 13/13] sandbox: Use asm-generic/io.h","X-BeenThere":"u-boot@lists.denx.de","X-Mailman-Version":"2.1.18","Precedence":"list","List-Id":"U-Boot discussion <u-boot.lists.denx.de>","List-Unsubscribe":"<https://lists.denx.de/options/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=unsubscribe>","List-Archive":"<http://lists.denx.de/pipermail/u-boot/>","List-Post":"<mailto:u-boot@lists.denx.de>","List-Help":"<mailto:u-boot-request@lists.denx.de?subject=help>","List-Subscribe":"<https://lists.denx.de/listinfo/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=subscribe>","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"u-boot-bounces@lists.denx.de","Sender":"\"U-Boot\" <u-boot-bounces@lists.denx.de>"},"content":"Convert the sandbox architecture to make use of the new asm-generic/io.h\nto provide address mapping functions. As sandbox actually performs\nnon-identity mapping between physical & virtual addresses we can't\nsimply make use of the generic mapping functions, but are able to\nimplement phys_to_virt() & make use of it from map_physmem().\n\nSigned-off-by: Paul Burton <paul.burton@imgtec.com>\nCc: Simon Glass <sjg@chromium.org>\nAcked-by: Simon Glass <sjg@chromium.org>\n\n---\n\nChanges in v2:\n- Move include earlier to get MAP_WRBACK for (un)map_sysmem()\n- Cast vaddr to uint8_t* in virt_to_phys() for arithmetic with ram_buf\n\n arch/sandbox/cpu/cpu.c        | 12 +++++++++++-\n arch/sandbox/include/asm/io.h | 18 +++++++++---------\n 2 files changed, 20 insertions(+), 10 deletions(-)","diff":"diff --git a/arch/sandbox/cpu/cpu.c b/arch/sandbox/cpu/cpu.c\nindex 01991049cc..66c3a6a88a 100644\n--- a/arch/sandbox/cpu/cpu.c\n+++ b/arch/sandbox/cpu/cpu.c\n@@ -56,6 +56,16 @@ int cleanup_before_linux_select(int flags)\n \treturn 0;\n }\n \n+void *phys_to_virt(phys_addr_t paddr)\n+{\n+\treturn (void *)(gd->arch.ram_buf + paddr);\n+}\n+\n+phys_addr_t virt_to_phys(void *vaddr)\n+{\n+\treturn (phys_addr_t)((uint8_t *)vaddr - gd->arch.ram_buf);\n+}\n+\n void *map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags)\n {\n #if defined(CONFIG_PCI) && !defined(CONFIG_SPL_BUILD)\n@@ -73,7 +83,7 @@ void *map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags)\n \t}\n #endif\n \n-\treturn (void *)(gd->arch.ram_buf + paddr);\n+\treturn phys_to_virt(paddr);\n }\n \n void unmap_physmem(const void *vaddr, unsigned long flags)\ndiff --git a/arch/sandbox/include/asm/io.h b/arch/sandbox/include/asm/io.h\nindex a6856356df..fd3c2478f7 100644\n--- a/arch/sandbox/include/asm/io.h\n+++ b/arch/sandbox/include/asm/io.h\n@@ -7,22 +7,22 @@\n #ifndef __SANDBOX_ASM_IO_H\n #define __SANDBOX_ASM_IO_H\n \n-/*\n- * Given a physical address and a length, return a virtual address\n- * that can be used to access the memory range with the caching\n- * properties specified by \"flags\".\n- */\n-#define MAP_NOCACHE\t(0)\n-#define MAP_WRCOMBINE\t(0)\n-#define MAP_WRBACK\t(0)\n-#define MAP_WRTHROUGH\t(0)\n+void *phys_to_virt(phys_addr_t paddr);\n+#define phys_to_virt phys_to_virt\n+\n+phys_addr_t virt_to_phys(void *vaddr);\n+#define virt_to_phys virt_to_phys\n \n void *map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags);\n+#define map_physmem map_physmem\n \n /*\n  * Take down a mapping set up by map_physmem().\n  */\n void unmap_physmem(const void *vaddr, unsigned long flags);\n+#define unmap_physmem unmap_physmem\n+\n+#include <asm-generic/io.h>\n \n /* For sandbox, we want addresses to point into our RAM buffer */\n static inline void *map_sysmem(phys_addr_t paddr, unsigned long len)\n","prefixes":["U-Boot","v2","13/13"]}