From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=pass header.i=@semihalf-com.20150623.gappssmtp.com header.s=20150623 header.b=yRJMtkcr; spf=none, err=SPF record not found (domain: semihalf.com, ip: 209.85.208.193, mailfrom: mw@semihalf.com) Received: from mail-lj1-f193.google.com (mail-lj1-f193.google.com [209.85.208.193]) by groups.io with SMTP; Fri, 12 Apr 2019 03:20:07 -0700 Received: by mail-lj1-f193.google.com with SMTP id f23so8385831ljc.0 for ; Fri, 12 Apr 2019 03:20:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=xxcD8305OkN8rSHT8XnoiapqiHtGxXXCDjBVXVSOCsY=; b=yRJMtkcrSlFSIxtoeCfW7FRzewuoDMkoDDEhnuSE7B5q9cbElQ/vQM0tYJ00wk/+7q DgPrfqdgcm7vH0VJhkFREKtCf5yThKCh4btR4mRDQQkZlliYUDEtKUOL2OSPhcUcFjBI 47MDLZt0axLKlqXNHQLV3rF6YajXHt0iaTLQOLwbIH+GgLl5puHtAofDssGtoNwLfvCY AqBq7G/wEti9gBkAqVPE9so48YKIELCw+bqyp4V3WTfzbcWzNDFyANlQRUEcLZc/vBxi L83ADjrh5SQ/xh2LhzGeFhqVigLkPdhNp/L+jHF8CjKuVdVQGCdtnU8zkVloI4i7uhRj oIog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=xxcD8305OkN8rSHT8XnoiapqiHtGxXXCDjBVXVSOCsY=; b=lRhRBOOtsiwBWHYdQpI/gHe+IcpzsET4OTJE7yFS1wqp+Z3i71BuAf51HEUdID9x3S OVH9uzYviMNrvb5LlZsqbLk0t6OoJCXoTiVNS6TqG/nrW2vL1GAF88an9W125P0p00r0 UDPO9i2Xk8jAHQ9k74TVlRoRfUBi3GjIMnKUZqIEYwYQnL+5hCwh7BwvciMgsNfQ5zGX L63kME3TsUWZGTpyRolHThMBNiRTPwZEeZKfvtycxfhqGSupcrk5K8QXD8aiHdKFVKP+ R/hpidpExghvHx5tHisehHYpoMydgqomaQcHDM2UViNdrsHFqWdLJR6RlU7hzsllI6i6 Vj6A== X-Gm-Message-State: APjAAAU/VyN+5QFYr/1iz5GBxLTTb7O97BI5PtVMXpMXQRZL+plRsbyg V++GUHdRdNgV12y8NSUPCpyrSfk+JjshcXCY X-Google-Smtp-Source: APXvYqzRCdiFNTGp6ryVDYUqMyFI8i1ADUaA1OAlxahG3Y/ZHleLSSRpXC3GaqaC5logEhlM5glauw== X-Received: by 2002:a2e:9c51:: with SMTP id t17mr29868608ljj.104.1555064404759; Fri, 12 Apr 2019 03:20:04 -0700 (PDT) Return-Path: Received: from gilgamesh.semihalf.com (31-172-191-173.noc.fibertech.net.pl. [31.172.191.173]) by smtp.gmail.com with ESMTPSA id o3sm8025240lfd.53.2019.04.12.03.20.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 12 Apr 2019 03:20:04 -0700 (PDT) From: "Marcin Wojtas" To: devel@edk2.groups.io Cc: leif.lindholm@linaro.org, ard.biesheuvel@linaro.org, nadavh@marvell.com, mw@semihalf.com, jsd@semihalf.com, jaz@semihalf.com, kostap@marvell.com, jeremy.linton@arm.com, Jici.Gao@arm.com Subject: [edk2-platforms: PATCH 5/6] Marvell/Armada7k8k: ArmadaSoCDescLib: Add more I2C controllers Date: Fri, 12 Apr 2019 12:19:35 +0200 Message-Id: <1555064376-22302-6-git-send-email-mw@semihalf.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1555064376-22302-1-git-send-email-mw@semihalf.com> References: <1555064376-22302-1-git-send-email-mw@semihalf.com> Hitherto SoC library of Armada7k8k was missing AP and CP-MSS I2C controllers. Fix that and update Armada70x0Db and Armada80x0Db I2C description accordingly. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas --- Platform/Marvell/Armada70x0Db/Armada70x0Db.dsc | 4 ++-- Platform/Marvell/Armada80x0Db/Armada80x0Db.dsc | 2 +- Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.h | 8 ++++++-- Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c | 5 ++++- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Platform/Marvell/Armada70x0Db/Armada70x0Db.dsc b/Platform/Marvell/Armada70x0Db/Armada70x0Db.dsc index e8cd177..01532b4 100644 --- a/Platform/Marvell/Armada70x0Db/Armada70x0Db.dsc +++ b/Platform/Marvell/Armada70x0Db/Armada70x0Db.dsc @@ -94,9 +94,9 @@ # I2C gMarvellTokenSpaceGuid.PcdI2cSlaveAddresses|{ 0x50, 0x57, 0x60, 0x21 } gMarvellTokenSpaceGuid.PcdI2cSlaveBuses|{ 0x0, 0x0, 0x0, 0x0 } - gMarvellTokenSpaceGuid.PcdI2cControllersEnabled|{ 0x1, 0x1 } + gMarvellTokenSpaceGuid.PcdI2cControllersEnabled|{ 0x0, 0x1, 0x1 } gMarvellTokenSpaceGuid.PcdEepromI2cAddresses|{ 0x50, 0x57 } - gMarvellTokenSpaceGuid.PcdEepromI2cBuses|{ 0x0, 0x0 } + gMarvellTokenSpaceGuid.PcdEepromI2cBuses|{ 0x1, 0x1 } gMarvellTokenSpaceGuid.PcdI2cClockFrequency|250000000 gMarvellTokenSpaceGuid.PcdI2cBaudRate|100000 gMarvellTokenSpaceGuid.PcdI2cBusCount|2 diff --git a/Platform/Marvell/Armada80x0Db/Armada80x0Db.dsc b/Platform/Marvell/Armada80x0Db/Armada80x0Db.dsc index 8e8c2ba..a28e330 100644 --- a/Platform/Marvell/Armada80x0Db/Armada80x0Db.dsc +++ b/Platform/Marvell/Armada80x0Db/Armada80x0Db.dsc @@ -103,7 +103,7 @@ # I2C gMarvellTokenSpaceGuid.PcdI2cSlaveAddresses|{ 0x50, 0x57, 0x50, 0x57, 0x21, 0x25 } gMarvellTokenSpaceGuid.PcdI2cSlaveBuses|{ 0x0, 0x0, 0x1, 0x1, 0x0, 0x0 } - gMarvellTokenSpaceGuid.PcdI2cControllersEnabled|{ 0x1, 0x0, 0x1 } + gMarvellTokenSpaceGuid.PcdI2cControllersEnabled|{ 0x0, 0x1, 0x0, 0x0, 0x1 } gMarvellTokenSpaceGuid.PcdEepromI2cAddresses|{ 0x50, 0x57, 0x50, 0x57 } gMarvellTokenSpaceGuid.PcdEepromI2cBuses|{ 0x0, 0x0, 0x1, 0x1 } gMarvellTokenSpaceGuid.PcdI2cClockFrequency|250000000 diff --git a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.h b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.h index c2d7933..8bbc5b0 100644 --- a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.h +++ b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.h @@ -56,8 +56,12 @@ // // Platform description of I2C controllers // -#define MV_SOC_I2C_PER_CP_COUNT 2 -#define MV_SOC_I2C_BASE(I2c) (0x701000 + ((I2c) * 0x100)) +#define MV_SOC_I2C_PER_AP_COUNT 1 +#define MV_SOC_I2C_AP_BASE (MV_SOC_AP806_BASE + 0x511000) +#define MV_SOC_I2C_PER_CP_COUNT 3 +#define MV_SOC_I2C_BASE(I2c) ((I2c < 2) ? \ + (0x701000 + (I2c) * 0x100) : \ + 0x211000) // // Platform description of ICU (Interrupt Consolidation Unit) controllers diff --git a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c index 584f445..355be64 100644 --- a/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c +++ b/Silicon/Marvell/Armada7k8k/Library/Armada7k8kSoCDescLib/Armada7k8kSoCDescLib.c @@ -157,7 +157,7 @@ ArmadaSoCDescI2cGet ( CpCount = FixedPcdGet8 (PcdMaxCpCount); - *DescCount = CpCount * MV_SOC_I2C_PER_CP_COUNT; + *DescCount = CpCount * MV_SOC_I2C_PER_CP_COUNT + MV_SOC_I2C_PER_AP_COUNT; Desc = AllocateZeroPool (*DescCount * sizeof (MV_SOC_I2C_DESC)); if (Desc == NULL) { DEBUG ((DEBUG_ERROR, "%a: Cannot allocate memory\n", __FUNCTION__)); @@ -166,6 +166,9 @@ ArmadaSoCDescI2cGet ( *I2cDesc = Desc; + Desc->I2cBaseAddress = MV_SOC_I2C_AP_BASE; + Desc++; + for (CpIndex = 0; CpIndex < CpCount; CpIndex++) { for (Index = 0; Index < MV_SOC_I2C_PER_CP_COUNT; Index++) { Desc->I2cBaseAddress = MV_SOC_CP_BASE (CpIndex) + MV_SOC_I2C_BASE (Index); -- 2.7.4