
Hi Tom,
On Wed, Sep 13, 2023 at 1:13 PM Tom Rini trini@konsulko.com wrote:
On Wed, Sep 13, 2023 at 12:56:53PM -0700, Tony Dinh wrote:
Hi Tom,
On Wed, Sep 13, 2023 at 9:22 AM Tom Rini trini@konsulko.com wrote:
On Tue, Sep 12, 2023 at 12:38:00PM -0700, Tony Dinh wrote:
I've been testing the boostd for a few Marvell boards and seeing this error on the Thecus N2350 (Marvell Armada 385, dual-core CPU). The "bootflow scan scsi" command triggered the "CACHE: Misaligned operation at range" error. However, this error did not affect the result of the scan, i.e. the bootflow for scsi partition was created correctly, and u-boot is running normally.
Enabling CONFIG_SYS_DCACHE_OFF got rid of the errors altogether. Perhaps this is a case where the DCACHE is not required and should be turned off?
Please see the log after the break below.
Can you please try -next ? There's at least one SCSI related cache alignment fix there that's not in master, thanks.
Unfortunately I got the same errors. This time the ranges are different, of course.
master:
N2350 > bootflow scan scsi CACHE: Misaligned operation at range [3fb99f88, 3fb9a388] CACHE: Misaligned operation at range [3fb99f88, 3fb9a388] CACHE: Misaligned operation at range [3fb99f88, 3fb9a388] ERROR: v7_outer_cache_inval_range - start address is not aligned - 0x3fb99f88 ERROR: v7_outer_cache_inval_range - stop address is not aligned - 0x3fb9a388
next:
N2350 > bootflow scan scsi CACHE: Misaligned operation at range [3fb80388, 3fb80788] CACHE: Misaligned operation at range [3fb80388, 3fb80788] CACHE: Misaligned operation at range [3fb80388, 3fb80788] ERROR: v7_outer_cache_inval_range - start address is not aligned - 0x3fb80388 ERROR: v7_outer_cache_inval_range - stop address is not aligned - 0x3fb80788
Can you debug to where these calls are so we can align these buffers? See 02660defdc8a ("scsi: Cache align temporary buffer") for an example.
I've added some printfs to the code. Looks like the last calls were SCSI_READ16 (0x48) in this sequence: scsi_exec() --> ahci_scsi_exec() --> ata_scsiop_read_write()
Note that the misaligned errors do not always occur.
I've also looked at the other recent commit by Marek and tried to enable CONFIG_BOUNCE_BUFFER: https://github.com/u-boot/u-boot/commit/4f543e82b9831333bc0effe9540d8e6a9dde... But I think it is a noop without a callback from the driver.
Please see the boot log below after the break.
Thanks, Tony
============
U-Boot 2023.10-rc4-tld-1-00284-gce67ba1e30-dirty (Sep 13 2023 - 16:44:56 -0700) Thecus N2350
SoC: MV88F6820-A0 at 1066 MHz DRAM: 1 GiB (533 MHz, 32-bit, ECC not enabled) Core: 65 devices, 23 uclasses, devicetree: separate NAND: 512 MiB MMC: Loading Environment from SPIFlash... SF: Detected mx25l3205d with page size 256 Bytes, erase size 4 KiB, total 4 MiB *** Warning - bad CRC, using default environment
Model: Thecus N2350 Net: Warning: ethernet@70000 (eth0) using random MAC address - a2:6f:f1:4a:2e:51 eth0: ethernet@70000 Hit any key to stop autoboot: 0
N2350 > env def -a ## Resetting to default environment
N2350 > bootdev l Seq Probed Status Uclass Name --- ------ ------ -------- ------------------ 0 [ ] OK ethernet ethernet@70000.bootdev --- ------ ------ -------- ------------------ (1 bootdev)
N2350 > bootdev hunt scsi Hunting with: scsi pcie0.0: Link down pcie1.0: Link down scsi_scan scanning bus for devices... scsi_scan_dev SATA link 0 timeout. Target spinup took 0 ms. AHCI 0001.0000 32 slots 2 ports 6 Gbps 0x3 impl SATA mode flags: 64bit ncq led only pmp fbss pio slum part sxs do_scsi_scan_one scsi_detect_dev scsi_setup_inquiry scsi_exec ahci_scsi_exec ahci_scsi_exec cmd = 0x12 do_scsi_scan_one scsi_detect_dev scsi_setup_inquiry scsi_exec ahci_scsi_exec ahci_scsi_exec cmd = 0x12 scsi_ident_cpy scsi_ident_cpy scsi_ident_cpy scsi_exec ahci_scsi_exec ahci_scsi_exec cmd = 0x0 scsi_read_capacity scsi_exec ahci_scsi_exec ahci_scsi_exec cmd = 0x25 scsi_exec ahci_scsi_exec ahci_scsi_exec cmd = 0x28 ata_scsiop_read_write scsi_exec ahci_scsi_exec ahci_scsi_exec cmd = 0x28 ata_scsiop_read_write scsi_exec ahci_scsi_exec ahci_scsi_exec cmd = 0x28 ata_scsiop_read_write scsi_exec ahci_scsi_exec ahci_scsi_exec cmd = 0x28 ata_scsiop_read_write scsi_exec ahci_scsi_exec ahci_scsi_exec cmd = 0x28 ata_scsiop_read_write Device 0: (1:0) Vendor: ATA Prod.: ST750LX003-1AC15 Rev: SM12 Type: Hard Disk Capacity: 715404.8 MB = 698.6 GB (1465149168 x 512)
N2350 > bootflow scan scsi scsi_exec ahci_scsi_exec ahci_scsi_exec cmd = 0x28 ata_scsiop_read_write scsi_exec ahci_scsi_exec ahci_scsi_exec cmd = 0x28 ata_scsiop_read_write scsi_exec ahci_scsi_exec ahci_scsi_exec cmd = 0x48 ata_scsiop_read_write scsi_exec ahci_scsi_exec ahci_scsi_exec cmd = 0x48 ata_scsiop_read_write scsi_exec ahci_scsi_exec ahci_scsi_exec cmd = 0x48 ata_scsiop_read_write scsi_exec ahci_scsi_exec ahci_scsi_exec cmd = 0x48 ata_scsiop_read_write scsi_exec ahci_scsi_exec ahci_scsi_exec cmd = 0x48 ata_scsiop_read_write scsi_exec ahci_scsi_exec ahci_scsi_exec cmd = 0x48 ata_scsiop_read_write CACHE: Misaligned operation at range [3fb6f8d8, 3fb6fcd8] scsi_exec ahci_scsi_exec ahci_scsi_exec cmd = 0x48 ata_scsiop_read_write CACHE: Misaligned operation at range [3fb6f8d8, 3fb6fcd8] CACHE: Misaligned operation at range [3fb6f8d8, 3fb6fcd8] CACHE: Misaligned operation at range [3fb6f8d8, 3fb6fcd8] ERROR: v7_outer_cache_inval_range - start address is not aligned - 0x3fb6f8d8 ERROR: v7_outer_cache_inval_range - stop address is not aligned - 0x3fb6fcd8 CACHE: Misaligned operation at range [3fb6f8d8, 3fb6fcd8] CACHE: Misaligned operation at range [3fb6f8d8, 3fb6fcd8] ERROR: v7_outer_cache_inval_range - start address is not aligned - 0x3fb6f8d8 ERROR: v7_outer_cache_inval_range - stop address is not aligned - 0x3fb6fcd8 scsi_exec ahci_scsi_exec ahci_scsi_exec cmd = 0x48 ata_scsiop_read_write ** File not found /boot/boot.bmp **
-- Tom