[U-Boot] IS_ERR_VALUE failing on socfpga gen5

Simon Goldschmidt 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?

Regards,
Simon


More information about the U-Boot mailing list