[U-Boot] IS_ERR_VALUE failing on socfpga gen5
simon.k.r.goldschmidt at gmail.com
Tue Oct 8 20:33:23 UTC 2019
In a series I'm currently preparing, I've stumbled accross the fact that
IS_ERR_VALUE() doesn't reliably work on socfpga SPL as the onchip SRAM
begins at 0xffff0000 and the heap is at the end of the 32 bit range.
Being like that, the current test for error (value >= -4095) which
equals 'value >= 0xfffff001' would require us to waste the last 4K of
that memory, which is not an option when it comes to using DM in SPL...
Now on this platform, I'm sure I could find a range of 4096 bytes to use
as invalid pointer range, but the question is: how do I integrate that
into U-Boot in a clean manner? Would it be acceptable to change the
error headers imported from Linux or would I have to through the hassle
of changing Linux first?
Or does anyone have a better idea to allow using the last 4K for heap?
More information about the U-Boot