
Hi Daniel,
El 31/07/2017 a las 12:52, Daniel Schwierzeck escribió:
2017-07-30 18:04 GMT+02:00 Álvaro Fernández Rojas noltari@gmail.com:
El 30/07/2017 a las 16:05, Daniel Schwierzeck escribió:
Am 30.07.2017 um 14:27 schrieb Álvaro Fernández Rojas:
I've been a bit busy lately and I couldn't test this until now, but I have to say that this commit breaks u-boot bmips support :(
BTW, I tried this on several bmips boards (one of them is a Netgear CG3100D, which uses u-boot.bin instead of u-boot.elf)
Do you have any idea on what could be hapenning?
maybe you need to specify "--emit-relocs" too when linking u-boot.elf from u-boot-elf.o. But u-boot-elf.o should already contain the correct .reloc section with the updated relocation entries so you don't need to rerun the reloc-tool on u-boot.elf.
I tried that and it doesn't work. However, I've just found out that if I remove the relocs call it boots again... https://gist.github.com/Noltari/ce3a6a9dda69e74caf7ba33c9c8ade9a
I wonder how this can work. Even the u-boot.elf now contains position-dependent code so that an update of the relocation entries is required there too. Without the updated entries, U-Boot can't execute after jumping from relocate_code() to board_init_r(). Did you use a clean build if U-Boot?
Yeah, I used a clean build of u-boot (upstream with just the patch mentioned before): https://gist.github.com/Noltari/ce3a6a9dda69e74caf7ba33c9c8ade9a#file-u-boot...
Regards, Álvaro.