History log of /rk3399_rockchip-uboot/drivers/ata/ahci.c (Results 1 – 23 of 23)
Revision Date Author Comments
# 1fa44656 13-May-2024 Yifeng Zhao <yifeng.zhao@rock-chips.com>

drivers: ata: ahci: update port_mmio for all ports

The port register address that is not in the port_map
has not been updated, and there will be an exception
with scsi_scan.

bug:
AHCI 0001.0301 32

drivers: ata: ahci: update port_mmio for all ports

The port register address that is not in the port_map
has not been updated, and there will be an exception
with scsi_scan.

bug:
AHCI 0001.0301 32 slots 24 ports 6 Gbps 0xffff0f impl SATA mode
flags: 64bit ncq stag pm led only pio sxs apst
Device 0: (0:0) Vendor: ATA Prod.: KINGSTON SKC6002 Rev: S450
Type: Hard Disk
Capacity: 244198.3 MB = 238.4 GB (500118192 x 512)
"Synchronous Abort" handler, esr 0x96000010

* Reason: Exception from a Data abort, from current exception level
* PC = 000000000025f670
* LR = 000000000025f840
* SP = 00000000eb9f7aa0
* ESR_EL2 = 0000000096000010
* Reloc Off = 00000000eda37000

x0 : 00000000ebc69c70 x1 : 00000000eb9f7d18
x2 : 0000000000000018 x3 : 00000000eb9f7d40
x4 : 0000000000000200 x5 : 0000000000000000

Signed-off-by: Yifeng Zhao <yifeng.zhao@rock-chips.com>
Change-Id: I10efae13e39fccbdf5e85cbaa94e17ea8393378b

show more ...


# af6a038a 18-Dec-2023 Yifeng Zhao <yifeng.zhao@rock-chips.com>

ahci: add port reset before link up

Signed-off-by: Yifeng Zhao <yifeng.zhao@rock-chips.com>
Change-Id: Idc8fca43fe2907a25673f25dd24fdf1153e541c8


# 5b0eed31 26-Mar-2021 Suneel Garapati <sgarapati@marvell.com>

drivers: ata: ahci: update max id if it is more than available ports

After check for maximum between max id and available ports, also check
if available port count is less than max id and update.

I

drivers: ata: ahci: update max id if it is more than available ports

After check for maximum between max id and available ports, also check
if available port count is less than max id and update.

In the case of the CN8030 OcteonTX SoC max_id needs to be reduced to
the number of ports found otherwise the following occurs on a scan:

GW6404-B> scsi scan
scanning bus for devices...
Target spinup took 0 ms.
AHCI 0001.0300 32 slots 1 ports 6 Gbps 0x1 impl SATA mode
flags: 64bit ncq ilck stag pm led clo only pmp fbss pio slum part ccc
apst
Device 0: (0:0) Vendor: ATA Prod.: SanDisk SD8SFAT0 Rev: Z233
Type: Hard Disk
Capacity: 61057.3 MB = 59.6 GB (125045424 x 512)
"Synchronous Abort" handler, esr 0x96000006
elr: 000000000052f824 lr : 000000000052fa10 (reloc)
elr: 000000007fee9824 lr : 000000007fee9a10
x0 : 0000000000000001 x1 : 0000000000000001
x2 : 000000007bea3528 x3 : 000000007bea3580
x4 : 0000000000000200 x5 : 0000000000000000
x6 : 0000000000000002 x7 : 000000007bea3540
x8 : 00000000fffffff8 x9 : 0000000000000008
x10: 00000000000186a0 x11: 000000000000000d
x12: 0000000000000006 x13: 000000000001869f
x14: 0000000000000007 x15: 00000000ffffffff
x16: 000000007ff439a5 x17: 000000007ff5730c
x18: 000000007bea9de0 x19: 000000007ff7a580
x20: 000000007bec79f8 x21: 0000000000000000
x22: 000000007bea3580 x23: 0000000000000000
x24: 0000000000000000 x25: 000000007bec7a00
x26: 00000000ffffffc0 x27: 000000007bec79d0
x28: 000000007beb51c0 x29: 000000007bea3480

Code: 91246800 940130c2 12800000 1400004f (b9402ae0)
Resetting CPU ...

Signed-off-by: Suneel Garapati <sgarapati@marvell.com>
Reviewed-by: Stefan Roese <sr@denx.de>
Change-Id: I569bcd0943d7e2f02adc0d98a5b75f0c73e08bac

show more ...


# 693a1837 25-Feb-2021 Yifeng Zhao <yifeng.zhao@rock-chips.com>

drivers: ata: update code with master

Signed-off-by: Yifeng Zhao <yifeng.zhao@rock-chips.com>
Change-Id: I49e1b4e3ad7631bc066e54b77630b8608d7c4ad1


# 5c6631be 01-Aug-2017 Tom Rini <trini@konsulko.com>

Merge git://git.denx.de/u-boot-mmc


# bfc1c6b4 04-Jul-2017 Simon Glass <sjg@chromium.org>

dm: ahci: Correct uclass private data

This is expected to be attached to the uclass and the code operates that
way, but the uclass has not been updated. Fix it to avoid using memory at
address 0.

S

dm: ahci: Correct uclass private data

This is expected to be attached to the uclass and the code operates that
way, but the uclass has not been updated. Fix it to avoid using memory at
address 0.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 47fc61a (dm: ahci: Drop use of probe_ent)

show more ...


# 745a94f3 04-Jul-2017 Simon Glass <sjg@chromium.org>

ahci: Support non-PCI controllers

At present the AHCI SCSI driver only supports PCI with driver model.
Rename the existing function to indicate this and add support for adding
a non-PCI controller .

ahci: Support non-PCI controllers

At present the AHCI SCSI driver only supports PCI with driver model.
Rename the existing function to indicate this and add support for adding
a non-PCI controller .

Signed-off-by: Simon Glass <sjg@chromium.org>

show more ...


# 9c1390d4 17-Jun-2017 Bin Meng <bmeng.cn@gmail.com>

dm: ahci: Avoid scsi_scan_dev() in ahci_probe_scsi()

Running 'scsi scan' command causes scsi_scan_dev() to be called,
from which device_probe() is called and consequently AHCI driver
probe routine w

dm: ahci: Avoid scsi_scan_dev() in ahci_probe_scsi()

Running 'scsi scan' command causes scsi_scan_dev() to be called,
from which device_probe() is called and consequently AHCI driver
probe routine will be called as SCSI driver's parent, and finally
ahci_probe_scsi() calls scsi_scan_dev() again.

Remove the call to scsi_scan_dev() in ahci_probe_scsi().

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>

show more ...


# 8d3a2568 12-Jul-2017 Tom Rini <trini@konsulko.com>

Merge git://git.denx.de/u-boot-dm


# 681357ff 15-Jun-2017 Simon Glass <sjg@chromium.org>

dm: ahci: Add a driver for SCSI on AHCI

Some AHCI drivers use SCSI under the hood. Rather than making the AHCI
driver be in the SCSI uclass it makes sense to have the AHCI device create
a SCSI devic

dm: ahci: Add a driver for SCSI on AHCI

Some AHCI drivers use SCSI under the hood. Rather than making the AHCI
driver be in the SCSI uclass it makes sense to have the AHCI device create
a SCSI device as a child. That way we can handle any AHCI-specific
operations rather than trying to pretend tha the device is just SCSI.

To handle this we need to provide a way for AHCI drivers to bind a SCSI
device as its child, and probe it. Add functions for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>

show more ...


# f6580ef3 15-Jun-2017 Simon Glass <sjg@chromium.org>

dm: scsi: Adjust return value of scsi_exec()

Change this function to return an error number instead of true/false.
This allows us to return a proper error number.

Signed-off-by: Simon Glass <sjg@ch

dm: scsi: Adjust return value of scsi_exec()

Change this function to return an error number instead of true/false.
This allows us to return a proper error number.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>

show more ...


# f6ab5a92 15-Jun-2017 Simon Glass <sjg@chromium.org>

dm: scsi: Add operations for SCSI devices

The SCSI uclass currently has no operations. It just uses the global SCSI
functions. Fix this by adding operations to the only two drivers that use
the ucla

dm: scsi: Add operations for SCSI devices

The SCSI uclass currently has no operations. It just uses the global SCSI
functions. Fix this by adding operations to the only two drivers that use
the uclass, and replacing the global functions with those defined locally
in the SCSI code.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>

show more ...


# 4e749014 15-Jun-2017 Simon Glass <sjg@chromium.org>

dm: ahci: Create a local version of two SCSI functions

With driver model we need to define implementations of exec() and
bus_reset() separately for each SCSI driver. As a first step, create a
local

dm: ahci: Create a local version of two SCSI functions

With driver model we need to define implementations of exec() and
bus_reset() separately for each SCSI driver. As a first step, create a
local version of each function in the AHCI driver and call each from its
global version.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>

show more ...


# 4682c8a1 15-Jun-2017 Simon Glass <sjg@chromium.org>

dm: scsi: Add a device pointer to scan_exec(), scsi_bus_reset()

With driver model these functions need a device pointer. Add one even
when CONFIG_DM_SCSI is not defined. This avoids having ugly cond

dm: scsi: Add a device pointer to scan_exec(), scsi_bus_reset()

With driver model these functions need a device pointer. Add one even
when CONFIG_DM_SCSI is not defined. This avoids having ugly conditional
function prototypes, When CONFIG_DM_SCSI is not defined we can just ignore
the pointer.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>

show more ...


# 4279efc4 15-Jun-2017 Simon Glass <sjg@chromium.org>

dm: ahci: Drop use of probe_ent

With driver model we cannot have static data or assume that there is only
one device of each time. Adjust the code so that 'probe_ent' is not needed
with driver model

dm: ahci: Drop use of probe_ent

With driver model we cannot have static data or assume that there is only
one device of each time. Adjust the code so that 'probe_ent' is not needed
with driver model. Add a new ahci_init_dm() function which can init AHCI
for driver model without re-allocating the uclass data. Move over the only
existing driver to use this new function.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>

show more ...


# 7cf1afce 15-Jun-2017 Simon Glass <sjg@chromium.org>

dm: ahci: Unwind the confusing init code

Two AHCI drivers use SCSI with CONFIG_DM_SCSI. The SCSI uclass calls
scsi_low_level_init() which is implemented by ahci.c. If
CONFIG_SCSI_AHCI_PLAT is define

dm: ahci: Unwind the confusing init code

Two AHCI drivers use SCSI with CONFIG_DM_SCSI. The SCSI uclass calls
scsi_low_level_init() which is implemented by ahci.c. If
CONFIG_SCSI_AHCI_PLAT is defined it does one thing and if it is not
it does something else.

We don't need to call through scsi_low_level_init() to get the init
completed. Instead, adjust the two drivers to call into AHCI directly.
Drop the post-probe init in the SCSI uclass. This means that driver model
doesn't need to use scsi_low_level_init(). It is a legacy function and
driver model should use a driver's probe() method instead.

While we are here, add a comment to the top of the file explaining what
ahci.c does.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>

show more ...


# 62b4ec8e 15-Jun-2017 Simon Glass <sjg@chromium.org>

dm: ahci: Move common code for starting ports into a function

This code is duplicated. Create a ahci_start_ports() function to handle
this and call it from both places.

Signed-off-by: Simon Glass <

dm: ahci: Move common code for starting ports into a function

This code is duplicated. Create a ahci_start_ports() function to handle
this and call it from both places.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>

show more ...


# 225b1da7 15-Jun-2017 Simon Glass <sjg@chromium.org>

dm: ahci: Refactor to avoid static variables

With driver model we need each device to have its own state. As a step
towards this, restrict use of the global 'probe_ent' to just a few places
in the f

dm: ahci: Refactor to avoid static variables

With driver model we need each device to have its own state. As a step
towards this, restrict use of the global 'probe_ent' to just a few places
in the file. This will allow us to add driver-model functions which can
pass the correct data around.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>

show more ...


# 4b62b2ff 15-Jun-2017 Simon Glass <sjg@chromium.org>

dm: sata: Move ataid into struct ahci_uc_priv

This array relates to the AHCI controller so should be exist out on its
own in the file. Move it into the structure. Adjust functions that need
access t

dm: sata: Move ataid into struct ahci_uc_priv

This array relates to the AHCI controller so should be exist out on its
own in the file. Move it into the structure. Adjust functions that need
access to this to take the structure as a parameter.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>

show more ...


# 2c9f9efb 15-Jun-2017 Simon Glass <sjg@chromium.org>

dm: ahci: Rename struct ahci_probe_ent

This is not a very useful name since once it is probed it still hangs
around. With driver model we will use uclass data for this, so rename the
struct.

Signed

dm: ahci: Rename struct ahci_probe_ent

This is not a very useful name since once it is probed it still hangs
around. With driver model we will use uclass data for this, so rename the
struct.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>

show more ...


# 1dc64f6c 15-Jun-2017 Simon Glass <sjg@chromium.org>

dm: scsi: Use the uclass platform data

At present the two driver-model SCSI drivers use device platform data to
store information that relates to the uclass. It is better to use uclass
platform data

dm: scsi: Use the uclass platform data

At present the two driver-model SCSI drivers use device platform data to
store information that relates to the uclass. It is better to use uclass
platform data in this situation. Update the code to do this.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>

show more ...


# b9560ad6 15-Jun-2017 Simon Glass <sjg@chromium.org>

dm: scsi: Drop the ccb typedef

We should not be using typedefs in U-Boot and 'ccb' is a pretty short
name. It is also used with variables. Drop the typedef and use 'struct'
instead.

Signed-off-by:

dm: scsi: Drop the ccb typedef

We should not be using typedefs in U-Boot and 'ccb' is a pretty short
name. It is also used with variables. Drop the typedef and use 'struct'
instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>

show more ...


# f2105c61 15-Jun-2017 Simon Glass <sjg@chromium.org>

sata: Move drivers into new drivers/ata directory

At present we have the SATA and PATA drivers mixed up in the drivers/block
directory. It is better to split them out into their own place. Use
drive

sata: Move drivers into new drivers/ata directory

At present we have the SATA and PATA drivers mixed up in the drivers/block
directory. It is better to split them out into their own place. Use
drivers/ata which is what Linux does.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>

show more ...