Submit #3042
closedfirmware: endianness support for fw_stub.awk
0%
Description
Hello,
this patch adds an optional parameter to a firmware specification
tuple for the fw_stub.awk script. The argument is a path to the
big-endian version of the firmware. If it is provided by the user, the
first path in the tuple is treated as little-endian, and two calls of
firmware_register() are generated by the script. The calls are
compiled conditionally according to endianness of target machine.
This is needed for the isp driver firmware to be moved from uit16_t C
arrays in header files to .uu files in sys/contrib/dev/isp.
Example of generated C source code:
#if BYTE_ORDER == BIG_ENDIAN
fp = firmware_register("name", _binary_BigEndianFW_start , (size_t)(_binary_BigEndianFW_end - _binary_BigEndianFW_start), 1234, NULL);
#else
fp = firmware_register("name", _binary_firmware_start , (size_t)(_binary_firmware_end - _binary_firmware_start), 1234, NULL);
#endif
Files