Building Linux for a custom board

We have a board based upon the Beagleboard xM rev. C. We have been running QNX on it. We are trying to experiment with RT Linux by following the instructions at https://eewiki.net/display/linuxonarm/BeagleBoard and the kernel builds fine. We have a problem with the gpios that identify the board revision, since we do not have these gpios wired. I modified u-boot/board/ti/beagle/beagle.c to return revision=2 in get_board_revision. But when I compile u-boot, I get an error of

/home/users/staff/tpeterson/work/epic2-rt-linux/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: u-boot-spl section .rodata' will not fit in region .sram’
/home/users/staff/tpeterson/work/epic2-rt-linux/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ld.bfd: region `.sram’ overflowed by 2848 bytes
scripts/Makefile.spl:290: recipe for target ‘spl/u-boot-spl’ failed

Not sure where to fix this.

I also could not find anything in the kernel source that is the equivalent get_board_revision call.

Any help is greatly appreciated.

As long as you are using "just the xM" (not the older boards)..
re-add this line i removed:

#define CONFIG_SYS_THUMB_BUILD

https://github.com/RobertCNelson/Bootloader-Builder/blob/master/patches/v2017.01/0001-omap3_beagle-uEnv.txt-bootz-n-fixes.patch#L475

It'll get you a smaller build..

Regards,

Thanks Robert. That did the trick. I will see on Mon. if the image boots up. I have to deal with some other issues regarding pin muxing and an eMMC that was added on our board. I’m slightly familiar with device trees and think that I should be able to deal with this using them. The production Angstrom image for the xM does not have the pinmux mechanism, which was what prompted me to use the latest Linux version. Should keep me busy for a while.