
__ft_board_setup() sets the property "ranges", with an entry for every member of EBC_NUM_BANKS. Then the so called "fixup" happens and the property
"ranges" is set
again, this time with only one entry (for the nor flash).
All other
entries are lost.
I see. I didn't spot this problem in the original patch.
Thanks for catching.
It shouldn't be too hard to fix this problem by reading the
complete
ranges array back and patching only the first entry and
re-writing ranges again.
I think my first patch that open-coded part of ft_board_setup() related to EBC ranges was correct and tested on real hardware. I admit that I didn't test the second version of the patch, as I didn't have the hardware at hand.
I'll submit a fix soon, but I still don't have hardware for testing, so I'd appreciate your help with that.
Hmm, maybe something generic in fdt_support.c would be nice, like
fdt_find_and_modify_prop(void *fdt, const char *node, const char *prop, const void *val, int len, int pos, int create)
Cheers Dirk