[PATCH v3 38/38] pci: serial: Support reading PCI-register size with base
Simon Glass
sjg at chromium.org
Tue Sep 26 13:37:32 CEST 2023
Hi Tom,
On Mon, 25 Sept 2023 at 14:17, Tom Rini <trini at konsulko.com> wrote:
>
> On Sun, Sep 24, 2023 at 01:25:23PM -0600, Simon Glass wrote:
>
> > The PCI helpers read only the base address for a PCI region. In some cases
> > the size is needed as well, e.g. to pass along to a driver which needs to
> > know the size of its register area.
> >
> > Update the functions to allow the size to be returned. For serial, record
> > the information and provided it with the serial_info() call.
> >
> > A limitation still exists in that the size is not available when OF_LIVE
> > is enabled, so take account of that in the tests.
> >
> > Signed-off-by: Simon Glass <sjg at chromium.org>
>
> So on platforms that end up here, we see consistently:
> eaidk-610-rk3399: all +224 spl/u-boot-spl:all +224 spl/u-boot-spl:text +224 text +224 tpl/u-boot-tpl:all +224 tpl/u-boot-tpl:text +224
> u-boot: add: 2/0, grow: 3/0 bytes: 224/0 (224)
> function old new delta
> fdtdec_get_addr_size_auto_noparent - 124 +124
> devfdt_get_addr_size_index - 72 +72
> ns16550_serial_of_to_plat 316 328 +12
> ns16550_serial_probe 132 140 +8
> ns16550_serial_getinfo 84 92 +8
> tpl-u-boot-tpl: add: 2/0, grow: 3/0 bytes: 224/0 (224)
> function old new delta
> fdtdec_get_addr_size_auto_noparent - 124 +124
> devfdt_get_addr_size_index - 72 +72
> ns16550_serial_of_to_plat 316 328 +12
> ns16550_serial_probe 132 140 +8
> ns16550_serial_getinfo 84 92 +8
> spl-u-boot-spl: add: 2/0, grow: 3/0 bytes: 224/0 (224)
> function old new delta
> fdtdec_get_addr_size_auto_noparent - 124 +124
> devfdt_get_addr_size_index - 72 +72
> ns16550_serial_of_to_plat 316 328 +12
> ns16550_serial_probe 132 140 +8
> ns16550_serial_getinfo 84 92 +8
>
> Can we optimize this in any way? I'm less concerned with full U-Boot
> growing by 224 bytes than I am by TPL growing by that much too.
One option would be to have two functions in each case, one for the
address and one for the address + size. We do that in some other
cases. I have to admit I somehow didn't notice this large size
difference, although I knew it would have an impact...it is so strange
how the compiler changes what functions end up in the image willy
nilly.
Regards,
Simon
More information about the U-Boot
mailing list