> Am 11.05.2016 um 19:09 schrieb York Sun <[email protected]>: > >> On 05/11/2016 10:04 AM, Alexander Graf wrote: >> >> >>>> Am 11.05.2016 um 18:33 schrieb York Sun <[email protected]>: >>>> >>>> On 05/11/2016 09:25 AM, Alexander Graf wrote: >>>> While testing our shiny new EFI support, I stumbled across systems that >>>> have disk I/O hardware that can only access the lower 32bits of our >>>> physical address space. >>>> >>>> This is not a problem when running with the normal U-Boot flow, since we >>>> define all "pointers" that get in use in our environment, so we can just >>>> put them inside the lower 32bits. >>>> >>>> But when a higher level application such as an EFI payload comes across, >>>> it doesn't know about these constraints. So we need to allocate bounce >>>> buffers for the payload and use them instead. >>> >>> Alexander, >>> >>> The low 32-bit physical memory is required for this to work, isn't it? >>> There was >>> a discussion to move to high memory for LS2080 so the memory can be >>> continuous >>> for OS. >> >> So how would that work in the non-efi case? Do you configure the smmu >> statically to give you an offset between device memory view and physical? > > Alex, > > We are still waiting for more thorough testing on all drivers. This was an > effort to provide continuous memory for OS. As you know, only 2GB memory is > available under 32-bit space. All other memory shows up at above 39-bit space. > Limited tests proved Linux can boot with the high memory. However, some > drivers > may not be happy with the missing 32-bit memory space. The final call is not > made yet.
Yes, I remember the discussion and I think it's a great idea. In Linux we shouldn't have any issue at all, since we have full SMMU support there, so a device can always just see everything inside its 32bit addressable space. But in U-Boot things are not quite as clear to me. I don't think we configure any smmu mapping today, do we? So in that scenario, what's the plan to get it working? The simplest thing I could come up with were simple prepopulated iommu tables that just give us an offset, preferably one that allows us to just cut off the upper 32bits for addresses. Alex _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

