| #
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 ...
|