From patchwork Fri Jul 17 09:11:42 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Brodkin X-Patchwork-Id: 497036 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ozlabs.org (Postfix) with ESMTP id 9D5C8140776 for ; Fri, 17 Jul 2015 19:11:59 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id CE9CE32C83; Fri, 17 Jul 2015 09:11:58 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WJJwMwMm0cNK; Fri, 17 Jul 2015 09:11:53 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id 0FC2232D71; Fri, 17 Jul 2015 09:11:53 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id DE9E81BFBFC for ; Fri, 17 Jul 2015 09:11:51 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id DA5DC8C923 for ; Fri, 17 Jul 2015 09:11:51 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 95b5+P2CFJYf for ; Fri, 17 Jul 2015 09:11:49 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from smtprelay.synopsys.com (us01smtprelay-2.synopsys.com [198.182.60.111]) by whitealder.osuosl.org (Postfix) with ESMTPS id 645D68C80E for ; Fri, 17 Jul 2015 09:11:49 +0000 (UTC) Received: from us02secmta2.synopsys.com (us02secmta2.synopsys.com [10.12.235.98]) by smtprelay.synopsys.com (Postfix) with ESMTP id C8DFC10C0E63; Fri, 17 Jul 2015 02:11:47 -0700 (PDT) Received: from us02secmta2.internal.synopsys.com (us02secmta2.internal.synopsys.com [127.0.0.1]) by us02secmta2.internal.synopsys.com (Service) with ESMTP id BBC4055F13; Fri, 17 Jul 2015 02:11:47 -0700 (PDT) Received: from mailhost.synopsys.com (mailhost3.synopsys.com [10.12.238.238]) by us02secmta2.internal.synopsys.com (Service) with ESMTP id 8920F55F02; Fri, 17 Jul 2015 02:11:47 -0700 (PDT) Received: from mailhost.synopsys.com (localhost [127.0.0.1]) by mailhost.synopsys.com (Postfix) with ESMTP id 764D5C66; Fri, 17 Jul 2015 02:11:47 -0700 (PDT) Received: from abrodkin-e7440l.internal.synopsys.com (unknown [10.225.15.67]) by mailhost.synopsys.com (Postfix) with ESMTP id DD92AC44; Fri, 17 Jul 2015 02:11:44 -0700 (PDT) From: Alexey Brodkin To: buildroot@busybox.net Date: Fri, 17 Jul 2015 12:11:42 +0300 Message-Id: <1437124302-18610-1-git-send-email-abrodkin@synopsys.com> X-Mailer: git-send-email 2.4.3 Cc: Thomas Petazzoni , Alexey Brodkin Subject: [Buildroot] [PATCH v2] ARC: allow selection of MMU page size X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Modern ARC cores (those sporting MMU of version 3 and 4) allow selection of different page sizes (4, 8 or 16 kB) during ASIC design creation. And it's important to build a toolchain with page size setting that matches hardware. Otherwise user-space applications will fail on execution due to unexpected data layout/alignment etc. Signed-off-by: Alexey Brodkin Cc: Anton Kolesov Cc: Thomas Petazzoni Cc: Arnout Vandecappelle --- Changes compared to v1: [1] Use upper-case in BR2_ARC_PAGE_SIZE_x [2] Updated comments arch/Config.in.arc | 37 +++++++++++++++++++++++++++++++++++++ package/uclibc/uclibc.mk | 8 ++++++++ 2 files changed, 45 insertions(+) diff --git a/arch/Config.in.arc b/arch/Config.in.arc index b48a90f..1115d71 100644 --- a/arch/Config.in.arc +++ b/arch/Config.in.arc @@ -40,3 +40,40 @@ config BR2_GCC_TARGET_CPU default "arc700" if BR2_arc750d default "arc700" if BR2_arc770d default "archs" if BR2_archs38 + +choice + prompt "MMU Page Size" + default BR2_ARC_PAGE_SIZE_8K + help + MMU starting from version 3 (could be found in ARC 770) and now + version 4 (could be found in ARC HS38) allows selection of page + size during ASIC design creation. + + Following options are available for MMU v3 and v4: 4kB, 8kB and 16 kB. + + Default is 8 kB (that really matches the only page size in MMU v2). + It is important to build a toolchain with page size matching the + hardware configuration. Otherwise user-space applications will + fail at runtime. + +config BR2_ARC_PAGE_SIZE_4K + bool "4KB" + depends on BR2_arc770d || BR2_archs38 + +config BR2_ARC_PAGE_SIZE_8K + bool "8KB" + help + This is the one and only option available for MMUv2 and default + value for MMU v3 and v4. + +config BR2_ARC_PAGE_SIZE_16K + bool "16KB" + depends on BR2_arc770d || BR2_archs38 + +endchoice + +config BR2_ARC_PAGE_SIZE + string + default "4K" if BR2_ARC_PAGE_SIZE_4K + default "8K" if BR2_ARC_PAGE_SIZE_8K + default "16K" if BR2_ARC_PAGE_SIZE_16K diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk index 9dfafad..a2ba230 100644 --- a/package/uclibc/uclibc.mk +++ b/package/uclibc/uclibc.mk @@ -70,6 +70,13 @@ UCLIBC_ARC_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_ARC_TYPE)) define UCLIBC_ARC_TYPE_CONFIG $(call KCONFIG_ENABLE_OPT,$(UCLIBC_ARC_TYPE),$(@D)/.config) endef + +UCLIBC_ARC_PAGE_SIZE = CONFIG_ARC_PAGE_SIZE_$(call qstrip,$(BR2_ARC_PAGE_SIZE)) +define UCLIBC_ARC_PAGE_SIZE_CONFIG + $(SED) '/CONFIG_ARC_PAGE_SIZE_*/d' $(@D)/.config + $(call KCONFIG_ENABLE_OPT,$(UCLIBC_ARC_PAGE_SIZE),$(@D)/.config) +endef + endif # arc # @@ -367,6 +374,7 @@ define UCLIBC_KCONFIG_FIXUP_CMDS $(call KCONFIG_SET_OPT,SHARED_LIB_LOADER_PREFIX,"/lib",$(@D)/.config) $(UCLIBC_MMU_CONFIG) $(UCLIBC_ARC_TYPE_CONFIG) + $(UCLIBC_ARC_PAGE_SIZE_CONFIG) $(UCLIBC_ARM_ABI_CONFIG) $(UCLIBC_ARM_BX_CONFIG) $(UCLIBC_MIPS_ABI_CONFIG)