[Oberon] Oberon OS / HAL / FPGA

daniel.schmid at bluemail.ch daniel.schmid at bluemail.ch
Tue Feb 25 15:28:29 CET 2020


Dear Oberon Listeners
As a rather new user of Oberon (AOS build 9799) I am interested in whether there are really FPGAs on which Oberon runs? Does it have to do with the ETH PULP project (http://asic.ethz.ch)?
Thanks a lot and kind regards
Daniel

----Ursprüngliche Nachricht---- Von : oberon-request at lists.inf.ethz.ch Datum : 22/02/2020 - 12:00 (MN) An : oberon at lists.inf.ethz.ch Betreff : Oberon Digest, Vol 189, Issue 21

Send Oberon mailing list submissions to
	oberon at lists.inf.ethz.ch

To subscribe or unsubscribe via the World Wide Web, visit
	https://lists.inf.ethz.ch/mailman/listinfo/oberon
or, via email, send a message with subject or body 'help' to
	oberon-request at lists.inf.ethz.ch

You can reach the person managing the list at
	oberon-owner at lists.inf.ethz.ch

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Oberon digest..."


Today's Topics:

   1. Re: Project Oberon (was: Coding practice) (Skulski, Wojciech)
   2. Re: Project Oberon (was: Coding practice) (Michael Schierl)
   3. Re: Coding practice (Hans Klaver)
   4. Re: Project Oberon (was: Coding practice) (Skulski, Wojciech)


----------------------------------------------------------------------

Message: 1
Date: Fri, 21 Feb 2020 19:08:19 +0000
From: "Skulski, Wojciech" <skulski at pas.rochester.edu>
To: ETH Oberon and related systems <oberon at lists.inf.ethz.ch>
Subject: Re: [Oberon] Project Oberon (was: Coding practice)
Message-ID:
	<SN6PR07MB506914243460CA48D653ECD4FF120 at SN6PR07MB5069.namprd07.prod.outlook.com>
	
Content-Type: text/plain; charset="utf-8"

Joerg:
> As you know, Project Oberon has two parts: a) the Oberon OS and b) the HAL (HW abstraction layer)

Physically it has the third layer, which is FPGA boards and emulators which can be termed "soft boards". I actually think that emulators are the most undervalued part of the project. They have a great potential. 

> a) The OS part of Project Oberon is collaborative, but perhaps in the peculiar way that you write your improvements in a mail to NW and he commits your request (or not). NW is a kind of ?human git??

The informal nature of this arrangement creates a problem, I think.

> Andreas, Paul, myself, probably Chris and others provided input to NW to make the Oberon OS more stable and bug free.
> The clearer you describe the error or the improvement including working code snipets, the more likely it is to be included by NW in a next release

It would be more natural if the said persons formed a formal Advisory Committee with NW being a chairman. If you look around either the industry or academia, you will such committees everywhere. The Oberon community is an exception. 

The community could then discuss, submit propositions and patches to the Committee, which could then improve and prioritize the propositions. The final step would be an inclusion in the official system. The process would be open and transparent. 

Lacking a formal procedure is adversely affecting the progress. One can of course say "we do not need any damn progress", which is more or less the present situation. 

> b) In my point of view, NW sees his HAL (RISC5 instruction set, expected peripherals and memory layout) more or less as frozen. The only late addition he made to it were interrupts.

This is both reasonable and good. It provides a stable base. 

The actual firmware implementation is rising some timing issues. The implementation can be fixed without touching the instruction set.

> As long as any implementation (ASIC, FPGA, SoC, emulator) complies to the described HAL, the Oberon OS and especially the compiler works on it as is.

This is great. 

> New HAL features can be added to Project Oberon. I added a 16 color display by changing VID.v and Display.Mod.

Any practical instrument will need to add new peripherals. It can be done with new modules. It will not disrupt the foundation. 

> But this feature is not taken over into NWs release. ... And remember: colors need a lot of memory, so I had to reduce max code and heap size considerably to make 16 colors work in only 1 MB the board I have provides. BTW: The HAL is not bound to 1 MB. A compliant implementation can have up to 16 MB.

A full HD display will take 2,073,600 bytes with 8 bit color. A board with 4 MB can afford this. There is no reason why the limitation of the ancient FPGA board dictates the BW display. The display resolutions and colors can be encapsulated in Display and/or SysDef and transparantly implemented w/o disrupting the base system. This is why I am advocating that the system is parametrized. Without parametrization any change will lead to a domino effect. With parametrization the changes will be possible.

All that was actually envisioned in the NW book, but then he did not provide the properly parametrized foundation.

> If you see the Oberon OS (especially the inner core) as a good base for embedded systems, 16 colors is of minor interest as most embedded system not even have a display at all. 

This is not true. Some instrumentation needs a display. It is not right to say "this design is limited by an ancient technology, but this is OK because a more general design is not needed anyway".

Wojtek
--------------------------------------------

> Am 21.02.2020 um 04:02 schrieb Skulski, Wojciech <skulski at pas.rochester.edu>:
>
> ?Chris:
>
>  thank you for the summary. I suspect we can wrap up this discussion as follows. (1) We roughly agree that a good style exists and it has even been written up. (2) Not much will change in any variant of the Oberon System (except Astrobe, where there is constant progress).
>
> I base prediction #2 on the dictionary definition of the word "project", which says "an individual or collaborative enterprise that is carefully planned and designed to achieve a particular aim".
>
> In that sense "Project Oberon" is not a project despite its name. There is no "collaborative enterprise that is carefully planned". There is no "particular aim". In particular, improving Oberon System code quality is not an aim which we would all agree upon. For this reason it is not likely to be achieved. I hope this prediction will be proven wrong.
>
> Lacking a collaborative project, there are several  individual "Oberon Projects". They remain disjoint and pursued in isolation. Not much is moving forward on a common FPGA Oberon System frontier despite seven years since the original release. Things have actually deteriorated because the FPGA boards have disappeared, what was only partly compensated by the Oberon System emulators. An emulator without an actual board has a somewhat limited function.
>
> If there was a common FPGA Oberon System project, then how it would look like? (I know I am dreaming.) Here is my own individual dream list concerning the FPGA Oberon System, which is my main interest.
>
> 1) A project means collaboration among people. So the first step would consist of forming a team willing to communicate and to collaborate on a common FPGA Oberon System.
>
> 2) The team would agree on a set of achievable goals.
>
> 3) The team would prioritize the goals and assign them to its members.
>
> 4) Any FPGA project consists of HW, FW, and SW which need be co-developed in parallel. The list of tasks and responsibilities would follow this division.
>
> 5) Based on the experience with the present System, augmented with emulators, the team would agree on the FPGA board architecture and features. I submit to consideration that the FPGA board would provide two or four MB, preferably of the synchronous type which delivers better performance than ASRAM. Having more than a single MB would allow to add color to the display, as well as develop more ambitious applications.
>
> 6) Designing a new board may not be even necessary. Five RiskFive sets exist and these can be distributed among the team. So this step can be short circuited. More such sets can be manufactured by any team member. I can provide the design files and the BOM.
>
> 7) Simplified and cheaper board versions can be eventually designed. Other boards can get adopted to the project. (Preferably no SDRAM which is hard to interface.)
>
> 8) The next ingredient is the FW. The current version of RISC5.v is not ideal. Considerable discussion can be devoted to fixing the timing flaws. Team members versed in FPGA firmware could work on fixing RISC5.v.
>
> 9) The RISC5top.v seems to be surprisingly resilient. The FPGA board designs should take this into account by providing peripherals served by the RISC5top. RiskFive is very close to doing this. We actually achieved this stage.
>
> 10) I am strongly advocating that factoring out the memory locations in the code will help while working on HW and FW interfacing. I have already done and published this step.
>
> 11) Ethernet can be brought back to Oberon System with the addition of Ethernet controller(s) to the HW. This has been done with RiskFive, which is Ethernet-ready. Other FPGA boards (to be developed) can add their own variants of Ethernet controllers.
>
> 12) After achieving the above, the Oberon System code would be ready for a serious facelift. Ethernet services, printing, file sharing, or remote program execution are all among possible facelifts, according to individual interests.
>
> 13) After achieving the above, the team could continue pushing the Oberon System to become a contender against MicroPython or FreeRTOS, for example. There would be enough momentum in the collaboration that such ambitious goal can become a reality.
>
> Please note that the above list, though maybe long, is kind of logical. Most of these steps follow one after another in a natural order.
>
> How likely is it to happen?
>
> Wojtek
>
>
>
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.inf.ethz.ch_mailman_listinfo_oberon&d=DwIGaQ&c=kbmfwr1Yojg42sGEpaQh5ofMHBeTl9EI2eaqQZhHbOU&r=uUiA_zLpwaGJIlq-_BM9w1wVOuyqPwHi3XzJRa-ybV0&m=P3kwBLSq9W3-eEJ5UObHdHOuAx2lOGAjiyI6CUg0UM8&s=lP7bIxmlc8S6jY60eI0HON2tBaBJf9Cw1N6nfQRGdzU&e=

--
Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.inf.ethz.ch_mailman_listinfo_oberon&d=DwIGaQ&c=kbmfwr1Yojg42sGEpaQh5ofMHBeTl9EI2eaqQZhHbOU&r=uUiA_zLpwaGJIlq-_BM9w1wVOuyqPwHi3XzJRa-ybV0&m=P3kwBLSq9W3-eEJ5UObHdHOuAx2lOGAjiyI6CUg0UM8&s=lP7bIxmlc8S6jY60eI0HON2tBaBJf9Cw1N6nfQRGdzU&e=

------------------------------

Message: 2
Date: Fri, 21 Feb 2020 23:22:21 +0100
From: Michael Schierl <schierlm at gmx.de>
To: "Skulski, Wojciech" <skulski at pas.rochester.edu>, ETH Oberon and
	related systems <oberon at lists.inf.ethz.ch>
Subject: Re: [Oberon] Project Oberon (was: Coding practice)
Message-ID: <b45acd45-61d1-19fc-214a-3d3adc367c59-6628 at gmx.de>
Content-Type: text/plain; charset=utf-8

Hello Wojtek,


Am 21.02.2020 um 04:01 schrieb Skulski, Wojciech:
> If there was a common FPGA Oberon System project, then how it would look like? (I know I am dreaming.) Here is my own individual dream list concerning the FPGA Oberon System, which is my main interest.
>
> 1) A project means collaboration among people. So the first step would consist of forming a team willing to communicate and to collaborate on a common FPGA Oberon System.
>
> 2) The team would agree on a set of achievable goals.


In my opinion the order is wrong here. Successful collaboration requires
first to determine the goals (and non-goals) of the collabroration,
because depending on how the goals match, different members may join or
not. And it does not only matter if goals are achievable (by the
members), but also if they are desirable (to most members).

[A good example was the Subversion VCS project, which defined first that
they want to build a centralized version control system, and which
features are in-scope and which are out-of-scope. Then they attracted
like-minded people and were able to achieve their vision, by closing any
feature requests that were out-of-scope of their vision as WONTFIX.]

I guess there are at least 5 people in the list who are interested in
"improving Project Oberon", but what is an improvement to some of them
is a feature-creep or deterioration to others. Which also explains that
there are different code bases.

For example, some time ago I suggested removing some unused exported
members, like Display.Handle, from some Project Oberon modules, and
un-exporting some others, to make coupling lower and make it easier to
understand some code; and immediately I got some reactions why you
cannot remove them - "What if somebody wants to create a different
windowing/input manager? What if somebody wants to extend this or
that?". My answer would be "If they really want, they would have to add
this, or something similar, back".

Another example is actual hardware availability. For me it is enough
that at some point in time, actual hardware existed to run the thing
(proving that the design is indeed implementable in real hardware), and
that today there are some means to still run the thing (which need not
be hardware, but emulation is fine).

So what is an improvement to the system for me is the opposite for
others, and vice versa.


Regards,


Michael


------------------------------

Message: 3
Date: Fri, 21 Feb 2020 22:57:51 +0100
From: Hans Klaver <hklaver at dds.nl>
To: ETH Oberon and related systems <oberon at lists.inf.ethz.ch>
Subject: Re: [Oberon] Coding practice
Message-ID: <EED11038-B551-4ABD-96BC-7CF53C1B4787-2319 at dds.nl>
Content-Type: text/plain; charset="us-ascii"

As I found this Omi document Programming Conventions very useful and instructive for 
Oberon and Component Pascal programmers, deserving wider circulation, a few 
years ago I made a .pdf document of it (by means of 'printing to PDF'), which can 
be found here: https://hansklav.home.xs4all.nl/oberon.shtml <https://hansklav.home.xs4all.nl/oberon.shtml>

There you can also find a link to a document that deserves to be better accessable
to the Project Oberon community: the book The Oberon System, User Guide and 
Programmer's Manual, by Martin Reiser. This is the first volume of the 'Oberon Trilogy', 
describing an early (1990) version of the Oberon System in a very clear and informative 
way, imho still useful for the present Project Oberon 2013 user and programmer.

The .pdf file resides on the oberoncore.ru <http://oberoncore.ru/> website.

I own a hardcopy of this book, which I bought in 1991 and which sparked my interest
in Oberon. Not only is it very well written but it is the book with the most attractive lay-out 
of all Oberon books!

--
Hans Klaver


> The guys at Oberon microsystems published a set of Programming Conventions
> for Oberon/L a.k.a. Component Pascal. It is included in the Help file with
> the Blackbox Component Pascal system. Several possible styles i.e. multiple
> statements on one line, statements split over several lines etc. are
> considered to be good practice. Thankfully, nobody is forced or constrained
> by the Oberon language itself (unlike some languages) to use a prescribed
> programming style. 
> 
> Rather than inventing our own programming conventions, we adopted those,
> with the kind permission of Oberon microsystems, for the Astrobe development
> system. If you do not have access to the original Blackbox document refer to
> Chapter 8. 'Programming Conventions and Guidelines' in the 'ARM Cortex-M
> Oberon Programmers Guide' which you can download from:
> 
> https://www.astrobe.com/Oberon.htm
> 
> When I'm writing new code from scratch then I use my own personal
> preferences (which can change from one month to another!) However, if I am
> making minor modifications to existing code I try to follow the principle of
> 'when in Rome do as the Romans do' and adopt a similar style to the original
> author. If these principles are not followed the result can be code that
> looks as ugly as a one-page document written in 17 different fonts.
> 
> Regards,
> Chris Burrows
> CFB Software
> https://www.astrobe.com
> 
> 
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.inf.ethz.ch/pipermail/oberon/attachments/20200221/bfcca061/attachment-0001.html>

------------------------------

Message: 4
Date: Sat, 22 Feb 2020 03:53:43 +0000
From: "Skulski, Wojciech" <skulski at pas.rochester.edu>
To: Michael Schierl <schierlm at gmx.de>, ETH Oberon and related systems
	<oberon at lists.inf.ethz.ch>
Subject: Re: [Oberon] Project Oberon (was: Coding practice)
Message-ID:
	<SN6PR07MB506954CF66FEEE606EAE841EFFEE0 at SN6PR07MB5069.namprd07.prod.outlook.com>
	
Content-Type: text/plain; charset="us-ascii"

Michael:

> I guess there are at least 5 people in the list who are interested in
> "improving Project Oberon", but what is an improvement to some of them
> is a feature-creep or deterioration to others. Which also explains that
> there are different code bases.

Where is the value proposition if improving the system is not it?

W.

------------------------------

Subject: Digest Footer

--
Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
https://lists.inf.ethz.ch/mailman/listinfo/oberon


------------------------------

End of Oberon Digest, Vol 189, Issue 21
***************************************



More information about the Oberon mailing list