summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeif Lindholm <leif.lindholm@linaro.org>2017-11-23 16:07:27 +0000
committerLeif Lindholm <leif.lindholm@linaro.org>2017-11-23 16:07:27 +0000
commitd87f6e2da1ec667141d1fcbaa79d57b5efb7cbd3 (patch)
tree2b2e5fb9bc7c6028e433c9fe460182f14e1560d5
parent596eaac01446521d649165c4b4c21851a17f0758 (diff)
patches: add Juno and D03/D05 patches for 17.10-rc3
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
-rw-r--r--patches/edk2-non-osi/0002-Hisilicon-D0x-Sas-fix-occasional-exception.patch828
-rw-r--r--patches/edk2-non-osi/0003-Hisilicon-LpcSerialPortLib-return-SUCCESS-for-SetAtt.patch72
-rw-r--r--patches/edk2/0003-Drivers-SataSiI3132Dxe-Fixed-PCI-IO-read-and-write-o.patch43
-rw-r--r--patches/edk2/0004-Drivers-SataSiI3132Dxe-Allow-64-bit-DMA-transfer.patch30
4 files changed, 973 insertions, 0 deletions
diff --git a/patches/edk2-non-osi/0002-Hisilicon-D0x-Sas-fix-occasional-exception.patch b/patches/edk2-non-osi/0002-Hisilicon-D0x-Sas-fix-occasional-exception.patch
new file mode 100644
index 0000000..8b135be
--- /dev/null
+++ b/patches/edk2-non-osi/0002-Hisilicon-D0x-Sas-fix-occasional-exception.patch
@@ -0,0 +1,828 @@
+From 915399129a5fd6ee69f1ecfdde5609888bf122c1 Mon Sep 17 00:00:00 2001
+From: Heyi Guo <heyi.guo@linaro.org>
+Date: Mon, 20 Nov 2017 21:21:24 +0800
+Subject: [PATCH 1/2] Hisilicon/D0x/Sas: fix occasional exception
+
+There is a temporary variable in SAS driver which was not initialized
+with SAS disk, so the value of this variable depends on the unknown
+stack content. Later it will be used as source buffer in gBS->CopyMem,
+and a translation fault exception would occur if the value is beyond
+valid memory address as a pointer. Details can be found in
+https://bugs.linaro.org/show_bug.cgi?id=3464
+
+This patch is to fix this bug, avoiding to use uninitialized value
+when connecting SAS disks.
+
+Contributed-under: TianoCore Contribution Agreement 1.1
+Signed-off-by: Heyi Guo <heyi.guo@linaro.org>
+Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
+---
+ .../Hisilicon/D03/Drivers/Sas/SasDriverDxe.efi | Bin 98144 -> 98112 bytes
+ .../Hisilicon/D05/Drivers/Sas/SasDriverDxe.efi | Bin 116288 -> 112832 bytes
+ 2 files changed, 0 insertions(+), 0 deletions(-)
+
+diff --git a/Platform/Hisilicon/D03/Drivers/Sas/SasDriverDxe.efi b/Platform/Hisilicon/D03/Drivers/Sas/SasDriverDxe.efi
+index c9b2ad6bd5d64610d5e1483e5be7b726f3535184..c37b922388c5dc23a45591b52736c3a134742d11 100644
+GIT binary patch
+delta 9062
+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
+Wq_X5p$@P+;(%9hAfyjTw-~R$C0qLIr
+
+delta 9054
+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
+z5sdXgVp^R79Vrs)DPkHXWepA;)`y8{yS1>`k%0AwkVZ1GJJ2^y-F8>xpe8yOX!vhe
+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
+DlO-Lp
+
+diff --git a/Platform/Hisilicon/D05/Drivers/Sas/SasDriverDxe.efi b/Platform/Hisilicon/D05/Drivers/Sas/SasDriverDxe.efi
+index 9a680c5e04d8dc190c5a40d4c6721d0efb105c89..a57b8e170600a14b8b11fb629db461bfebdc8458 100644
+GIT binary patch
+delta 19272
+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
+
+delta 23018
+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
+
+--
+2.11.0
+
diff --git a/patches/edk2-non-osi/0003-Hisilicon-LpcSerialPortLib-return-SUCCESS-for-SetAtt.patch b/patches/edk2-non-osi/0003-Hisilicon-LpcSerialPortLib-return-SUCCESS-for-SetAtt.patch
new file mode 100644
index 0000000..66286c0
--- /dev/null
+++ b/patches/edk2-non-osi/0003-Hisilicon-LpcSerialPortLib-return-SUCCESS-for-SetAtt.patch
@@ -0,0 +1,72 @@
+From 0b6df3e0671bf3aa52245785c7b07c52c6e9896b Mon Sep 17 00:00:00 2001
+From: Heyi Guo <heyi.guo@linaro.org>
+Date: Mon, 20 Nov 2017 21:29:33 +0800
+Subject: [PATCH 2/2] Hisilicon/LpcSerialPortLib: return SUCCESS for
+ SetAttributes
+
+After EDK2 upgrades to 91cc526, SerialDxe will exit immediately if
+SerialPortLib.SetAttributes returns error, and there will be no serial
+port terminal in UEFI BDS. Since Hisilicon LPC serial port does not
+support setting attributes, we change SerialPortSetAttributes in
+LpcSerialPortLib to simply return SUCCESS to get around of this.
+
+The issue can be found in https://bugs.linaro.org/show_bug.cgi?id=3464
+
+It only affects Hisilicon D03 platform since only D03 uses LPC serial
+port.
+
+Contributed-under: TianoCore Contribution Agreement 1.1
+Signed-off-by: Heyi Guo <heyi.guo@linaro.org>
+Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
+---
+ .../Uart/LpcSerialPortLib/LpcSerialPortLib.lib | Bin 16942 -> 16950 bytes
+ 1 file changed, 0 insertions(+), 0 deletions(-)
+
+diff --git a/Silicon/Hisilicon/Hi1610/Library/Uart/LpcSerialPortLib/LpcSerialPortLib.lib b/Silicon/Hisilicon/Hi1610/Library/Uart/LpcSerialPortLib/LpcSerialPortLib.lib
+index d6ce06802ccd527f239ab2c73b86c0ea730e717a..00c5c2fc377d049b027379583d437532d70acfca 100644
+GIT binary patch
+delta 1641
+zcmaiyUuauZ9LMiDX-($Xnyl@;NxG)#KMdQFdvE^NQBx3_4(S@G8^e{kG`&r-rMV?d
+zSzECgI*6j!bYEpJ;^x!Jz)lG$R9Jm+eGw`Xq#%O~guV##MMV5lPm-HGTnIZ4-*e9Q
+z^E<!a?;OtN4f6F3QnH(5Sq@79$@f*?8>GLnaXMv54pvoi)->q%vpE>>hH;ySq*UG|
+z7m1}}=s5A@fLrG{?&HeA$k271HmotX^TZQF`@NdGU3Gsks4X0K{ZaXB%X^27c>~8$
+z?oB*yvs;srB!`B)K1s}{<5@MK<`hwxx$1?*e6l$_Z+0|?ADQ{)@PWB&qFGIGd`5{~
+zO^Ro-iOk}RBF1uRo^_Pr#FRRxh|P}Sar;FSEk~LbEpJ*jiI7pVNoP$KvkU2DR+(|8
+zvw03v?Qsls{N#9Uk*OEXojLn@(2v!20VAC&*yAU$)!C2VI^D<Sl1f&|#WU`ll3Z}B
+z*~~Ho-eH_xOlR`xEJQwo4ZizyR&~#(6{mZ4Hoc_GxR>NGTdQ;Fyn8kmpHtlPD(gwf
+zaSMsblzQ#eRGcl-D@uNOUctB!UH_mB=ev#`o}7;-lvq5M&M)IH!H2Nb@x1;m<^jCa
+zVWFNx`J7d5C1w=63zRzvlVg=gC^`z{I~aQkWDiBAP8gjBBn)G3fy7Yk-6k$X`wAq5
+z9i|r$?T^wW14_po*zC6w6L$I|hc+zi%drtb+dzoyBRUWvV<<AMV2A0CFb+mo<>+AK
+z#geNYyGm+Fq&92$;b6>UyHD%BmWrc<<GPu(1<@nW*9gWuqvU(6c?4TMkmFv_7LCxq
+zvCZgF_T#G~R-c|Fn!r;=|6pmWL#a>C=oR#cf~{4f*L2i{2}X08`@W7ILV?keR`(Mf
+zox*)lzypuz*j+uLsEEA%Tg~3n;V(FtCEoUrX8)?gpCTd&HbHZL*U=@Yl3>52_4Kcf
+zUZJ?dQoFP_=e27$9<mp^?C`X9s82^9ayMn(c2`U7*U=zES)}h!T$X>Pp%#R_9(s==
+z<@JywxaAeu_t;@-!k=ET3S7QR?7J0xBI(69Oiy8-=@<mRNIDVq*MgS(qwF7UGpiR*
+znVv#Vpc*t0h{EGB;j@5?xUmxu?IrC>i&}e)E16qi4)XTAX0Pk;=M*DB-WF`F-+4=i
+z-+~$x=?Z(bpodtoTie_WjoN?EZa=IYY?OP%;c|$#y{kRp1s#4FYazkbruF)^jvg;>
+zhxUy$L*X3e$%lw|1+szLUV&C9N<N<cM-lV$qzgSG0u38*C%}_&Ot8(g0hM9CygKqF
+F`5!@Qbszu$
+
+delta 1559
+zcma)*QD|FL7{~89x3$?iO|mTaHeqe<nhtFTIXCIey_-YZGHkoann)djg=$Q1O=j8~
+zl9aJA%+xW;K(h5O2oo0B)7ZmS4V1lgf>QBe*@LK{b1gp1?ZLe{5u~0pw|lr?=Xv;l
+z=lg!=JKy=vJ$LCWxqg;h2)fj`rpNl#*caVzlJKUZC{Z<LG*neKRM#|a^>|E0l`t}2
+ztCI=hU0W9}u8O<*1VQ*@ZGG^-2RJBJylbNG+N$VpMwc7WpGB)>wSDNz+E~kcd)tSi
+zAW&fjciq8YMpgTbxTeNf(V8oyO*U)JSS&wR%)ss0SN?Czj!v1$_ugfPXVba4DU%Hi
+z719}96IjNYG1>pl+j{+eehz1$W9D>r>#WA%A9zAr^`>|;Tj1K~-s=RWFQq)K8z|lh
+zeB=8bV?OzrV~59H*EQVnbwc--@Q*+I>~y|h<_lKZEEdfvbV&>;X*bSG({1m}WpkzM
+zEFMZ>bjv<m^N)8Iv!~3`$-F5P)8iTI#Gy>8AdH)ZY$}(u3Z<l#%VAU=xw!h=)6eDh
+z^x#OxF5Hx3?c@1W+DxVj+0scokVCb}4z-oIQ0Xkwzxv?mdY`<2N>`cOggaCwcTnNl
+z0k^VFRJiw)$tWs&mWhHycbUA6I@cr;;Sq8UpN0)0pdKFBw&dk+kdI!-JqEdlM9%;j
+zM1|{5sB`@m?!5!NXoBl}t+Kb`B9jP3WL%EBcKVyS0wsdb$>%8n$;fbUg}aSmG|dyd
+zNU#`@aGSZjha9LC_abuOHQEeMI_P7#nH;#>(hMJW(Bl~3^kci|X$PHv#i?NDUU1N_
+zQRVa%J9@=I>!>q1c$)uqjZtfwC+#R?L6w3#?Yh4@Xo^5prES01g&(5IFKt@&1n$}k
+z|8ykq@2ARv^L8<hz3t}J_F<XR?RL&?2YnTfINfJQdmZ#XLQ$D~1|!Po6%m=}5A-(?
+zgRuzxPDDNyAq7-ptntCQZpV6zHGtYbNnS*ypYivy%+-%aT#q26F|q>*ZDY|HZJ30x
+z!b9iqn5!Sp#~X{@h>ws6s(db^9%pn>T+pS!-}YsEWZTW=u7c@u;48cJs)H(cOP9$F
+zoX{D)B;u+bArwD09hWgoZX;pH0sf#j#%OEPZtnd%%AAJni%UDG7dH%<bk$aj`)%|T
+y#b8vTm$-RJqDypPzeN9_NFI>r4iUFrmPjw^noNheb5NoaBF^X%$=9sG74k0=*?O!1
+
+--
+2.11.0
+
diff --git a/patches/edk2/0003-Drivers-SataSiI3132Dxe-Fixed-PCI-IO-read-and-write-o.patch b/patches/edk2/0003-Drivers-SataSiI3132Dxe-Fixed-PCI-IO-read-and-write-o.patch
new file mode 100644
index 0000000..77fe101
--- /dev/null
+++ b/patches/edk2/0003-Drivers-SataSiI3132Dxe-Fixed-PCI-IO-read-and-write-o.patch
@@ -0,0 +1,43 @@
+From 050d513bacec9999f9f3e9eeb558ead37d74c2ab Mon Sep 17 00:00:00 2001
+From: Daniil Egranov <daniil.egranov@arm.com>
+Date: Fri, 27 Oct 2017 00:33:23 -0500
+Subject: [PATCH 1/2] Drivers/SataSiI3132Dxe: Fixed PCI IO read and write
+ operations
+
+The ATA pass through read should use PCI IO bus master write operation
+and ATA pass through write should use PCI IO bus master read operation
+as the read and write operations are executed from the bus master's
+point of view.
+
+Contributed-under: TianoCore Contribution Agreement 1.1
+Signed-off-by: Daniil Egranov <daniil.egranov@arm.com>
+Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+---
+ EmbeddedPkg/Drivers/SataSiI3132Dxe/SiI3132AtaPassThru.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/EmbeddedPkg/Drivers/SataSiI3132Dxe/SiI3132AtaPassThru.c b/EmbeddedPkg/Drivers/SataSiI3132Dxe/SiI3132AtaPassThru.c
+index 2fb5fd68db..a938563ebd 100644
+--- a/EmbeddedPkg/Drivers/SataSiI3132Dxe/SiI3132AtaPassThru.c
++++ b/EmbeddedPkg/Drivers/SataSiI3132Dxe/SiI3132AtaPassThru.c
+@@ -104,7 +104,7 @@ SiI3132AtaPassThruCommand (
+ }
+
+ Status = PciIo->Map (
+- PciIo, EfiPciIoOperationBusMasterRead,
++ PciIo, EfiPciIoOperationBusMasterWrite,
+ Packet->InDataBuffer, &InDataBufferLength, &PhysInDataBuffer, &PciAllocMapping
+ );
+ if (EFI_ERROR (Status)) {
+@@ -139,7 +139,7 @@ SiI3132AtaPassThruCommand (
+ OutDataBufferLength = Packet->OutTransferLength * SataDevice->BlockSize;
+
+ Status = PciIo->Map (
+- PciIo, EfiPciIoOperationBusMasterWrite,
++ PciIo, EfiPciIoOperationBusMasterRead,
+ Packet->OutDataBuffer, &OutDataBufferLength, &PhysOutDataBuffer, &PciAllocMapping
+ );
+ if (EFI_ERROR (Status)) {
+--
+2.11.0
+
diff --git a/patches/edk2/0004-Drivers-SataSiI3132Dxe-Allow-64-bit-DMA-transfer.patch b/patches/edk2/0004-Drivers-SataSiI3132Dxe-Allow-64-bit-DMA-transfer.patch
new file mode 100644
index 0000000..4553d14
--- /dev/null
+++ b/patches/edk2/0004-Drivers-SataSiI3132Dxe-Allow-64-bit-DMA-transfer.patch
@@ -0,0 +1,30 @@
+From bca18551f62444b7840d6c93a82945ecf06ed9c6 Mon Sep 17 00:00:00 2001
+From: Daniil Egranov <daniil.egranov@arm.com>
+Date: Fri, 27 Oct 2017 00:33:24 -0500
+Subject: [PATCH 2/2] Drivers/SataSiI3132Dxe: Allow 64-bit DMA transfer
+
+Set a PCI IO attribute allowing 64-bit DMA transfer.
+
+Contributed-under: TianoCore Contribution Agreement 1.1
+Signed-off-by: Daniil Egranov <daniil.egranov@arm.com>
+Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+---
+ EmbeddedPkg/Drivers/SataSiI3132Dxe/SataSiI3132.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/EmbeddedPkg/Drivers/SataSiI3132Dxe/SataSiI3132.c b/EmbeddedPkg/Drivers/SataSiI3132Dxe/SataSiI3132.c
+index f4946552a0..c1760fdc1b 100644
+--- a/EmbeddedPkg/Drivers/SataSiI3132Dxe/SataSiI3132.c
++++ b/EmbeddedPkg/Drivers/SataSiI3132Dxe/SataSiI3132.c
+@@ -384,7 +384,7 @@ SataSiI3132DriverBindingStart (
+ &Supports
+ );
+ if (!EFI_ERROR (Status)) {
+- Supports &= EFI_PCI_DEVICE_ENABLE;
++ Supports &= EFI_PCI_DEVICE_ENABLE | EFI_PCI_IO_ATTRIBUTE_DUAL_ADDRESS_CYCLE;
+ Status = PciIo->Attributes (
+ PciIo,
+ EfiPciIoAttributeOperationEnable,
+--
+2.11.0
+