On Wed, Dec 29, 2021 at 7:40 PM Davis Roman <[email protected]> wrote: > > On Wed, Dec 29, 2021 at 6:15 PM Davis Roman <[email protected]> wrote: > > > > On Wed, Dec 29, 2021 at 5:30 PM Khem Raj <[email protected]> wrote: > > > > > > > > > > > > On Wed, Dec 29, 2021 at 2:20 PM Davis Roman <[email protected]> > > > wrote: > > >> > > >> On Wed, Dec 29, 2021 at 2:21 PM Anders Montonen <[email protected]> > > >> wrote: > > >> > > > >> > Hi, > > >> > > > >> > > On 29 Dec 2021, at 9:53, davis roman <[email protected]> wrote: > > >> > > > > >> > > I generated an internal mips toolchain built against musl and I tried > > >> > > to compile u-boot but unfortunately, I'm getting "opcode not > > >> > > supported" error messages. https://pastebin.com/QdcLxy69 > > >> > > If instead I use the realtek provided prebuilt toolchain then u-boot > > >> > > compiles successfully. https://pastebin.com/zcQ5kc20 > > >> > > > > >> > > I'm thinking that Realtek's toolchain has patches specific to their > > >> > > SoC that have not been pushed upstream. Could this be the reason I'm > > >> > > unable to compile uboot? > > >> > > > >> > I’m guessing that your U-Boot config doesn’t set the correct MIPS > > >> > architecture revision. The compiler error shows that you’re trying to > > >> > assemble a MIPS32r1 instruction, but the compiler is targeting the > > >> > original MIPS1 architecture. The Realtek toolchain may have set the > > >> > default architecture to match the SoC, but the fix is to update the > > >> > config to match the hardware. > > >> > > >> You're right. I didn't realize the RX5281 core on the RTS3916N only > > >> supports mips1 or mips16 (https://pasteboard.co/IpsqN6GkBYAs.png). > > >> > > >> I happened to have a mips sourcery toolchain installed on my machine > > >> (https://sourcery.sw.siemens.com/GNUToolchain/package12797/public/mips-linux-gnu/mips-2014.05-27-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2) > > >> so I pointed that to u-boot without modifying anything else and it was > > >> able to compile u-boot successfully. Woot! > > >> https://pastebin.com/ySPFae5u > > >> > > >> I suppose the next step would be to generate a mips1 yocto toolchain > > >> however according to the available tune values it appears only mips32 > > >> or mips64 is available > > >> > > >> Any suggestions on how to generate a mips1 yocto toolchain or if > > >> that's even supported? > > > > > > > > > Yes it’s supported although it’s not default for qemumips so the simple > > > trick you can do is change the DEFAULTTUNE setting in the qemumips.conf > > > away from mips32r2 > > > > Sorry Khem, I'm not quite following you. I tried the following patch > > (https://pastebin.com/rkmQ3t6P) thinking perhaps this is what you > > meant however my build configuration still shows the tune set to > > mips32r2 https://pastebin.com/izP9thVW > > > > What am I missing? > > > > Nevermind, I scraped the last patch, recreated my BUILD_DIR, set > MACHINE = "qemumips" and added DEFAULTTUNE = "mips" in my local.conf. > Now the build configuration correct https://pastebin.com/pkkRVL58 and > I'm now waiting for the toolchain to finish so I can attempt to build > realtek's u-boot.
Unfortunately, I still get the original u-boot error (https://pastebin.com/8eKzFWQh) even after creating a toolchain using DEFAULTTUNE=mips. Later I re-read what Anders Montonen had mentioned regarding the arch needs to be set in the u-boot source itself (since the yocto toolchain does not contain the same defaults as the realtek toolchain) so I decided to tweak arch/mips/Makefile to set the arch to mips32 ( it should be backwards compatible with mips1) ------------------------------------------ diff --git a/arch/mips/Makefile b/arch/mips/Makefile index efe7e44..0c0f0c2 100644 --- a/arch/mips/Makefile +++ b/arch/mips/Makefile @@ -29,6 +29,7 @@ arch-$(CONFIG_CPU_MIPS32_R6) += -march=mips32r6 -Wa,-mips32r6 arch-$(CONFIG_CPU_MIPS64_R1) += -march=mips64 -Wa,-mips64 arch-$(CONFIG_CPU_MIPS64_R2) += -march=mips64r2 -Wa,-mips64r2 arch-$(CONFIG_CPU_MIPS64_R6) += -march=mips64r6 -Wa,-mips64r6 +arch-$(CONFIG_CPU_TAROKO) += -march=mips32 -Wa,-mips32 # Allow extra optimization for specific CPUs/SoCs tune-$(CONFIG_MIPS_TUNE_4KC) += -mtune=4kc ------------------------------------------ With this patch, my build was able to get a little farther (https://pastebin.com/BkC2NY1Y) however I got the following linker error: mipsel-poky-linux-ld.bfd: u-boot: error: PHDR segment not covered by LOAD segment Makefile:1214: recipe for target 'u-boot' failed make: *** [u-boot] Error 1 Any idea what this could be about? or thoughts in general? I'm not sure if the gcc dumpspecs for each toolchain would be useful but here they are just in case. yocto toolchain - https://pastebin.com/BLRveGWD ( not able to compile realtek u-boot) realtek toolchain - https://pastebin.com/cPwRa9jf ( able to compile realtek u-boot) code sourcery mips 2016.05 - https://pastebin.com/RXbf9Q50 ( able to compile realtek u-boot) > > > >> > > >> > > >> > > >> > > > >> > Regards, > > >> > Anders Montonen
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#55732): https://lists.yoctoproject.org/g/yocto/message/55732 Mute This Topic: https://lists.yoctoproject.org/mt/88005049/21656 Group Owner: [email protected] Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
