Message ID | 20190927000915.31781-1-atish.patra@wdc.com (mailing list archive) |
---|---|
Headers | show |
Series | Add support for SBI v0.2 | expand |
On Thu, Sep 26, 2019 at 05:09:12PM -0700, Atish Patra wrote: > The Supervisor Binary Interface(SBI) specification[1] now defines a > base extension that provides extendability to add future extensions > while maintaining backward compatibility with previous versions. > The new version is defined as 0.2 and older version is marked as 0.1. > > This series adds support v0.2 and a unified calling convention > implementation between 0.1 and 0.2. It also adds minimal SBI functions > from 0.2 as well to keep the series lean. So before we do this game can be please make sure we have a clean 0.2 environment that never uses the legacy extensions as discussed before? Without that all this work is rather futile.
On Fri, 2019-09-27 at 15:19 -0700, Christoph Hellwig wrote: > On Thu, Sep 26, 2019 at 05:09:12PM -0700, Atish Patra wrote: > > The Supervisor Binary Interface(SBI) specification[1] now defines a > > base extension that provides extendability to add future extensions > > while maintaining backward compatibility with previous versions. > > The new version is defined as 0.2 and older version is marked as > > 0.1. > > > > This series adds support v0.2 and a unified calling convention > > implementation between 0.1 and 0.2. It also adds minimal SBI > > functions > > from 0.2 as well to keep the series lean. > > So before we do this game can be please make sure we have a clean 0.2 > environment that never uses the legacy extensions as discussed > before? > Without that all this work is rather futile. > As per our discussion offline, here are things need to be done to achieve that. 1. Replace timer, sfence and ipi with better alternative APIs - sbi_set_timer will be same but with new calling convention - send_ipi and sfence_* apis can be modified in such a way that - we don't have to use unprivileged load anymore - Make it scalable 2. Drop clear_ipi, console, and shutdown in 0.2. We will have a new kernel config (LEGACY_SBI) that can be manually enabled if older firmware need to be used. By default, LEGACY_SBI will be disabled and kernel with new SBI will be built. We will have to set a flag day in a year or so when we can remove the LEGACY_SBI completely. Let us know if it is not an acceptable approach to anybody. I will post a RFC patch with new alternate v0.2 APIs sometime next week. > _______________________________________________ > linux-riscv mailing list > linux-riscv@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-riscv
On Fri, Sep 27, 2019 at 10:57:45PM +0000, Atish Patra wrote: > On Fri, 2019-09-27 at 15:19 -0700, Christoph Hellwig wrote: > > On Thu, Sep 26, 2019 at 05:09:12PM -0700, Atish Patra wrote: > > > The Supervisor Binary Interface(SBI) specification[1] now defines a > > > base extension that provides extendability to add future extensions > > > while maintaining backward compatibility with previous versions. > > > The new version is defined as 0.2 and older version is marked as > > > 0.1. > > > > > > This series adds support v0.2 and a unified calling convention > > > implementation between 0.1 and 0.2. It also adds minimal SBI > > > functions > > > from 0.2 as well to keep the series lean. > > > > So before we do this game can be please make sure we have a clean 0.2 > > environment that never uses the legacy extensions as discussed > > before? > > Without that all this work is rather futile. > > > > As per our discussion offline, here are things need to be done to > achieve that. > > 1. Replace timer, sfence and ipi with better alternative APIs > - sbi_set_timer will be same but with new calling convention > - send_ipi and sfence_* apis can be modified in such a way that > - we don't have to use unprivileged load anymore > - Make it scalable > > 2. Drop clear_ipi, console, and shutdown in 0.2. > > We will have a new kernel config (LEGACY_SBI) that can be manually > enabled if older firmware need to be used. By default, LEGACY_SBI will > be disabled and kernel with new SBI will be built. We will have to set > a flag day in a year or so when we can remove the LEGACY_SBI > completely. > > Let us know if it is not an acceptable approach to anybody. > I will post a RFC patch with new alternate v0.2 APIs sometime next > week. > Will this legacy option be compatible will bbl? says, version 1.0.0 or any earlier ones? > > _______________________________________________ > > linux-riscv mailing list > > linux-riscv@lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/linux-riscv > > -- > Regards, > Atish
On Tue, 2019-10-01 at 12:58 +0800, Alan Kao wrote: > On Fri, Sep 27, 2019 at 10:57:45PM +0000, Atish Patra wrote: > > On Fri, 2019-09-27 at 15:19 -0700, Christoph Hellwig wrote: > > > On Thu, Sep 26, 2019 at 05:09:12PM -0700, Atish Patra wrote: > > > > The Supervisor Binary Interface(SBI) specification[1] now > > > > defines a > > > > base extension that provides extendability to add future > > > > extensions > > > > while maintaining backward compatibility with previous > > > > versions. > > > > The new version is defined as 0.2 and older version is marked > > > > as > > > > 0.1. > > > > > > > > This series adds support v0.2 and a unified calling convention > > > > implementation between 0.1 and 0.2. It also adds minimal SBI > > > > functions > > > > from 0.2 as well to keep the series lean. > > > > > > So before we do this game can be please make sure we have a clean > > > 0.2 > > > environment that never uses the legacy extensions as discussed > > > before? > > > Without that all this work is rather futile. > > > > > > > As per our discussion offline, here are things need to be done to > > achieve that. > > > > 1. Replace timer, sfence and ipi with better alternative APIs > > - sbi_set_timer will be same but with new calling convention > > - send_ipi and sfence_* apis can be modified in such a way that > > - we don't have to use unprivileged load anymore > > - Make it scalable > > > > 2. Drop clear_ipi, console, and shutdown in 0.2. > > > > We will have a new kernel config (LEGACY_SBI) that can be manually > > enabled if older firmware need to be used. By default, LEGACY_SBI > > will > > be disabled and kernel with new SBI will be built. We will have to > > set > > a flag day in a year or so when we can remove the LEGACY_SBI > > completely. > > > > Let us know if it is not an acceptable approach to anybody. > > I will post a RFC patch with new alternate v0.2 APIs sometime next > > week. > > > > Will this legacy option be compatible will bbl? says, version 1.0.0 > or > any earlier ones? > Yes. The config option will just need to be enabled in kernel to make it compatible with bbl or older opensbi versions. Eventually, we will get rid of the legacy ones sometime in future when everybody has migrated to updated compatible version (at least a year or so). > > > _______________________________________________ > > > linux-riscv mailing list > > > linux-riscv@lists.infradead.org > > > http://lists.infradead.org/mailman/listinfo/linux-riscv > > > > -- > > Regards, > > Atish