Partner DESK Project

From DDCIDeos
Jump to navigationJump to search

Overview

The *Partner DESK* will be the first public (external to Honeywell) Deos Software Development Kit release. As such, it will be weaned of the RTIP network stack and other packages that are deemed either 'not commercially viable' or not distributable due to IP restrictions. The objective is to create a CD with the Cygwin Installer on it with our current tool technology, a subset of the BSPs, and good working examples.

Tasks (Charge number 2110-002-602 2)

lwIP

The Problem is that DDC-I cannot distribute RTIP. The plan is to retire RTIP and promote lwIP. With respect to the Deos supplied component, changing network stacks seems to only cause problems for gdbserver.exe, as gdbserver.exe sets socket options that 1) are not supported by lwIP, and 2) are supported by lwIP but with different enumerations (not binary compatible).

The designers of SAL, RTIP, and LwIP for Deos have given considerable thought to ensuring compatibility between components (reference [1]). What the designer have put in place is as follows:

  • A network stack and the SAL must agree upon certain data structures. This is manifest as socket-common.h, and both stacks and the SAL use this file.
  • A network stack provides a unique set of socket options. Socket options are represented as integers in the socket API. There is no standard that assigns a socket option a particular value, and as such, each stack implementation has the opportunity to assign random values to each supported socket option. Binary compatibility between stack is not likely -- if a user changes stacks, they should plan on recompiling.
  • The SAL, with respect to socket options, is merely a pass-thru. The purpose of SAL is to export an API to user code, collect up parameters, use some form of IPC to get those parameters to the network process. It does not *interpret* any socket option.
  • Since the SAL the *the* formal socket interface for Deos, it makes sense that it provide the standard socket.h file. But of course, it does not really know what network stack is in use, so it cannot define the socket options. Instead this socket.h file simply contains a one line include of the stack-in-use socket option header file. Right now, socket.h reads #include <rtip-socket.h>.

So what do we do to promote LwIP with the SAL? There are a number of options and the following observations were considered:

  • LwIP is the future for all parties involved. RTIP support by the SAL is not a requirement.
  • The stack and SAL are somewhat joined via socket-common.h.
  • SAL is DO-178B Level A, and the network is typically not. Right now, SAL users could easily get the impression that the socket.h and its includes have been formally reviewed, which is not the case.

The plan as of 12/12 is as follows:

  • Remove the socket.h file from SAL component, update the release notes and User's Guide informing users to include the [stack name]-socket.h file from their network component distribution into their source code.
  • Make a capsule release of the SAL
  • There are a small number of socket options that are supported by both RTIP and LwIP. For those options, change LwIP to match the RTIP value to promote compatibility where possible. This will at least make gdbserver.exe binary compatible with both RTIP and LwIP, which is an objective.
  • No changes to the static socket library (as it matches the RTIP socket definitions)
  • Impact on user code: Provide enough data in the SAL release notes to enable users to do some analysis (e.g., if only this set of options are used, its binary compatible. if this other set is used, its source code compatible. otherwise, its incompatible).


Task Description Assignee Status
Change the lwIP header file so that each socket option used by gdbserver.exe numerically matches the value of the corresponding RTIP socket option. This will allow binary compatibility of gdbserver.exe for use with both RTIP and lwIP. Socket options common to both RTIP and LwIP should be assigned the same numeric value by changing the LwIP source code. Create migration guide Wiki ([2]). PCR:5125.
  • Currently released as .unreleased. After CCB, promote to stable
  • Currently released as stable
Gary Done
Update installer to not install the *Network* component, but instead install *lwIP*. Right now the installer will generate an error if the *Network* component is not installed. Ideally, we want the rule to be changed to be "some network stack has to be installed. See /scm/Deos/maintainer-tools/cygwin/deos2cygwin/desk/package2cygwin.py". PCR:5495

This was achieved by branching the cygwin setup scripts. The Honeywell cygwin installer experience will still install RTIP.

Gary Done
Re-run the lwIP test suite and release a *stable* version of lwIP.
  • Test suite did not pass on Mac6360. Lwip wont run with pro10 driver. I dont have a platform to try and run the test suite on.
Gary Abort
Change the SAL header file to include lwip-socket.h. Move lwip-socket.h to SAL component. Update release notes to document compatibility. PCR:5474
  • Currently released as .unreleased. After CCB, Promote to stable or latest-verified (the binary is the same, but the usage via include files is different. Decide what we want to do here -- im thinking latest-verified).
  • Currently released as latest-verified
Gary Done
The IOI component is currently bundled with some examples. Unfortunately, the build environment for the examples is 'old' and there is little/no documentation to go with the examples. The IOI API component needs to be released with a capsule update (PCR:5483), and a PCR written to port the examples into true examples (PCR:5484)
  • Currently released as .unreleased. After CCB, promote to latest-verified
  • Currently released as latest-verified
Gary Done
On VMWare, both Ryan and Gary are seeing "connection refused" error messages on FTP connections in both download and normal modes. For Gary, the behavior has (for unknown reasons) gone from 80% failure in download mode to 100%. Wireshark traces have been captured and given to Tom T., but he is on vacation and will not have a chance to examine them until 09.
  • Ryan relocated the 'simulatedHardware' resource in the basecon and now all is good
Gary, Ryan Done
Release VMWare registry component.
  • Currently released as .unreleased. After CCB, promote to latest-verified
  • Currently released as stable
Gary Done
Release updated ioi-config tool with updated server documentation. PCR:5358
  • Published to .unreleased. After CCB, promote to stable.
  • Published to stable.
Gary Done
Release updated ioi-cvt tool with updated server documentation. PCR:5494
  • Published to .unreleased. After CCB, promote to stable
  • Published to stable
Gary Done
Release DESK examples.
  • Currently released as .unreleased. After CCB, promote to stable
  • Published to stable
Gary Done
Release DESK Docs.
  • Published to .unreleased. After CCB, promote to stable.
Bill Done
Release HPCN BSP.
  • Published to .unreleased. After CCB, promote to stable.
  • Published to stable
Bill Done

BSPs

The BSPs listed below are targeted for the evaluation DESK. Each must be modified to use lwIP. Additionally, in support of abcscat, each basecon.hyp should have the testRAM needed by SCAT defined.

Task Description Assignee Status
(req) VMware: replace RTIP with lwIP in the basecons, ensure basecon MDB files are error free with Deos Integration Tool 5.p1 Ryan Done
(req) VMware: integrate SCAT into basecon.hyp Ryan Done
(req) IntelPC: replace RTIP with lwIP in the basecons, ensure basecon MDB files are error free with Deos Integration Tool 5.p1
(req) IntelPC: integrate SCAT into basecon.hyp
(req) HPCN: Develop BSP Ryan
(opt) MacMini: replace RTIP with lwIP in the basecons, ensure basecon MDB files are error free with Deos Integration Tool 5.p1
(opt) MacMini: integrate SCAT into basecon.hyp
(opt) Mac6360: replace RTIP with lwIP in the basecons, ensure basecon MDB files are error free with Deos Integration Tool 5.p1
(opt) Mac6360: integrate SCAT into basecon.hyp
(opt) FitPC: Create BSP with RTIP, ensure basecon MDB files are error free with Deos Integration Tool 5.p1
(opt) FitPC: integrate SCAT into basecon.hyp
(opt) ep8280?
(opt) rattler8280?
(opt) zen?

Examples

The examples that come with the DESK must not only work correctly on each BSP listed above, the associated source code should look "professional" (formatting, comments, clarity, consistency).

The table below is organized by example. Each example must have someone examine the source for formatting, comments, clarity, and consistency. Then, that example must work on each of the platforms we support. Since not all team members have access to all platforms, rather than organize by example, people may choose to organize by platform. Please fill in your name on the task that you are working on. When finished, put a "Y" in the complete column.

Example Assignee Form OK? BSP
abcscat (example) On VMWare, the abc_example works just fine except for minor nits documented in PCR:5487.
BSP Assignee Works?
VMWareGaryY
HPCNRyanY
IntelPC?
FitPC?
Mac6360?
MacMini?
ep8280?
rattler8280?
zen?
auto-tune (example/lesson)
BSP Assignee Works?
VMWareGaryY
HPCNRyanYes
IntelPC?
FitPC?
Mac6360?
MacMini?
ep8280?
rattler8280?
zen?
dynamic (lesson) This is an example of how not to write code. Probably not a good way to provide an example.
BSP Assignee Works?
VMWareGaryY
HPCNRyanYes
IntelPC?
FitPC?
Mac6360?
MacMini?
ep8280?
rattler8280?
zen?
except (example) This example performs an integer divide by 0 and expects an exception but no exception is raised on the ppc. The code seems to have been written with this in mind.
BSP Assignee Works?
VMWareGaryY
HPCNRyanmostly
IntelPC?
FitPC?
Mac6360?
MacMini?
ep8280?
rattler8280?
zen?
hello-world (lesson, as this contains a hard coded breakpoint)
BSP Assignee Works?
VMWareKarenYes
HPCNRyanYes
IntelPC?
FitPC?
Mac6360?
MacMini?
ep8280?
rattler8280?
zen?
ioi-simple (example)
BSP Assignee Works?
VMWareGaryY
HPCNRyanYes
IntelPC?
FitPC?
Mac6360?
MacMini?
ep8280?
rattler8280?
zen?
mailbox (lesson) This does "work". User is expected to add slack, make code changes, etc.
BSP Assignee Works?
VMWareGaryY
HPCNRyanYes
IntelPC?
FitPC?
Mac6360?
MacMini?
ep8280?
rattler8280?
zen?
mtl (example) The registry associated with this example, which is shipped in the mtl-examples component, contains warnings about non-normalizable budgets (PCR:5489). There is no plan to fix this for the partner DESK release.
BSP Assignee Works?
VMWareGaryY
HPCNRyanYes
IntelPC?
FitPC?
Mac6360?
MacMini?
ep8280?
rattler8280?
zen?
mutexes (lesson)
BSP Assignee Works?
VMWareGaryY
HPCNRyanYes
IntelPC?
FitPC?
Mac6360?
MacMini?
ep8280?
rattler8280?
zen?
pipc (example)
BSP Assignee Works?
VMWareKarenYes
HPCNRyanYes
IntelPC?
FitPC?
Mac6360?
MacMini?
ep8280?
rattler8280?
zen?
shared-library (lesson) Not a very good example. Should have a single bootstrap/configure/make script for all files or at the minimum a readme that explains the order they have to be done in. The files.lis should include all needed files, currently libapploaded.so is not in the files.lis (I think this was done for training purposes but is bad for the examples).
BSP Assignee Works?
VMWareKarenYes
HPCNRyanYes
IntelPC?
FitPC?
Mac6360?
MacMini?
ep8280?
rattler8280?
zen?
testtsvs (example) Works fine. Student is supposed to edit registry to add the memory object VIDEO_testtsvs.exe, and then use the AM command of TVSV
BSP Assignee Works?
VMWareKarenYes
HPCNRyanYes
IntelPC?
FitPC?
Mac6360?
MacMini?
ep8280?
rattler8280?
zen?
threads Need to release Desk Examples version 1.5.0
BSP Assignee Works?
VMWareKarenYes
HPCNRyanYes
IntelPC?
FitPC?
Mac6360?
MacMini?
ep8280?
rattler8280?
zen?

Documentation

All the user documentation in all the components we deliver must (at least) reference valid servers.

Is there anything we need to do with copyright notices?

Task Description Assignee Status
DESK User's Guide: The DESK UG references the setup.exe script on the Honeywell server. What we really need is for that document to reference a relative link that will be valid for both Honeywell users and for CD-distribution users.
  • DESK installation lists HOME as an optional env var. Its not optional, as the index option on the start menu requires it
Bill Done

Creating Media

See Partner_DESK_Creation_And_Maintenance.