[PATCH v5 12/29] dm: core: Add basic ACPI support

Andy Shevchenko andy.shevchenko at gmail.com
Thu Apr 9 11:02:05 CEST 2020

On Thu, Apr 9, 2020 at 2:01 AM Simon Glass <sjg at chromium.org> wrote:
> ACPI (Advanced Configuration and Power Interface) is a standard for
> specifying information about a platform. It is a little like device
> tree but the bindings are part of the specification and it supports an
> interpreted bytecode language.
> Driver model does not use ACPI for U-Boot's configuration, but it is
> convenient to have it support generation of ACPI tables for passing to
> Linux, etc.
> As a starting point, add an optional set of ACPI operations to each
> device. Initially only a single operation is available, to obtain the
> ACPI name for the device. More operations are added later.
> Enable ACPI for sandbox to ensure build coverage and so that we can add
> tests.

> +int acpi_copy_name(char *out_name, const char *name)
> +{
> +       strncpy(out_name, name, ACPI_NAME_MAX);


The idea as I tried to explain that name can have only 4 bytes at the
end of the page. I dunno what U-Boot does if you access out of the
boundaries to the page which is not mapped to MMU (in OSes it will be
page fault). Does U-Boot map all pages to MMU?

In any case, the code above has this subtle issue. We may live with
it, but since it's a generic kinda function, better to be pedantic
about it.

> +       out_name[ACPI_NAME_LEN] = '\0';
> +
> +       return 0;
> +}

With Best Regards,
Andy Shevchenko

More information about the U-Boot mailing list