[Skiboot] [PATCH v2 4/5] external/opal-prd: Support manufacturing command HTMGT and attribute override
Jeremy Kerr
jk at ozlabs.org
Tue Sep 1 12:22:16 AEST 2015
Hi Patrick,
> I believe it was Ben and I that originally worked this out. The
> thinking was that we only needed to change the version when an existing
> API changed and that we made the structure sufficiently big enough that
> any new function would just show up as a NULL to new firmware.
Without speaking for Ben here, I assume he'd have the intention that we
use up those function pointers.
> Changing the structure size is only a problem if we add 32 functions
> between two levels we need to support. Otherwise, neither side goes
> outside the boundaries of the function.
It's a problem even with <32 functions if we ever do anything to the
struct as a whole (eg., rely on sizeof()).
For example, we need to keep our own copy of the function pointers,
byte-swapped:
sz = sizeof(struct runtime_interfaces)/sizeof(uint64_t);
s = (uint64_t *)hservice_runtime;
d = (uint64_t *)&hservice_runtime_fixed;
/* Byte swap the function pointers */
for (i = 0; i < sz; i++)
d[i] = be64toh(s[i]);
If our size doesn't match the size of the memory that exists in the
hostboot memory, then we'd potentially access invalid memory.
> At what point is opal-prd considered "released" such that it is in an
> official distribution and will require long-term support? Are we
> already past that point? I am fine with changing our direction at that
> point and starting to reduce the function pointer count as we add new
> interfaces.
We're at that point now; opal-prd is on its way into Ubuntu and RHEL.
Cheers,
Jeremy
More information about the Skiboot
mailing list