was recently handed a MIPS-based dev board (can't name the vendor, NDA) that *typically* runs in LE mode but, because of a proprietary binary that must be run on the board and was compiled as BE, has to be run in BE mode. the vendor supplied a yoctoproject layer that seems to work fine but, in changing the DEFAULTTUNE to big-endian, the following patch had to be applied to the 3.14 kernel tree to the file arch/mips/include/asm/io.h in order to get output from the console port as the system was booting: 326c326,333 < *__mem = __val; \ --- > { \ > if (sizeof(type) == sizeof(u32)) \ > { \ > *__mem = __cpu_to_le32(__val); \ > } \ > else \ > *__mem = __val; \ > } \ 356a364 > { \ 357a366,368 > if (sizeof(type) == sizeof(u32)) \ > __val = __cpu_to_le32(__val); \ > } \ without that patch, the initial conclusion was that the board was just hanging at boot, but i was told, no, it was booting, there was just no output at the console port. applied the patch and, voila. can someone explain *precisely* what the above is doing? i am by no means a MIPS expert, but clearly the above is doing some sort of explicit BE/LE conversion. can anyone supply more detail? thanks. rday -- ======================================================================== Robert P. J. Day Ottawa, Ontario, CANADA http://crashcourse.ca Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ========================================================================