Lines Matching refs:phy_addr
738 int __cvmx_bootmem_phy_free(uint64_t phy_addr, uint64_t size, uint32_t flags)
745 cvmx_dprintf("__cvmx_bootmem_phy_free addr: 0x%llx, size: 0x%llx\n", (ULL)phy_addr, (ULL)size);
757 if (cur_addr == 0 || phy_addr < cur_addr)
760 if (cur_addr && phy_addr + size > cur_addr)
762 else if (phy_addr + size == cur_addr)
765 cvmx_bootmem_phy_set_next(phy_addr, cvmx_bootmem_phy_get_next(cur_addr));
766 cvmx_bootmem_phy_set_size(phy_addr, cvmx_bootmem_phy_get_size(cur_addr) + size);
767 CVMX_BOOTMEM_DESC_SET_FIELD(head_addr, phy_addr);
773 cvmx_bootmem_phy_set_next(phy_addr, cur_addr); /* OK if cur_addr is 0 */
774 cvmx_bootmem_phy_set_size(phy_addr, size);
775 CVMX_BOOTMEM_DESC_SET_FIELD(head_addr, phy_addr);
782 while (cur_addr && phy_addr > cur_addr)
793 if (prev_addr + cvmx_bootmem_phy_get_size(prev_addr) == phy_addr)
799 cvmx_bootmem_phy_set_next(prev_addr, phy_addr);
800 cvmx_bootmem_phy_set_size(phy_addr, size);
801 cvmx_bootmem_phy_set_next(phy_addr, 0);
810 if (prev_addr + cvmx_bootmem_phy_get_size(prev_addr) == phy_addr)
814 if (phy_addr + size == cur_addr)
823 else if (phy_addr + size == cur_addr)
826 cvmx_bootmem_phy_set_size(phy_addr, cvmx_bootmem_phy_get_size(cur_addr) + size);
827 cvmx_bootmem_phy_set_next(phy_addr, cvmx_bootmem_phy_get_next(cur_addr));
828 cvmx_bootmem_phy_set_next(prev_addr, phy_addr);
834 cvmx_bootmem_phy_set_size(phy_addr, size);
835 cvmx_bootmem_phy_set_next(phy_addr, cur_addr);
836 cvmx_bootmem_phy_set_next(prev_addr, phy_addr);