ERROR: v7_outer_cache_inval_range - stop address is not aligned - 0x3bf73010

Hello,
I'm trying to get an NVMe device to work in u-boot with Cyclone V SX SOC.
I posted before, but perhaps it didn't get through moderation?
I've made good progress reverse engineering u-boot. I believe I have the pci drivers working. I had to hack the code a bit, but I think I know the proper fix for it.
After I run the command, 'pci', I run nvme scan and get a cache alignment error:
(please note I have a bunch of printfs active to figure out where things are going awry)
pci-uclass: pci_bus_addr = 0xc0000000 _dm_pci_bus_to_phys: hose->region_count = 3 Looking for address: 0xc0000000 loop: 0: Section: 0, bus_start = 0x0, size = 0x100000 loop: 1: Section: 1, bus_start = 0xc0000000, size = 0x100000 assigning pa = 0x3bf6b9f0 back from dm_pci_map_bar back from malloc queues back from queues memset back from nvme_readq calling nvme_configure_admin_queue calling memalign calling nvme_setup_io_queues entering nvme_setup_io_queues calling nvme_set_queue_count Calling nvme_set_features running memset on nvme_command struct loading nvme_command struct running nvme_submit_sync_cmd running nvme_submit_cmd doing the memcpy from cmd to nvmeq->sq_cmd[tail] flushing cache writing nvmeq->q_db to tail ERROR: v7_outer_cache_inval_range - stop address is not aligned - 0x3bf73010 calling nvme_free_queues calling nvme_create_io_queues running nvme_submit_sync_cmd running nvme_submit_cmd doing the memcpy from cmd to nvmeq->sq_cmd[tail] flushing cache writing nvmeq->q_db to tail ERROR: v7_outer_cache_inval_range - start address is not aligned - 0x3bf73010 ERROR: v7_outer_cache_inval_range - start address is not aligned - 0x3bf73010 ERROR: v7_outer_cache_inval_range - start address is not aligned - 0x3bf73010 ERROR: v7_outer_cache_inval_range - start address is not aligned - 0x3bf73010 ERROR: v7_outer_cache_inval_range - start address is not aligned - 0x3bf73010 ERROR: v7_outer_cache_inval_range - start address is not aligned - 0x3bf73010
I'm running the socfpga fork of 2020.10. I have tried the master 2021.04, but it has other issues, which I haven't tracked down.
The alignment errors continue for some time, and then the NVMe does not work. 'nvme info' returns nothing.
I found a thread in the u-boot mailing list about a similar problem with the ide device, that indicates the calloc for the queues needs to be change to a malloc_cache_aligned call. I changed the call, but the problem did not go away.
I would appreciate some advice on how to attack this issue.
Thanks in advance.
participants (1)
-
Brian McKee