On Mon, Nov 24, 2008 at 10:47:38AM -0600, Kumar Gala wrote: > +static struct { > + phys_addr_t paddr; > + unsigned int vaddr; > + unsigned int size;
vaddr/size should be unsigned long (or uintptr_t/size_t). > +phys_addr_t addrmap_virt_to_phys(unsigned int vaddr) > +{ > + int i; > + > + for (i = 0; i < CONFIG_SYS_NUM_ADDR_MAP; i++) { > + u64 base, upper, addr; > + > + if (address_map[i].size == 0) > + continue; > + > + addr = (u64)vaddr; > + base = (u64)(address_map[i].vaddr); > + upper = (u64)(address_map[i].size) + base; > + > + if (addr >= base && addr < upper) { > + return vaddr - address_map[i].vaddr + > address_map[i].paddr; > + } upper should be base + size - 1, and addr <= upper. Otherwise, this will fail for a mapping at the end of a 64-bit address space. > +void addrmap_set_entry(unsigned int vaddr, phys_addr_t paddr, > + unsigned int size, int idx) > +{ > + if (idx > CONFIG_SYS_NUM_ADDR_MAP) > + return ; No space before ; -Scott _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot