Date   

Re: OS-A Meeting Week of Feb 20

Andrei Warkentin
 

Mondays, Wednesdays and Friday mornings PT time work well for me.

 

A

 

From: tech-unixplatformspec@... <tech-unixplatformspec@...> On Behalf Of Aaron Durbin
Sent: Friday, February 17, 2023 11:32 AM
To: tech-os-a-see@...; tech-unixplatformspec <tech-unixplatformspec@...>
Subject: [RISC-V] [tech-unixplatformspec] OS-A Meeting Week of Feb 20

 

Hi All,

 

As noted previously I have a standing meeting that makes the previous Tues slot not work for me. Monday Feb 20 is a US holiday so we won't be meeting on Monday. Do any times work for others next week? I know Friday is not ideal for many, but the morning is open then on my end. Wed Feb 22 at 8am PT is open as well. Please let me know.

 

Thank you.

 

-Aaron


OS-A Meeting Week of Feb 20

Aaron Durbin
 

Hi All,

As noted previously I have a standing meeting that makes the previous Tues slot not work for me. Monday Feb 20 is a US holiday so we won't be meeting on Monday. Do any times work for others next week? I know Friday is not ideal for many, but the morning is open then on my end. Wed Feb 22 at 8am PT is open as well. Please let me know.

Thank you.

-Aaron


Re: OS-A SEE Meeting Monday Feb 13 @ 9am PT

Andrei Warkentin
 

Hi Aaron,

 

Sorry, I missed the memo and then also failed to check the calendar… In general, Monday works great for me.

 

I can travel to focus on fleshing out the spec, as we are quite interested in making significant progress on the common firmware and (subsequently) platform specs.

 

A

 

From: tech-unixplatformspec@... <tech-unixplatformspec@...> On Behalf Of Aaron Durbin
Sent: Monday, February 13, 2023 11:21 AM
To: tech-os-a-see@...; tech-unixplatformspec <tech-unixplatformspec@...>
Subject: Re: [RISC-V] [tech-unixplatformspec] OS-A SEE Meeting Monday Feb 13 @ 9am PT

 

OK. This meeting had very sparse attendance. We closed early. Original agenda here: https://docs.google.com/presentation/d/1raUNWtFGCCpTABjVbvjvIgnxLKYX9Wjc5n5zxE3PHPc/edit#slide=id.g19fe999f568_0_0

 

Two items I'd like to get feedback on:

 

1. Can people travel for in-person meetings to focus on fleshing out this spec? If so, what are the restrictions? Ideally we'd like to accommodate the most people possible.

2. As noted in my original email, I have a standing meeting on Tues at 9am PT that I need to attend. Therefore, the old time slot does not work for me. What do other peoples' schedules look like? I have Darius's and Drew's availability.

 

Thank you for helping out on these 2 matters.

 

-Aaron

 

On Fri, Feb 10, 2023 at 8:57 PM Aaron Durbin <adurbin@...> wrote:

Hi All,

 

The OS-A SEE meeting will be Monday Feb 13 @ 9am PT. I now have a standing conflict on  Tuesdays so I'll need to move these to Mondays all the time or we have to come up w/ a different time slot. Open to suggestions.

 

See you all then.

 

-Aaron


Re: OS-A SEE Meeting Monday Feb 13 @ 9am PT

Aaron Durbin
 

OK. This meeting had very sparse attendance. We closed early. Original agenda here: https://docs.google.com/presentation/d/1raUNWtFGCCpTABjVbvjvIgnxLKYX9Wjc5n5zxE3PHPc/edit#slide=id.g19fe999f568_0_0

Two items I'd like to get feedback on:

1. Can people travel for in-person meetings to focus on fleshing out this spec? If so, what are the restrictions? Ideally we'd like to accommodate the most people possible.
2. As noted in my original email, I have a standing meeting on Tues at 9am PT that I need to attend. Therefore, the old time slot does not work for me. What do other peoples' schedules look like? I have Darius's and Drew's availability.

Thank you for helping out on these 2 matters.

-Aaron

On Fri, Feb 10, 2023 at 8:57 PM Aaron Durbin <adurbin@...> wrote:
Hi All,

The OS-A SEE meeting will be Monday Feb 13 @ 9am PT. I now have a standing conflict on  Tuesdays so I'll need to move these to Mondays all the time or we have to come up w/ a different time slot. Open to suggestions.

See you all then.

-Aaron


OS-A SEE Meeting Monday Feb 13 @ 9am PT

Aaron Durbin
 

Hi All,

The OS-A SEE meeting will be Monday Feb 13 @ 9am PT. I now have a standing conflict on  Tuesdays so I'll need to move these to Mondays all the time or we have to come up w/ a different time slot. Open to suggestions.

See you all then.

-Aaron


Re: [RISC-V][tech-os-a-see] OS-A SEE Meeting Feb 7 Cancelled

Andrei Warkentin
 

Just to follow up from the last call we had, I filed https://github.com/riscv-non-isa/riscv-os-a-see/issues/4 to come up with the new naming for the “horizontal” and “vertical” recipes.

 

Please take a look and throw some ideas out there. The more choices we have, the easier it will be to come up with ones we can agree on.

 

A

 

From: tech-os-a-see@... <tech-os-a-see@...> On Behalf Of Aaron Durbin
Sent: Tuesday, February 7, 2023 7:58 AM
To: tech-os-a-see@...; tech-unixplatformspec <tech-unixplatformspec@...>
Subject: [RISC-V][tech-os-a-see] OS-A SEE Meeting Feb 7 Cancelled

 

Hi All,

 

I have to cancel the meeting today. However, if people want to use the meeting link feel free to use it and meet up. There's some structure put together in the spec repo: https://github.com/riscv-non-isa/riscv-os-a-see Feel free to send PRs for prose in the sections. We'll be moving over content from Andrei's proposal to the spec.

 

Thanks.

 

-Aaron


OS-A SEE Meeting Feb 7 Cancelled

Aaron Durbin
 

Hi All,

I have to cancel the meeting today. However, if people want to use the meeting link feel free to use it and meet up. There's some structure put together in the spec repo: https://github.com/riscv-non-isa/riscv-os-a-see Feel free to send PRs for prose in the sections. We'll be moving over content from Andrei's proposal to the spec.

Thanks.

-Aaron


OS-A SEE Meeting Jan 31 @ 9am PT

Aaron Durbin
 

Hi All,

Sorry for the late reminder notice, but we'll be having our meeting Jan 31 @ 9am PT.


-Aaron


OS-A SEE Meeting Jan 24 @ 9am PT

Aaron Durbin
 

Hi All,

We'll be having an OS-A SEE Meeting Jan 24 @ 9am PT.

Notes are published from previous meetings here.  Please read Andrei's proposal and provide feedback.

For this meeting I'd like to go over a proposed charter change, layout of the spec, and we need to discuss a ratification plan. If there are specific things people would like to discuss please respond or put those in this doc.

Thanks.

-Aaron


OS-A SEE Meeting Jan 10 @ 9am PT

Aaron Durbin
 

Hi All,

Happy New Year. We'll be having an OS-A SEE Meeting Jan 10 @ 9am PT. See you then!

Thanks.

-Aaron


Re: OS-A SEE TG Meeting Wed Nov 30 @ 9am PT

Aaron Durbin
 

Hi All,

We were not able to go through the proposal as we didn't have the appropriate people. Please read over the proposal and provide your feedback.

-Aaron

On Mon, Nov 28, 2022 at 4:34 PM Aaron Durbin <adurbin@...> wrote:
Hi All,

We'll be meeting this coming Wed Nov 30 @ 9am PT. Link to join: https://zoom.us/j/2786028446?pwd=ZHFCR1JtKzg1WVpNZXNtci8xc1Mvdz09

We'll be going through Andrei's proposal which can be found here.

Thank you.

-Aaron


OS-A SEE TG Meeting Wed Nov 30 @ 9am PT

Aaron Durbin
 

Hi All,

We'll be meeting this coming Wed Nov 30 @ 9am PT. Link to join: https://zoom.us/j/2786028446?pwd=ZHFCR1JtKzg1WVpNZXNtci8xc1Mvdz09

We'll be going through Andrei's proposal which can be found here.

Thank you.

-Aaron


Re: SBI Debug Console Extension Proposal (Draft v4)

Anup Patel
 

On Thu, Nov 24, 2022 at 10:14 PM Mitchell Horne <mhorne@...> wrote:

Hi Anup,

Thank you for this proposal, I am happy to see that the legacy console
extension is getting a replacement, as I've found it tremendously useful
for early debugging in the past.

I have a couple of small questions inline below, but otherwise this
looks easy to work with.

Cheers,
Mitchell

On 8/3/22 13:07, Anup Patel wrote:
Hi All,

Based on feedback, below is the updated draft proposal of the
SBI Debug Console Extension ...

The motivations behind this proposal is as follows:
1) There is no new SBI extension replacing the legacy SBI v0.1
putchar() and getchar() calls. These legacy SBI v0.1 calls are
now disabled by default in Linux and will be eventually deprecated.
We need a replacement at least for the SBI v0.1 putchar() which
is widely used for early prints in various OSes and Bootloaders.
2) The OS-A Platforms (or SEE) specification need to mandate
a particular type of UART (8250, ns16550, or SiFive) as a standard
way for boot-time early prints in supervisor-mode software. Using
SBI debug console extension, the OS-A Platforms (or SEE)
specifications don't need to mandate any type of UART.
3) The legacy SBI v0.1 putchar() only supports printing one
character at a time. For some of the hypervisors (particularly KVM),
SBI based early prints (i.e. earlycon=sbi) is slow because each
SBI v0.1 putchar() trap will be forwarded to the KVM user-space
(KVMTOOL or QEMU).

In other words, the SBI debug console extension defines a standard
way for boot-time early prints in supervisor-mode software.

We have completed the proof-of-concept implementation of this
SBI extension proposal. Refer, "riscv_sbi_dbcn_v1" branch in the
following repos:
https://github.com/avpatel/opensbi.git
https://github.com/avpatel/linux.git
https://github.com/avpatel/kvmtool.git

Please review it and provide your feedback.

Regards,
Anup

SBI Debug Console Extension (EID #0x4442434E "DBCN")
====================================================

The debug console extension defines a generic mechanism for boot
time early prints from supervisor-mode software which allows users
to catch boot-time issues in supervisor-mode software.

This extension replaces the legacy console putchar (EID #0x01)
extension with following improvements:
1) It follows the new calling convention defined by the SBI v1.0
(or higher) specification.
2) It allows supervisor software to print multiple characters
in a single SBI call.

Some of the functions defined by this SBI extension have physical
memory as parameters for input and/or output. This physical memory
parameter MUST satisfy following requirements:
1) The SBI implementation MUST check that the supervisor-mode
software is allowed to read and write the specified physical
memory on the calling HART.
2) The SBI implementation MUST access the specified physical
memory using the PMA attribute.
Note: If the supervisor-mode software access the same physical
memory using memory type different from PMA then a loss of
coherence or unexpected memory ordering may occur and the
invoking software should follow the rules and sequences defined
in the RISC-V Svpbmt specification to prevent the loss of
coherence and memory ordering.

If the underlying physical console has extra bits for error checking
(or correction) then these extra bits should be handled by the SBI
implementation.

Function: Console Puts (FID #0)
-------------------------------

struct sbiret sbi_debug_console_puts(unsigned long num_chars,
uint64_t base_addr)
Is there a reason that base_addr is the second argument and not the
first? To me, it is much more natural to have the string's address be
the first argument, as num_chars only really has meaning in relation to
this string.
The uint64_t needs two registers on RV32 whereas it only needs one
register on RV64. Now if base_addr is the first parameter then for:
1) RV32
a0 = lower 32bits of base address
a1 = upper 32bits of base address
a2 = num characters
2) RV64
a0 = 64bits of base address
a1 = num characters

As we can see, "a1" register has different semantics for RV32 vs RV64
when base_addr is first parameter whereas if base_addr was second
parameter then "a2" register has upper 32bits of base address on RV32
and it is unused on RV64.

Considering, this SBI call is going to be used from assembly sources
as well, it seemed simpler/easy-to-use having "base_addr" as second
parameter.


Also, is there a reason that base_addr is a uint64_t and not an unsigned
long? Other physical addresses accepted by SBI interface are defined to
be unsigned long, e.g. start_addr in sbi_hart_start() or
sbi_remote_hfence_gvma_vmid().
If we use "unsigned long" for physical address then we will have to define
it as "base_addr_div_by_4" because RV32 systems can have 34 bits of
physical address space (as-per Sv32 MMU mode). This also means we
will be enforcing a 4-byte alignment on base_address of string to be
printed whereas strings (char []) are typically byte aligned so callers
might have to use an intermediate aligned buffer in this case which is
inconvenient.

In case of sbi_hart_start(), the "start_addr" is actually a execution address
with MMU off so this will be 32bit on RV32 and 64bit on RV64 hence the
"start_addr" is "unsigned long".

In case of sbi_remote_hfence_gvma_vmid() and sbi_remote_hfence_gvma(),
the "start_addr" parameter should have been "start_addr_div_by_4" to be
suitable for both RV32 and RV64 but by the time we realize this it was too
late. We will need to define sbi_remote_hfence_gvma_vmid2() and
sbi_remote_hfence_gvma2() to make SBI RFENCE extension suitable
for both RV32 and RV64.


Maybe these questions have been considered in previous versions of the
proposal; I have not followed closely. You may disregard them as
appropriate.
Yes, we did receive similar questions in previous versions of the proposal
but I am happy to provide the explanation again.


Print a specified input string on the debug console.

The `num_chars` parameter specifies the number of characters (or
bytes) in the input string whereas `base_addr` parameter specifies
the physical base address of the input string.

This is a blocking SBI call and will only return after printing all
characters of the input string.

Errors:
SBI_SUCCESS - Characters printed successfully.
SBI_ERR_INVALID_ADDRESS - The string pointed by `num_chars` and `base_addr`
parameters is not entirely accessible to
supervisor-mode.
SBI_ERR_FAILED - Failed to print characters due to I/O errors.




Regards,
Anup


Re: SBI Debug Console Extension Proposal (Draft v4)

Mitchell Horne
 

Hi Anup,

Thank you for this proposal, I am happy to see that the legacy console extension is getting a replacement, as I've found it tremendously useful for early debugging in the past.

I have a couple of small questions inline below, but otherwise this looks easy to work with.

Cheers,
Mitchell

On 8/3/22 13:07, Anup Patel wrote:
Hi All,
Based on feedback, below is the updated draft proposal of the
SBI Debug Console Extension ...
The motivations behind this proposal is as follows:
1) There is no new SBI extension replacing the legacy SBI v0.1
putchar() and getchar() calls. These legacy SBI v0.1 calls are
now disabled by default in Linux and will be eventually deprecated.
We need a replacement at least for the SBI v0.1 putchar() which
is widely used for early prints in various OSes and Bootloaders.
2) The OS-A Platforms (or SEE) specification need to mandate
a particular type of UART (8250, ns16550, or SiFive) as a standard
way for boot-time early prints in supervisor-mode software. Using
SBI debug console extension, the OS-A Platforms (or SEE)
specifications don't need to mandate any type of UART.
3) The legacy SBI v0.1 putchar() only supports printing one
character at a time. For some of the hypervisors (particularly KVM),
SBI based early prints (i.e. earlycon=sbi) is slow because each
SBI v0.1 putchar() trap will be forwarded to the KVM user-space
(KVMTOOL or QEMU).
In other words, the SBI debug console extension defines a standard
way for boot-time early prints in supervisor-mode software.
We have completed the proof-of-concept implementation of this
SBI extension proposal. Refer, "riscv_sbi_dbcn_v1" branch in the
following repos:
https://github.com/avpatel/opensbi.git
https://github.com/avpatel/linux.git
https://github.com/avpatel/kvmtool.git
Please review it and provide your feedback.
Regards,
Anup
SBI Debug Console Extension (EID #0x4442434E "DBCN")
====================================================
The debug console extension defines a generic mechanism for boot
time early prints from supervisor-mode software which allows users
to catch boot-time issues in supervisor-mode software.
This extension replaces the legacy console putchar (EID #0x01)
extension with following improvements:
1) It follows the new calling convention defined by the SBI v1.0
(or higher) specification.
2) It allows supervisor software to print multiple characters
in a single SBI call.
Some of the functions defined by this SBI extension have physical
memory as parameters for input and/or output. This physical memory
parameter MUST satisfy following requirements:
1) The SBI implementation MUST check that the supervisor-mode
software is allowed to read and write the specified physical
memory on the calling HART.
2) The SBI implementation MUST access the specified physical
memory using the PMA attribute.
Note: If the supervisor-mode software access the same physical
memory using memory type different from PMA then a loss of
coherence or unexpected memory ordering may occur and the
invoking software should follow the rules and sequences defined
in the RISC-V Svpbmt specification to prevent the loss of
coherence and memory ordering.
If the underlying physical console has extra bits for error checking
(or correction) then these extra bits should be handled by the SBI
implementation.
Function: Console Puts (FID #0)
-------------------------------
struct sbiret sbi_debug_console_puts(unsigned long num_chars,
uint64_t base_addr)
Is there a reason that base_addr is the second argument and not the first? To me, it is much more natural to have the string's address be the first argument, as num_chars only really has meaning in relation to this string.

Also, is there a reason that base_addr is a uint64_t and not an unsigned long? Other physical addresses accepted by SBI interface are defined to be unsigned long, e.g. start_addr in sbi_hart_start() or sbi_remote_hfence_gvma_vmid().

Maybe these questions have been considered in previous versions of the proposal; I have not followed closely. You may disregard them as appropriate.

Print a specified input string on the debug console.
The `num_chars` parameter specifies the number of characters (or
bytes) in the input string whereas `base_addr` parameter specifies
the physical base address of the input string.
This is a blocking SBI call and will only return after printing all
characters of the input string.
Errors:
SBI_SUCCESS - Characters printed successfully.
SBI_ERR_INVALID_ADDRESS - The string pointed by `num_chars` and `base_addr`
parameters is not entirely accessible to
supervisor-mode.
SBI_ERR_FAILED - Failed to print characters due to I/O errors.


OS-A SEE TG Meeting Nov 15 - 9am PT

Aaron Durbin
 

Hi All,

We'll be having an OS-A SEE TG Meeting Nov 15 @ 9am PT. If there are specific topics people are interested in talking about please add them here.

Thank you.

-Aaron


OS-A SEE TG Meeting Nov 1st 9am PT

Aaron Durbin
 

Hi All,

We'll be conducting an OS-A SEE TG meeting Nov 1st @ 9am PT. Link to join is here: https://zoom.us/j/2786028446?pwd=ZHFCR1JtKzg1WVpNZXNtci8xc1Mvdz09


OS-A SEE TG Meeting Oct 18 - 9am PT

Aaron Durbin
 

Hi All,

We're having a OS-A SEE TG meeting tomorrow Oct 18 at 9am PT. We last met on Oct 4. The meeting slides can be found here. We did not get through everything as we had a discussion about scoping for OS-A SEE. Tomorrow we'll try and work our way through those types of topics so we can nail down some decisions. As always there is a doc to capture topics people want to chat about here in future meetings.

Thanks.

-Aaron


Re: Hello!

Andrei Warkentin
 

Thanks Anup - I signed up to that list as well (and thanks for clarifying it's purpose w.r.t. this group).

-----Original Message-----
From: tech-unixplatformspec@... <tech-unixplatformspec@...> On Behalf Of Anup Patel
Sent: Monday, October 10, 2022 12:22 PM
To: Warkentin, Andrei <andrei.warkentin@...>
Cc: tech-unixplatformspec@...
Subject: Re: [RISC-V] [tech-unixplatformspec] Hello!

Hi Andrei,

On Mon, Oct 10, 2022 at 10:42 PM Andrei Warkentin <andrei.warkentin@...> wrote:

Dear all,



I just wanted to introduce myself and say ‘hi’. I recently joined the Intel SSE group as an engineer focusing on RISC-V standardization (in particular with an interest in collaborating on the OS-A spec, and its touchpoints with SBI, UEFI, ACPI, etc). Some of you may remember me in my past life participating in a similar vein in SystemReady activities. I’m excited to be here and look forward to a fruitful collaboration. I think it’s amazing how much has been accomplished in such a short amount of time. Kudos!
We now have a separate PRS TG (Platform Runtime Services) for yearly updates to SBI, UEFI, and ACPI specification.

Regards,
Anup




I poked around the mailing list server but wasn’t able to find a clear answer… Does this group have any kind of periodical group sync-ups I should add to my calendar?



A


Re: Hello!

Anup Patel
 

Hi Andrei,

On Mon, Oct 10, 2022 at 10:42 PM Andrei Warkentin
<andrei.warkentin@...> wrote:

Dear all,



I just wanted to introduce myself and say ‘hi’. I recently joined the Intel SSE group as an engineer focusing on RISC-V standardization (in particular with an interest in collaborating on the OS-A spec, and its touchpoints with SBI, UEFI, ACPI, etc). Some of you may remember me in my past life participating in a similar vein in SystemReady activities. I’m excited to be here and look forward to a fruitful collaboration. I think it’s amazing how much has been accomplished in such a short amount of time. Kudos!
We now have a separate PRS TG (Platform Runtime Services) for yearly
updates to SBI, UEFI, and ACPI specification.

Regards,
Anup




I poked around the mailing list server but wasn’t able to find a clear answer… Does this group have any kind of periodical group sync-ups I should add to my calendar?



A


Hello!

Andrei Warkentin
 

Dear all,

 

I just wanted to introduce myself and say ‘hi’. I recently joined the Intel SSE group as an engineer focusing on RISC-V standardization (in particular with an interest in collaborating on the OS-A spec, and its touchpoints with SBI, UEFI, ACPI, etc). Some of you may remember me in my past life participating in a similar vein in SystemReady activities. I’m excited to be here and look forward to a fruitful collaboration. I think it’s amazing how much has been accomplished in such a short amount of time. Kudos!

 

I poked around the mailing list server but wasn’t able to find a clear answer… Does this group have any kind of periodical group sync-ups I should add to my calendar?

 

A