Hi Tapio,
You are the author of these files. Are you still maintaining them?
These two object files hold the biggest data objects in the whole Linux kernel
Basically, these are big arrays of the following structures:
typedef struct _INTEL_HEX_RECORD
{
__u32 length;
__u32 address;
__u32 type;
__u8 data[MAX_INTEL_HEX_RECORD_LENGTH];
} INTEL_HEX_RECORD;
I suggest the following optimizations:
Change structure to
typedef struct _INTEL_HEX_RECORD
{
__u8 type;
__u8 length;
__u16 address;
__u8 data[MAX_INTEL_HEX_RECORD_LENGTH];
} INTEL_HEX_RECORD __attribute__((__packed__));
Store gzip compressed tables and unpack them at load time.
Declare them const and __initdata.