Deos MIPS Port

From DDCIDeos
Jump to navigationJump to search

This project is to port Deos to MIPS. It also integrates the additional capabilities from Deos_Cache_Partitioning

Current Status

Work on this project is complete.

See Be a Maintainer below for MIPS SW development instructions.

We've determined that image relocation is not possible given the MIPS ABI and Honeywell's requirement for small data. This means that we need to link all the MIPS libraries at fixed addresses. Furthermore the restriction will be that small data will only work for executables. Honeywell was notified of this at CDR.

Be a Maintainer

To build and debug MIPS apps follow these steps:

  • Install a fresh "experimental" set of cygwin packages from dist-fourpeaks. Choose these to get started:
    • deos-maintainer-tools
    • desk-mips
  • To build a MIPS compatible hyperstart image and launch it within the QEMU simulator:
$ cd ~/tmp
$ makeboot @/desk/platform/qemu-mips/etc/basecon.hyp
$ startqemu


Infrastructure Update

The MIPS porting activity will require re-releasing almost all the Deos components. The following table has the current status. The Tracking spreadsheet contains original effort estimates and rationale for why some components are not included. The updated milestone spreadsheet has the committments for the 11/2/2011 delivery.

Meaning of the columns:

  • Sequence : Lower numbered tasks need to be complete before higher numbered tasks. If a task doesn't have a priority, then it can be done "later".
  • GCC 4.6 & new build :
    1. Component has been ported to commonBuildSystemInterface=4 and compiles with GCC 4.6 on all targets, including MIPS.
    2. Eliminate compiler warnings for level E components, higher design assurance require cost benefit trade-off.
    3. Makefiles match canonical format.
    4. Static ANSI has been replaced with libansi.so.
  • Library Symbols :
    1. Intel x86 versions import ANSI 4.0.1 compatible symbols, e.g. _strspn rather than strspn.
    2. Libraries : the component has been changed to only export the necessary symbols (--version-script).
      • On X86, "_" symbols should be exported for all _symbols exported by legacy libraries.
    3. Executables : generally should not have --export-dynamic. N/A for tools.
  • Informal Test :
    1. The tests have been ported to new test infrastructure.
    2. The regression runs, perhaps with some explainable errors.
  • Cygwin Released : The component been at least "unreleased".
  • Tests Run?  : All the tests pass on on all targets (including MIPS).
  • Done : All verification activities have been completed.
Component Sequence GCC 4.6 & new build Library Symbols? Informal test? Cygwin Released? Tests Run? Done Assignee Comments
abc-tool Yes N/A Yes Yes Yes Yes Thorkil Tool qualification done for 4.6.1 for x86, ppc, and mips. Final releasing still missing.
ansi 1 Yes Yes Yes Yes Yes Yes Johan
dart Yes Yes Yes Yes Yes Yes Richard See DART_Project
dds-docs Yes N/A N/A Yes N/A Yes Released as part of Deos_Chino_653D57_Release.
deos653p1-runtime Yes Yes Yes Yes Yes Yes Richard See Deos_653_P1_and_P4_Verification_Project
deos653p4-runtime Yes Yes Yes Yes No No Richard See Deos_653_P1_and_P4_Verification_Project
deos653p1-examples Yes Yes Yes Yes Yes Yes Richard
deos653p4-examples Yes Yes Yes Yes Yes Yes Richard
registry-cvt-win32 Yes N/A Yes Yes Yes Yes
deos-training No No No No TBD No Requires updates for 653.
deosname Yes Yes Yes Yes Yes Yes
desk-mips Yes N/A Yes Yes N/A Yes
elfchk N/A N/A Yes Yes Yes Yes
hypdump N/A N/A Yes Yes N/A Yes
hypstart 2 Yes N/A Yes Yes N/A Yes Released as part of Deos_Chino_653D57_Release.
link_deos 1 N/A N/A Yes Yes N/A Yes
makeboot 2 N/A N/A Yes Yes TBD Yes
makelib N/A N/A Yes Yes N/A Yes
makereg 2 N/A N/A Yes Yes Yes Yes
ftpserver 3 Yes Yes Yes Yes TBD Yes Compatible with ANSI 4.0.1.
gcc4-mips-elf N/A Yes Yes Yes N/A Yes
gdbserver 5 Yes Yes Yes Yes N/A Yes Johan Level E. No regression tests.
inetd 3 Yes Yes Yes Yes TBD Yes Level E. No regression tests.
integ-tool-command-line 1 Yes N/A Yes Yes Yes Yes
ioi-api Yes Yes Yes Yes Yes Yes
ioi-config-tool Yes N/A Yes Yes Yes Yes
ioi-cvt Yes N/A Yes Yes Yes Yes
ioi-examples Yes N/A Yes Yes Yes Yes 2.0.2 stable
ioi-ringBuffer Yes N/A Yes Yes Yes Yes
kernel 1 Yes Yes Yes Yes Yes Yes See Kernel_Fourpeaks_Project
kernel-examples Yes N/A Yes Yes N/A Yes
kernel debugger library 4 Yes Yes Yes Yes TBD Yes No regression tests. Informally tested against status monitor and MLD.
lwip 3 Yes Yes Yes Yes TBD Yes ANSI 4.0.1 compatible. MIPS test results match x86/ppc, calling that "ported".
MTL Yes Yes Yes Yes Yes Yes Customer only needs Level E. Level E MIPS library released as part of Deos_Chino_653V6_Release. Required for lwip tests. See PCR:7298
math-mips 6 Yes Yes Yes Yes Yes Yes Johan
socket-api-library Yes Yes Yes Yes Yes Yes Customer only needs Level E. Level E MIPS library released as part of Deos_Chino_653V6_Release. Required for lwip tests. Ref PCR:8368
socket-examples Yes Yes Yes Yes Yes Yes Release without MIPS support as part of Deos_Chino_653D57_Release. Depends on socket-api-library. Released as part of Deos_Modelo_Initial_Software
startup-gcc 1 Yes N/A Yes Yes Yes Yes Johan
static-socket-library 2 Yes N/A Yes N/A N/A Yes
static-video-library 1 Yes N/A Yes Yes Yes Yes
status-monitor 4 Yes Yes Yes Yes TBD Yes Level E - No regression tests
systemvideostreams 6 Yes Yes Yes Yes N/A Yes Johan Level E - No regression tests
tardebug 5 Yes N/A Yes Yes N/A Yes Released as part of Deos_Chino_Red_Label_Release.
test-infrastructure 4 Yes N/A Yes Yes N/A Yes
qemu-mips-boot 2 Yes N/A Yes Yes N/A Yes
qemu-mips-config 2 N/A N/A Yes Yes N/A Yes
qemu-mips-pal 2 Yes Yes Yes Yes N/A Yes 653 runtime failures appear to be virtual time related.
rtl-bouton (RTL8139) 3 Yes Yes Yes Yes N/A Yes

Kickoff meeting

Meeting Prep

  • MIPS kickoff meeting corresponds to MIPSK1 in the SOW.
  • 2011-July is T2 which is the same as T+9months.
  • BOE spreadsheet
  • Where are MIPS HW designs?

Presentation material

  • Embedded software risk issues:
    • Kernel
      • Caching policy
      • 31-bit address space
  • Development tooling risks/issues:
    • Honeywell wants to use compiler small data area, this can't be done with PIC code (i.e., all libraries and executables must be compiled/linked with fixed addresses.
    • hard-float vs soft-float, mixing ABIs generates warnings. Issue is that compiler uses floating point for "optimizing" data moves, which has substantial overhead in context switching.
    • Kernel will only support 32-bit ABI (kernel only saves/restores 32-bits of the GPRs). We believe Honeywell accepts this.
    • Physical addresses for page and page directory tables are limited to be less than 512MB.

CDR

The CDR slides are what we presented. Currently awaiting an action item list from Larry.