u-boot/arch/arm/include/asm/arch-sunxi
Andre Przywara 78aa00c38e sunxi: H616: dram: split struct dram_para
Currently there is one DRAM parameter struct for the Allwinner H616 DRAM
"driver". It contains many fields that are compile time constants
(set by Kconfig variables), though there are also some fields that are
probed and changed over the runtime of the DRAM initialisation.

Because of this mixture, the compiler cannot properly optimise the code
for size, as it does not consider constant propagation in its full
potential.

Help the compiler out by splitting that structure into two: one that only
contains values known at compile time, and another one where the values
will actually change. The former can then be declared "const", which will
let the compiler fold its values directly into the code using it.

We also add "const" tags for some new "struct dram_config" pointers, to
further increase code optimisation.
To help the compiler optimise the code further, the definition of the
now "const struct dram_para" has to happen at a file-global level, so
move that part out of sunxi_dram_init().

That results in quite some code savings (almost 2KB), and helps to keep
the code small with the LPDDR3 support added later.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
2023-07-21 00:29:42 +01:00
..
boot0.h sunxi: arm64: boot0.h: runtime check for RVBAR address 2023-04-12 00:17:22 +01:00
clock.h ARM: sunxi: Add clock and uart to sunxi headers 2022-02-04 00:09:57 +00:00
clock_sun4i.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
clock_sun6i.h ARM: sunxi: Add clock and uart to sunxi headers 2022-02-04 00:09:57 +00:00
clock_sun8i_a83t.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
clock_sun9i.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
clock_sun50i_h6.h mmc: sunxi: Fix MMC clock parent selection 2021-07-10 01:22:09 +01:00
cpu.h sunxi: Introduce common symbol for H6 like SoCs 2021-01-25 21:52:00 +00:00
cpu_sun4i.h ARM: sunxi: Add clock and uart to sunxi headers 2022-02-04 00:09:57 +00:00
cpu_sun9i.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
cpu_sun50i_h6.h sunxi: Add support for H616 SoC 2021-01-25 21:52:01 +00:00
cpucfg.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
display.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
display2.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dma.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dma_sun4i.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dram.h sunxi: Add F1C100s DRAM initial support 2022-02-04 00:09:57 +00:00
dram_sun4i.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dram_sun6i.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
dram_sun8i_a23.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dram_sun8i_a33.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
dram_sun8i_a83t.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
dram_sun9i.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
dram_sun50i_h6.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
dram_sun50i_h616.h sunxi: H616: dram: split struct dram_para 2023-07-21 00:29:42 +01:00
dram_suniv.h sunxi: Add F1C100s DRAM initial support 2022-02-04 00:09:57 +00:00
dram_sunxi_dw.h sunxi: support asymmetric dual rank DRAM on A64/R40 2021-04-16 01:12:58 +01:00
gpio.h gpio: axp/sunxi: Remove virtual VBUS detection GPIO 2023-04-28 01:30:24 +01:00
gtbus.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
gtbus_sun9i.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
i2c.h global: Finish CONFIG -> CFG migration 2023-01-20 12:27:24 -05:00
lcdc.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mmc.h mmc: sunxi: Increase MMIO FIFO read performance 2021-07-10 01:22:09 +01:00
p2wi.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
pmic_bus.h sunxi: Fix typo in include guard 2023-06-07 22:45:02 +01:00
prcm.h sunxi: prcm: Add memory map for H6 like SoCs 2021-01-25 21:52:00 +00:00
prcm_sun6i.h sunxi: prcm: Add memory map for H6 like SoCs 2021-01-25 21:52:00 +00:00
prcm_sun50i.h sunxi: prcm: Add a few registers 2022-04-04 23:24:17 +01:00
pwm.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
rsb.h arm: Don't include common.h in header files 2020-05-18 14:54:24 -04:00
spl.h sunxi: Support SPL in both eGON and TOC0 images 2022-04-04 23:24:17 +01:00
sys_proto.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
timer.h sunxi: Introduce common symbol for H6 like SoCs 2021-01-25 21:52:00 +00:00
tve.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
tzpc.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
watchdog.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00