]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
ddr: fsl: Reduce the size of interactive options
authorSean Anderson <sean.anderson@seco.com>
Tue, 30 Aug 2022 20:54:39 +0000 (16:54 -0400)
committerPeng Fan <peng.fan@nxp.com>
Tue, 6 Sep 2022 01:28:45 +0000 (09:28 +0800)
The interactive mode uses large several tables of options which can be
configured. However, much of the contents of these tables are
repetetive. For example, no struct is larger than half a kilobyte, so
the offset only takes up 9 bits. Similarly, the size is only ever 4 or
8, and printhex is a boolean. Reduce the size of these fields. This
reduces the size of the options tables by around 10 KiB. However, the
largest contributor to the size of the options tables is the use of a
pointer for the strings. A better approach would be to use a separate
array of strings, and store an integer index in the options tables.
However, this would require a large re-architecting of this file.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
drivers/ddr/fsl/interactive.c

index 2f76beb2dbe69918a32a09e830a49c62d53aa446..eb2f06e8300abf9f476830749a6bfdb8f58e1513 100644 (file)
@@ -27,9 +27,9 @@
 /* Option parameter Structures */
 struct options_string {
        const char *option_name;
-       size_t offset;
-       unsigned int size;
-       const char printhex;
+       u32 offset : 9;
+       u32 size : 4;
+       u32 printhex : 1;
 };
 
 static unsigned int picos_to_mhz(unsigned int picos)