Hi Doug On Mon, 2010-12-06 at 11:44 -0800, Doug Kehn wrote: > Hi All, > > I'm attempting to use WiMAX Tools and WiMAX Network Service on an Intel > IXP-435 processor (ARM-XScale, big-endian). The kernel is 2.6.36. > The i2400 driver is from the kernel. The tool-chain is from > crosstools-ng and is uClibc based. > > The i2400 driver loads and wmx0 is created. > > WiMAX Tools cross compiled without any problems. Endianness and architecture appear to be handled properly. > > WiMAX Network Service needed some massaging to compile. uClibc doesn't > support backtrace; the backtrace calls were commented out. I noticed > that BMI_MACHINE_ENDIANNESS_LITTE and BMI_ENDIANNESS_LITTLE were hard > coded into Makefile.am/Makefile.in. This was resolved by fixing up > the generated Makefile after running configure. I noticed that > BitmanCommon.h has __ARMCC_VERSION and __arm. If either of these are > defined, WiMAX Network Service fails to compile. The _packed syntax > use doesn't appear to be correct when __arm gets defined. > > WiMAX Network Service compiles if __ARMCC_VERSION and __arm are not > defined. The resulting binary produces SIGSEGV in > FSM_SetStateIfNotEqual when attempting to get fsm->csLock. Debugging > the problem shows that fsm->csLock is getting corrupted when > fsm->hWaitingStateEvent is initialized in FSM_Init. I assume this > might be due to alignment/packing problems. > > Has anyone compiled/used WiMAX Tools/Network Service on Big-Endian ARM? I have never heard of anyone using big endian; some people have reported success on other non-IA architectures (MIPS, ppc and LE ARM, if memory serves), but never big endian. The driver, stack and wimax-tools code should be fairly endian-transparent, but I don't know about the daemon.