From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933566AbcCNGC0 (ORCPT ); Mon, 14 Mar 2016 02:02:26 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:9738 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S933316AbcCNGCT (ORCPT ); Mon, 14 Mar 2016 02:02:19 -0400 From: Yong Wu To: Joerg Roedel , Robin Murphy , Will Deacon CC: Matthias Brugger , Daniel Kurtz , Tomasz Figa , Lucas Stach , Rob Herring , Catalin Marinas , , Sasha Hauer , , , , , , Laurent Pinchart , , Subject: [PATCH v2 0/2] MT8173 IOMMU 4GB MODE SUPPORT Date: Mon, 14 Mar 2016 06:01:09 +0800 Message-ID: <1457906471-31549-1-git-send-email-yong.wu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch-set add MTK 4GB mode support on the Short-Descriptor. Normally, the memory map in mt8173 looks like below: Physical addr | 1st GB | -> HW SRAM and Regs |-------- | 2nd GB | -> Dram 1st GB |-------- | 3rd GB | -> Dram 2nd GB |-------- | 4th GB | -> Dram 3rd GB |-------- Then if the dram size is 4GB, we have to add bit33 in the physical address. We have a "DRAM 4GB mode" toggle bit for this. If it is enabled, from CPU's point of view, the dram will be shifted to start from PA 0x1_00000000. Then the dram PA is from 0x1_00000000~0x1_ffffffff. MTK extend the bit9 of the standard pgtable descriptor as the 4GB mode. we add a special quirk for this. v2: - Rebase on next-20160310. - Rename IO_PGTABLE_QUIRK_MTK_4GB_EXT to IO_PGTABLE_QUIRK_ARM_MTK_4GB. - Improve the comment of this "4GB mode". Yong Wu (2): iommu/io-pgtable: Add MTK 4GB mode in Short-descriptor iommu/mediatek: Add 4GB mode support drivers/iommu/io-pgtable-arm-v7s.c | 13 ++++++++++++- drivers/iommu/io-pgtable.h | 6 ++++++ drivers/iommu/mtk_iommu.c | 14 +++++++++++--- 3 files changed, 29 insertions(+), 4 deletions(-) -- 1.8.1.1.dirty