<feed xmlns='http://www.w3.org/2005/Atom'>
<title>u-boot.git/drivers/block, branch v2015.07</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/'/>
<entry>
<title>Merge git://git.denx.de/u-boot-marvell</title>
<updated>2015-07-10T13:40:48+00:00</updated>
<author>
<name>Tom Rini</name>
<email>trini@konsulko.com</email>
</author>
<published>2015-07-10T13:40:48+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=a70e86ffca84d2e3c8b1d8d40553cf8e3aae4896'/>
<id>a70e86ffca84d2e3c8b1d8d40553cf8e3aae4896</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>block: ahci: Don't enable port interrupts</title>
<updated>2015-07-10T12:55:25+00:00</updated>
<author>
<name>Stefan Roese</name>
<email>sr@denx.de</email>
</author>
<published>2015-06-29T12:58:12+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=2cc1aa2e0010249fe671e38eb412d0cbefb0bf73'/>
<id>2cc1aa2e0010249fe671e38eb412d0cbefb0bf73</id>
<content type='text'>
This patch changes the initialization of the AHCI controller to not
enable the default interrupts (DEF_PORT_IRQ). As interrupts are
not used in U-Boot in general, this should not break the common AHCI
driver operation.

This change is needed to support the Marvell Armada 38x AHCI
controller. With interrupts enabled, this results in timeouts in
ahci_device_data_io(). Not enabling these interrupts fixes this
problem and the common AHCI driver works fine.

Signed-off-by: Stefan Roese &lt;sr@denx.de&gt;
Reviewed-by: Simon Glass &lt;sjg@chromium.org&gt;
Cc: Tom Rini &lt;trini@konsulko.com&gt;
Cc: Hans de Goede &lt;hdegoede@redhat.com&gt;
Cc: Luka Perkov &lt;luka.perkov@sartura.hr&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch changes the initialization of the AHCI controller to not
enable the default interrupts (DEF_PORT_IRQ). As interrupts are
not used in U-Boot in general, this should not break the common AHCI
driver operation.

This change is needed to support the Marvell Armada 38x AHCI
controller. With interrupts enabled, this results in timeouts in
ahci_device_data_io(). Not enabling these interrupts fixes this
problem and the common AHCI driver works fine.

Signed-off-by: Stefan Roese &lt;sr@denx.de&gt;
Reviewed-by: Simon Glass &lt;sjg@chromium.org&gt;
Cc: Tom Rini &lt;trini@konsulko.com&gt;
Cc: Hans de Goede &lt;hdegoede@redhat.com&gt;
Cc: Luka Perkov &lt;luka.perkov@sartura.hr&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ahci: Fix compiling warnings under 64bit platforms</title>
<updated>2015-07-09T16:35:24+00:00</updated>
<author>
<name>Tang Yuantian</name>
<email>Yuantian.Tang@freescale.com</email>
</author>
<published>2015-07-09T06:37:30+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=fa31377ef0fd1096fbeab9c240582a93c4da9f6d'/>
<id>fa31377ef0fd1096fbeab9c240582a93c4da9f6d</id>
<content type='text'>
When compling under 64bit platforms, there are lots of warnings,
like:

drivers/block/ahci.c:114:18: warning: cast to pointer from integer
 of different size [-Wint-to-pointer-cast]
  u8 *port_mmio = (u8 *)probe_ent-&gt;port[port].port_mmio;
                  ^
drivers/block/ahci.c: In function ?.hci_host_init?.
drivers/block/ahci.c:218:49: warning: cast from pointer to integer
 of different size [-Wpointer-to-int-cast]
   probe_ent-&gt;port[i].port_mmio = ahci_port_base((u32) mmio, i);

......

Reviewed-by: Simon Glass &lt;sjg@chromium.org&gt;
Signed-off-by: Shaohui Xie &lt;Shaohui.Xie@freescale.com&gt;
Signed-off-by: Tang Yuantian &lt;Yuantian.Tang@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When compling under 64bit platforms, there are lots of warnings,
like:

drivers/block/ahci.c:114:18: warning: cast to pointer from integer
 of different size [-Wint-to-pointer-cast]
  u8 *port_mmio = (u8 *)probe_ent-&gt;port[port].port_mmio;
                  ^
drivers/block/ahci.c: In function ?.hci_host_init?.
drivers/block/ahci.c:218:49: warning: cast from pointer to integer
 of different size [-Wpointer-to-int-cast]
   probe_ent-&gt;port[i].port_mmio = ahci_port_base((u32) mmio, i);

......

Reviewed-by: Simon Glass &lt;sjg@chromium.org&gt;
Signed-off-by: Shaohui Xie &lt;Shaohui.Xie@freescale.com&gt;
Signed-off-by: Tang Yuantian &lt;Yuantian.Tang@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ahci: extend data io wait to 10s</title>
<updated>2015-06-12T20:53:04+00:00</updated>
<author>
<name>Mark Langsdorf</name>
<email>mark.langsdorf@gmail.com</email>
</author>
<published>2015-06-04T23:58:46+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=f8b009e8b783519023ab4ee0bfff59c0eef3ffdd'/>
<id>f8b009e8b783519023ab4ee0bfff59c0eef3ffdd</id>
<content type='text'>
The AHCI driver currently waits 5s before timing out when sending a
data command to a drive. Some drives take upwards of 8s to respond to
the initial data command while they're spinning up. Increase the
data io timeout to 10s so that those drives can be found on initial
scsi scan.

Signed-off-by: Mark Langsdorf &lt;mark.langsdorf@gmail.com&gt;
Signed-off-by: Andre Przywara &lt;osp@andrep.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The AHCI driver currently waits 5s before timing out when sending a
data command to a drive. Some drives take upwards of 8s to respond to
the initial data command while they're spinning up. Increase the
data io timeout to 10s so that those drives can be found on initial
scsi scan.

Signed-off-by: Mark Langsdorf &lt;mark.langsdorf@gmail.com&gt;
Signed-off-by: Andre Przywara &lt;osp@andrep.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ahci: support LBA48 data reads for 2+TB drives</title>
<updated>2015-06-12T20:52:32+00:00</updated>
<author>
<name>Mark Langsdorf</name>
<email>mark.langsdorf@gmail.com</email>
</author>
<published>2015-06-04T23:58:45+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=2b42c9317db730170ba8e1eb1c0417955c6e68bb'/>
<id>2b42c9317db730170ba8e1eb1c0417955c6e68bb</id>
<content type='text'>
Enable full 48-bit LBA48 data reads by passing the upper word of the
LBA block pointer in bytes 9 and 10 of the FIS.

This allows uboot to load data from any arbitrary sector on a drive
with 2 or more TB of available data connected to an AHCI controller.

Signed-off-by: Mark Langsdorf &lt;mark.langsdorf@gmail.com&gt;
Signed-off-by: Andre Przywara &lt;osp@andrep.de&gt;
[trini: Make use of CONFIG_SYS_64BIT_LBA in a few places to drop
 warnings on platforms that don't enable that feature ]
Signed-off-by: Tom Rini &lt;trini@konsulko.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Enable full 48-bit LBA48 data reads by passing the upper word of the
LBA block pointer in bytes 9 and 10 of the FIS.

This allows uboot to load data from any arbitrary sector on a drive
with 2 or more TB of available data connected to an AHCI controller.

Signed-off-by: Mark Langsdorf &lt;mark.langsdorf@gmail.com&gt;
Signed-off-by: Andre Przywara &lt;osp@andrep.de&gt;
[trini: Make use of CONFIG_SYS_64BIT_LBA in a few places to drop
 warnings on platforms that don't enable that feature ]
Signed-off-by: Tom Rini &lt;trini@konsulko.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fsl/sata: Replace sprintf() with snprintf()</title>
<updated>2015-05-28T12:18:24+00:00</updated>
<author>
<name>Tang Yuantian</name>
<email>Yuantian.Tang@freescale.com</email>
</author>
<published>2015-05-06T03:21:33+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=14f66d65a33f622b8138ab0fcd1e18060a2355c2'/>
<id>14f66d65a33f622b8138ab0fcd1e18060a2355c2</id>
<content type='text'>
Function 'sprintf' does not check buffer boundaries but outputs
to the buffer of fixed size which could potentially cause buffer
overflow. Use a safer function to replace it.

Signed-off-by: Tang Yuantian &lt;Yuantian.Tang@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Function 'sprintf' does not check buffer boundaries but outputs
to the buffer of fixed size which could potentially cause buffer
overflow. Use a safer function to replace it.

Signed-off-by: Tang Yuantian &lt;Yuantian.Tang@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ahci: mmio_base is a virtual address</title>
<updated>2015-04-18T20:54:29+00:00</updated>
<author>
<name>Scott Wood</name>
<email>scottwood@freescale.com</email>
</author>
<published>2015-04-17T14:19:01+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=9efaca3e847696ed40fca1dbbc621fcc35b8d94c'/>
<id>9efaca3e847696ed40fca1dbbc621fcc35b8d94c</id>
<content type='text'>
Don't store it in a u32.

Don't dereference the bus address as if it were a virtual address
(fixes 284231e49a2b4 ("ahci: Support splitting of read transactions
into multiple chunks")).

Fixes crash on boot in MPC8641HPCN_36BIT target.

Signed-off-by: Scott Wood &lt;scottwood@freescale.com&gt;
Cc: Vadim Bendebury &lt;vbendeb@chromium.org&gt;
Acked-by: York Sun &lt;yorksun@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Don't store it in a u32.

Don't dereference the bus address as if it were a virtual address
(fixes 284231e49a2b4 ("ahci: Support splitting of read transactions
into multiple chunks")).

Fixes crash on boot in MPC8641HPCN_36BIT target.

Signed-off-by: Scott Wood &lt;scottwood@freescale.com&gt;
Cc: Vadim Bendebury &lt;vbendeb@chromium.org&gt;
Acked-by: York Sun &lt;yorksun@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ahci: Fix a wrong parameter pass</title>
<updated>2015-04-07T12:41:10+00:00</updated>
<author>
<name>Tang Yuantian</name>
<email>Yuantian.Tang@freescale.com</email>
</author>
<published>2015-03-31T07:02:43+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=8f6e18385a5afd9aa6d63e5ea3f7658193087851'/>
<id>8f6e18385a5afd9aa6d63e5ea3f7658193087851</id>
<content type='text'>
In stead of user_buffer_size, transfer_size should be used to pass to
ahci_device_data_io(). transfer_size is the length that we want the
low level function to transfer each time.
If we use user_buffer_size which is the totally data length as parameter,
low level function will actually create many SGs to transfer as many data
as possible each time. That will produce many redundant data transfer.

Signed-off-by: Tang Yuantian &lt;Yuantian.Tang@freescale.com&gt;
Reviewed-by: Simon Glass &lt;sjg@chromium.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In stead of user_buffer_size, transfer_size should be used to pass to
ahci_device_data_io(). transfer_size is the length that we want the
low level function to transfer each time.
If we use user_buffer_size which is the totally data length as parameter,
low level function will actually create many SGs to transfer as many data
as possible each time. That will produce many redundant data transfer.

Signed-off-by: Tang Yuantian &lt;Yuantian.Tang@freescale.com&gt;
Reviewed-by: Simon Glass &lt;sjg@chromium.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x86: ahci: Make sure interface is not busy after enabling the port</title>
<updated>2015-01-24T00:24:53+00:00</updated>
<author>
<name>Bin Meng</name>
<email>bmeng.cn@gmail.com</email>
</author>
<published>2014-12-31T09:18:39+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=4df2b48fbee148cd2c4137ee920220338f0dcaf0'/>
<id>4df2b48fbee148cd2c4137ee920220338f0dcaf0</id>
<content type='text'>
Each time U-Boot boots on Intel Crown Bay board, the displayed hard
drive information is wrong. It could be either wrong capacity or just
a 'Capacity: not available' message. After enabling the debug switch,
we can see the scsi inquiry command did not execute successfully.
However, doing a 'scsi scan' in the U-Boot shell does not expose
this issue.

SCSI:  Target spinup took 0 ms.
SATA link 1 timeout.
AHCI 0001.0100 32 slots 2 ports 3 Gbps 0x3 impl SATA mode
flags: ncq stag pm led clo only pmp pio slum part ccc apst
scanning bus for devices...
ahci_device_data_io: 0 byte transferred.   &lt;--- scsi inquiry fails
ahci_device_data_io: 512 byte transferred.
ahci_device_data_io: 512 byte transferred.
ahci_device_data_io: 512 byte transferred.
  Device 0: (0:0) Vendor: ATA Prod.:  Rev: ?8
              Type: Hard Disk
	                  Capacity: 912968.3 MB = 891.5 GB (1869759264 x 512)
			  Found 1 device(s).

So uninitialized contents on the stack were passed to dev_print() to
display those wrong information.

The symptom were observed on two hard drives (one is Seagate, the
other one is Western Digital). The fix is to make sure the AHCI
interface is not busy by checking the error and status information
from task file register after enabling the port in ahci_port_start()
before proceeding other operations like scsi_scan().

Signed-off-by: Bin Meng &lt;bmeng.cn@gmail.com&gt;
Reviewed-by: Simon Glass &lt;sjg@chromium.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Each time U-Boot boots on Intel Crown Bay board, the displayed hard
drive information is wrong. It could be either wrong capacity or just
a 'Capacity: not available' message. After enabling the debug switch,
we can see the scsi inquiry command did not execute successfully.
However, doing a 'scsi scan' in the U-Boot shell does not expose
this issue.

SCSI:  Target spinup took 0 ms.
SATA link 1 timeout.
AHCI 0001.0100 32 slots 2 ports 3 Gbps 0x3 impl SATA mode
flags: ncq stag pm led clo only pmp pio slum part ccc apst
scanning bus for devices...
ahci_device_data_io: 0 byte transferred.   &lt;--- scsi inquiry fails
ahci_device_data_io: 512 byte transferred.
ahci_device_data_io: 512 byte transferred.
ahci_device_data_io: 512 byte transferred.
  Device 0: (0:0) Vendor: ATA Prod.:  Rev: ?8
              Type: Hard Disk
	                  Capacity: 912968.3 MB = 891.5 GB (1869759264 x 512)
			  Found 1 device(s).

So uninitialized contents on the stack were passed to dev_print() to
display those wrong information.

The symptom were observed on two hard drives (one is Seagate, the
other one is Western Digital). The fix is to make sure the AHCI
interface is not busy by checking the error and status information
from task file register after enabling the port in ahci_port_start()
before proceeding other operations like scsi_scan().

Signed-off-by: Bin Meng &lt;bmeng.cn@gmail.com&gt;
Reviewed-by: Simon Glass &lt;sjg@chromium.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ahci-plat: provide a weak scsi_bus_reset() hook</title>
<updated>2015-01-05T20:13:46+00:00</updated>
<author>
<name>Dmitry Lifshitz</name>
<email>lifshitz@compulab.co.il</email>
</author>
<published>2014-12-15T14:02:56+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=1a33b7356afb065fd80250a022f4881adbaac939'/>
<id>1a33b7356afb065fd80250a022f4881adbaac939</id>
<content type='text'>
This allow the platform to handle a custom reset sequence.

Signed-off-by: Dmitry Lifshitz &lt;lifshitz@compulab.co.il&gt;
Reviewed-by: Tom Rini &lt;trini@ti.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This allow the platform to handle a custom reset sequence.

Signed-off-by: Dmitry Lifshitz &lt;lifshitz@compulab.co.il&gt;
Reviewed-by: Tom Rini &lt;trini@ti.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
