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=pj54ovqE; spf=none, err=SPF record not found (domain: semihalf.com, ip: 209.85.208.196, mailfrom: mw@semihalf.com) Received: from mail-lj1-f196.google.com (mail-lj1-f196.google.com [209.85.208.196]) by groups.io with SMTP; Tue, 16 Apr 2019 02:23:12 -0700 Received: by mail-lj1-f196.google.com with SMTP id f18so18424231lja.10 for ; Tue, 16 Apr 2019 02:23:12 -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=pj54ovqEZgdruQI0tpOP3bjpH5EYCMqF1cS1IjbEp/MkEVzY7a9DNTNjovbjOQWVQ1 efW4w6JOWhxh0ZAi+T9iShtiFlXNe8B9UAchDK/5CL/BVBB3cqPs03Z8vu/SCEghD7HJ g/Gd/2TtnL9UK2kD8zJB8BsYa+mZx90fVpAFNc9iR+sTY4fAMkPIlkgYct+VhBFHy+NS SAguVGlBOzHWXRah4VLp3NIzUmLqhBgQcvYAKvy31vhtbwWBtZlYPO3rGz8SuF2IuN0c B7NHUXbH3u9jxf9ZHADAKCS2Un0BDn8JUoh6w6kqudlfpGh0RkuKuy4dYCWuumNzNhlu OWxw== 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=m8X4fYqvOexX2/38SIcyroATC3vXTcVi8Irn1evY4w1Mq6Kog7C3VbYMDKmTulTVKx WcCHxbECysnI8BRXpabrKjTGA6LlnreMFX3n4ME6YmcJDFVLs8zvmn1hmeOBDZ+gqQch tLMmUtsnm7JhmRUT9A45Z8KO/MAvti00gPMEZgss+Hx9sxNT8v5LGYxKkBH6K2zgmTT+ y1PZGMGhnDWYMCpIrcq3ZJlJFJfV+rjvvPZrkozY2+zO4ZtnknB8OUvDYNmtr+pqVzwm oLsYGROQh2VRTOvaYX4zWj7UAmX62/Vhsg4xfuXD8SNOGcqFx1LHe5km88qGECpfAiHN zeGA== X-Gm-Message-State: APjAAAVRGj9lGOdFZfr6a8CZfOcvA6RuZuaoAOoasVZ2mYFkiSPXzd/y ThL8ZmebZgMWJcTYRjiolzrPN5pJcG+tTg== X-Google-Smtp-Source: APXvYqzyav4EoX+aBBWRY4xz2yr424ui9F39xXnJKJ0EQPzLMFRM3Tx/x5a5wNyJMTV5fvN+HFC7VA== X-Received: by 2002:a2e:9151:: with SMTP id q17mr495198ljg.87.1555406590284; Tue, 16 Apr 2019 02:23:10 -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 v141sm2941504lfa.52.2019.04.16.02.23.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 16 Apr 2019 02:23:09 -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 v2 5/6] Marvell/Armada7k8k: ArmadaSoCDescLib: Add more I2C controllers Date: Tue, 16 Apr 2019 11:22:25 +0200 Message-Id: <1555406546-5261-6-git-send-email-mw@semihalf.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1555406546-5261-1-git-send-email-mw@semihalf.com> References: <1555406546-5261-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