Mercurial > ecos-v2_0-branch
changeset 169:11b54a94cf58
Merge from eCos master repository on 2001-07-06-06:43:02-BST
line wrap: on
line diff
--- a/host/tools/configtool/standalone/wxwin/CHANGES.txt +++ b/host/tools/configtool/standalone/wxwin/CHANGES.txt @@ -1,11 +1,25 @@ Release History for eCos Configuration Tool 2 ============================================= -*** Version 2.03, June 28th 2001 +*** Version 2.03, July 2nd 2001 - Corrected a bug introduced in the previous release, where the initial template selection was wrong. +- More forgiving when specifying the packages directory for the repository. + +- Run Tests dialog now working when using a serial port: Windows and Linux. TCP/IP + mode seems to be working on Windows also. + +- Now saves file history list in FileHistory instead of top-level in config file/registry. + +- Removed Server-side GDB checkbox in platform editor. + +- Widened TCP/IP port text control in Run Tests settings dialog. + +- Fixed bug where message box with an empty repository name was shown if no repository + was found at all. + *** Version 2.02, June 27th 2001 - Packages are now sorted in the Packages Dialog.
--- a/host/tools/configtool/standalone/wxwin/README.txt +++ b/host/tools/configtool/standalone/wxwin/README.txt @@ -47,7 +47,6 @@ What's in this release? original tool: - Memory Layout Tool - - Running tests from the tool - Administration functionality (initial code present but untested) - Gauge indicating time left to build library and tests @@ -238,10 +237,9 @@ A: The wxWindows web site is at http:// Q: Does the new Configuration Tool make the old one obsolete? A: Not yet. The new tool doesn't yet support some features, such - as the Memory Layout Tool and the Run Tests dialog. When - these have been implemented, and the tool has been subject - to the required quality assurance procedure, then we can - retire the old tool. + as the Memory Layout Tool. When these have been implemented, + and the tool has been subject to the required quality assurance + procedure, then we can retire the old tool. Q: How can I help improve the Configuration Tool?
--- a/host/tools/configtool/standalone/wxwin/TODO.txt +++ b/host/tools/configtool/standalone/wxwin/TODO.txt @@ -3,16 +3,12 @@ To-Do List for Configuration Tool 2.x - Implement Memory Layout Tool. -- Debug Run Tests Dialog. +- Verify Run Tests Dialog works for TCP/IP mode on Linux. - List templates in alphabetical order under Linux. Unfortunately wxComboBox in wxGTK doesn't support wxCB_SORT at this time (but wxChoice does). -- User reports that if you set ECOS_REPOSITORY to e.g. /home/julians/eCos/ecc/ecc, - configtool will complain about a missing packages directory. - (Can't reproduce.) - - Importing more than one package at a time can cause conflicts whereas importing one at a time causes no conflicts.
--- a/host/tools/configtool/standalone/wxwin/configtool.cpp +++ b/host/tools/configtool/standalone/wxwin/configtool.cpp @@ -30,7 +30,7 @@ // Author(s): julians // Contact(s): julians // Date: 2000/08/24 -// Version: $Id: configtool.cpp,v 1.36 2001/06/26 17:26:35 julians Exp $ +// Version: $Id: configtool.cpp,v 1.38 2001/07/05 10:42:16 julians Exp $ // Purpose: // Description: Implementation file for the ConfigTool application class // Requires: @@ -223,15 +223,6 @@ bool ecApp::OnInit() wxPoint(GetSettings().m_frameSize.x, GetSettings().m_frameSize.y), wxSize(GetSettings().m_frameSize.width, GetSettings().m_frameSize.height)); -#if 0 - // TODO: eCos.hhp/hhc/hhk will eventually be generated as the app starts up. - if ( !GetHelpController().Initialize(GetFullAppPath(wxT("eCos"))) ) - { - //wxMessageBox(_("Cannot initialize the help system, aborting.")); - //return FALSE; - } -#endif - m_mainFrame = frame; SetTopWindow(frame); frame->Show(TRUE); @@ -548,6 +539,9 @@ int ecApp::OnExit(void) { wxConfig config(wxGetApp().GetSettings().GetConfigAppName(), wxT("Red Hat")); + if (config.HasGroup(wxT("FileHistory"))) + config.DeleteGroup(wxT("FileHistory")); + config.SetPath(wxT("FileHistory/")); m_docManager->FileHistorySave(config); } @@ -936,7 +930,10 @@ bool ecApp::PrepareEnvironment(bool bWit wxString oldPath(wxGetenv(wxT("PATH"))); wxString path(strBinDir); if (!oldPath.IsEmpty()) + { + path += wxT(":"); path += oldPath; + } wxSetEnv(wxT("PATH"), path); } (* cmdLine) += wxString(wxT("unset GDBTK_LIBRARY; ")) ;
--- a/host/tools/configtool/standalone/wxwin/configtooldoc.cpp +++ b/host/tools/configtool/standalone/wxwin/configtooldoc.cpp @@ -30,7 +30,7 @@ // Author(s): julians // Contact(s): julians // Date: 2000/10/05 -// Version: $Id: configtooldoc.cpp,v 1.33 2001/06/28 15:54:25 julians Exp $ +// Version: $Id: configtooldoc.cpp,v 1.35 2001/07/05 10:42:16 julians Exp $ // Purpose: // Description: Implementation file for the ecConfigToolDoc class // Requires: @@ -657,7 +657,7 @@ bool ecConfigToolDoc::OpenRepository(con { UpdateFailingRuleCount(); - wxString strNewRepository; + ecFileName strNewRepository; while(!m_bRepositoryOpen) { if(bPromptInitially) @@ -777,37 +777,52 @@ bool ecConfigToolDoc::OpenRepository(con return m_bRepositoryOpen; } -bool ecConfigToolDoc::OpenRepository (const ecFileName& strNewRepository, CdlPackagesDatabase &NewCdlPkgData,CdlInterpreter &NewCdlInterp,CdlConfiguration &NewCdlConfig, wxString &strNewPackagesDir) +// Find a valid repository given a directory name +bool ecConfigToolDoc::FindRepository (ecFileName& repositoryIn, ecFileName& repositoryOut) const +{ + if (repositoryIn.IsEmpty()) + return FALSE; + + if (ecFileName(repositoryIn + wxT("ecos.db")).Exists()) + { + repositoryOut = repositoryIn; + repositoryIn = wxPathOnly(repositoryIn); + return TRUE; + } + else if (ecFileName(ecFileName(repositoryIn) + ecFileName(wxT("ecc")) + wxT("ecos.db")).Exists()) + { + repositoryOut = repositoryIn + wxT("ecc"); + return TRUE; + } + else if (ecFileName(ecFileName(repositoryIn) + ecFileName(wxT("packages")) + wxT("ecos.db")).Exists()) + { + repositoryOut = repositoryIn + wxT("packages"); + return TRUE; + } + else + { + return FALSE; + } +} + + +bool ecConfigToolDoc::OpenRepository (ecFileName& strNewRepository, CdlPackagesDatabase &NewCdlPkgData,CdlInterpreter &NewCdlInterp,CdlConfiguration &NewCdlConfig, wxString &strNewPackagesDir) { bool rc=FALSE; - if(!strNewRepository.IsEmpty()) + if (strNewRepository.IsEmpty()) + return FALSE; + + ecFileName strNewPackagesDir1; + if (!FindRepository(strNewRepository, strNewPackagesDir1)) { - // Now strNewRepository is guaranteed non-empty, but does it exist? - if(!wxDirExists(strNewRepository)) - { - wxString msg; - msg.Printf(_("Cannot open repository - the folder %s does not exist"), (const wxChar*) strNewRepository); - wxMessageBox(msg, wxGetApp().GetSettings().GetAppName(), wxICON_EXCLAMATION|wxOK); - } else - { - // Ok so it exists, but does it look right? - //strNewPackagesDir=strNewRepository+wxString(wxFILE_SEP_PATH)+wxT("ecc"); - strNewPackagesDir=strNewRepository + wxT("ecc"); - if(!wxDirExists(strNewPackagesDir)) - { - //strNewPackagesDir=strNewRepository+wxString(wxFILE_SEP_PATH)+wxT("packages"); - strNewPackagesDir=strNewRepository + wxT("packages"); - } - - if(!wxDirExists(strNewPackagesDir)) - { - // Don't mention the ecc\ attempt - wxString msg; - msg.Printf(_("%s does not seem to be a source repository: the folder %s does not exist"), - (const wxChar*) strNewRepository, (const wxChar*) strNewPackagesDir); - wxMessageBox(msg, wxGetApp().GetSettings().GetAppName(), wxICON_EXCLAMATION|wxOK); - } else { + wxString msg; + msg.Printf(_("%s does not seem to be a source repository."), + (const wxChar*) strNewRepository); + wxMessageBox(msg, wxGetApp().GetSettings().GetAppName(), wxICON_EXCLAMATION|wxOK); + } else + { + strNewPackagesDir = strNewPackagesDir1; const wxString strDatabase = strNewPackagesDir + wxString(wxFILE_SEP_PATH) + wxT("ecos.db"); if(!wxFileExists(strDatabase)) @@ -815,7 +830,8 @@ bool ecConfigToolDoc::OpenRepository (co wxString msg; msg.Printf(_("%s does not seem to be a source repository: %s does not exist"), (const wxChar*) strNewRepository, (const wxChar*) strDatabase); wxMessageBox(msg, wxGetApp().GetSettings().GetAppName(), wxICON_EXCLAMATION|wxOK); - } else { + } else + { // create a CDL repository, interpreter and configuration try {// create a new package database, interpreter and configuration @@ -882,8 +898,6 @@ bool ecConfigToolDoc::OpenRepository (co } rc=TRUE; } - } - } } return rc;
--- a/host/tools/configtool/standalone/wxwin/configtooldoc.h +++ b/host/tools/configtool/standalone/wxwin/configtooldoc.h @@ -30,7 +30,7 @@ // Author(s): julians // Contact(s): julians // Date: 2000/10/05 -// Version: $Id: configtooldoc.h,v 1.13 2001/06/11 14:22:31 julians Exp $ +// Version: $Id: configtooldoc.h,v 1.14 2001/06/29 13:48:22 julians Exp $ // Purpose: // Description: Header file for ecConfigToolDoc // Requires: @@ -133,8 +133,10 @@ public: //// Operations bool OpenRepository(const wxString& pszRepository = wxEmptyString, bool bPromptInitially=FALSE) ; - bool OpenRepository (const ecFileName& strNewRepository, CdlPackagesDatabase &NewCdlPkgData,CdlInterpreter &NewCdlInterp,CdlConfiguration &NewCdlConfig, wxString &strNewPackagesDir); + bool OpenRepository (ecFileName& strNewRepository, CdlPackagesDatabase &NewCdlPkgData,CdlInterpreter &NewCdlInterp,CdlConfiguration &NewCdlConfig, wxString &strNewPackagesDir); void CloseRepository() ; + // Find a valid repository given a directory name + bool FindRepository (ecFileName& repositoryIn, ecFileName& repositoryOut) const; void EnableCallbacks (bool bEnable=TRUE); void AddContents (const CdlContainer container, ecConfigItem *pParent); void AddAllItems();
index 2dede1ea20584559afed2af3b2029d87928fcc5d..47d708c74f5c9063897ae4afc066cddcf7780e96 GIT binary patch literal 71625 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 BwB!H)
--- a/host/tools/configtool/standalone/wxwin/mainwin.cpp +++ b/host/tools/configtool/standalone/wxwin/mainwin.cpp @@ -30,7 +30,7 @@ // Author(s): julians // Contact(s): julians // Date: 2000/08/24 -// Version: $Id: mainwin.cpp,v 1.45 2001/06/26 17:26:35 julians Exp $ +// Version: $Id: mainwin.cpp,v 1.46 2001/06/29 13:48:22 julians Exp $ // Purpose: // Description: Implementation file for the ConfigTool main window // Requires: @@ -281,6 +281,7 @@ ecMainFrame::ecMainFrame(wxDocManager *m // Load file history { wxConfig config(wxGetApp().GetSettings().GetConfigAppName(), wxT("Red Hat")); + config.SetPath(wxT("FileHistory/")); wxGetApp().GetDocManager()->FileHistoryLoad(config); }
--- a/host/tools/configtool/standalone/wxwin/platformeditordlg.cpp +++ b/host/tools/configtool/standalone/wxwin/platformeditordlg.cpp @@ -30,7 +30,7 @@ // Author(s): julians // Contact(s): julians // Date: 2000/09/06 -// Version: $Id: platformeditordlg.cpp,v 1.3 2001/03/23 13:38:04 julians Exp $ +// Version: $Id: platformeditordlg.cpp,v 1.4 2001/07/05 10:42:16 julians Exp $ // Purpose: // Description: Implementation file for the ecPlatformEditorDialog // Requires: @@ -167,11 +167,12 @@ void ecPlatformEditorDialog::CreateContr wxTextCtrl *item11 = new wxTextCtrl( parent, ecID_MODIFY_PLATFORM_PROMPT, _(""), wxDefaultPosition, wxDefaultSize, 0 ); item1->Add( item11, 0, wxGROW|wxALL, 5 ); +#if USE_SS_GDB_CONTROL item1->Add( 20, 20, 0, wxALIGN_CENTRE|wxALL, 5 ); wxCheckBox *item12 = new wxCheckBox( parent, ecID_MODIFY_PLATFORM_SS_GDB, _("Server-side GDB"), wxDefaultPosition, wxDefaultSize, 0 ); item1->Add( item12, 0, wxGROW|wxALL, 5 ); - +#endif item0->Add( item1, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); wxSizer *item13 = new wxBoxSizer( wxHORIZONTAL ); @@ -190,64 +191,6 @@ void ecPlatformEditorDialog::CreateContr item0->Add( item13, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); -#if 0 - wxSizer *item0 = new wxBoxSizer( wxVERTICAL ); - - wxSizer *item1 = new wxFlexGridSizer( 2, 0, 0 ); - - wxStaticText *item2 = new wxStaticText( parent, wxID_STATIC, "Platform &name:", wxDefaultPosition, wxDefaultSize, 0 ); - item1->Add( item2, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); - - wxTextCtrl *item3 = new wxTextCtrl( parent, ecID_MODIFY_PLATFORM_NAME, "", wxDefaultPosition, wxSize(200,-1), 0 ); - item1->Add( item3, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); - - wxStaticText *item4 = new wxStaticText( parent, wxID_STATIC, "Command &prefix:", wxDefaultPosition, wxDefaultSize, 0 ); - item1->Add( item4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); - - wxComboBox *item5 = new wxComboBox( parent, ecID_MODIFY_PLATFORM_PREFIX, "", wxDefaultPosition, wxSize(100,-1), 0, NULL, wxCB_DROPDOWN ); - item1->Add( item5, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); - - wxStaticText *item6 = new wxStaticText( parent, wxID_STATIC, "Arguments for &GDB:", wxDefaultPosition, wxDefaultSize, 0 ); - item1->Add( item6, 0, wxALL, 5 ); - - wxTextCtrl *item7 = new wxTextCtrl( parent, ecID_MODIFY_PLATFORM_ARGS, "", wxDefaultPosition, wxSize(80,140), wxTE_MULTILINE ); - item1->Add( item7, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); - - wxStaticText *item8 = new wxStaticText( parent, wxID_STATIC, "Inferior:", wxDefaultPosition, wxDefaultSize, 0 ); - item1->Add( item8, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); - - wxTextCtrl *item9 = new wxTextCtrl( parent, ecID_MODIFY_PLATFORM_INFERIOR, "", wxDefaultPosition, wxSize(80,-1), 0 ); - item1->Add( item9, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); - - wxStaticText *item10 = new wxStaticText( parent, wxID_STATIC, "Prompt:", wxDefaultPosition, wxDefaultSize, 0 ); - item1->Add( item10, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); - - wxTextCtrl *item11 = new wxTextCtrl( parent, ecID_MODIFY_PLATFORM_PROMPT, "", wxDefaultPosition, wxSize(80,-1), 0 ); - item1->Add( item11, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); - - item1->Add( 20, 20, 0, wxALIGN_CENTRE|wxALL, 5 ); - - wxCheckBox *item12 = new wxCheckBox( parent, ecID_MODIFY_PLATFORM_SS_GDB, "Server-side GDB", wxDefaultPosition, wxDefaultSize, 0 ); - item1->Add( item12, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); - - item0->Add( item1, 0, wxALIGN_CENTRE|wxALL, 5 ); - - wxSizer *item13 = new wxBoxSizer( wxHORIZONTAL ); - - wxButton *item14 = new wxButton( parent, wxID_OK, "&OK", wxDefaultPosition, wxDefaultSize, 0 ); - item13->Add( item14, 0, wxALIGN_CENTRE|wxALL, 5 ); - - wxButton *item15 = new wxButton( parent, wxID_CANCEL, "&Cancel", wxDefaultPosition, wxDefaultSize, 0 ); - item13->Add( item15, 0, wxALIGN_CENTRE|wxALL, 5 ); - -#ifdef __WXGTK__ - wxButton *contextButton = new wxContextHelpButton( parent ); - item13->Add( contextButton, 0, wxALIGN_CENTRE|wxALL, 5 ); -#endif - - item0->Add( item13, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); -#endif - // Can't do this from wxDesigner :-( ((wxFlexGridSizer*)item1)->AddGrowableCol(1); ((wxFlexGridSizer*)item1)->AddGrowableRow(2); @@ -265,9 +208,11 @@ void ecPlatformEditorDialog::CreateContr parent->FindWindow( ecID_MODIFY_PLATFORM_NAME )->SetHelpText(_("Specifies the name of the platform. Platform names are arbitrary strings, but must be unique for a given user.")); parent->FindWindow( ecID_MODIFY_PLATFORM_PREFIX )->SetHelpText(_("Specifies the prefix to be used when invoking tools (for example, 'arm-elf' is the correct prefix if the appropriate gdb executable is arm-elf-gdb.exe).")); parent->FindWindow( ecID_MODIFY_PLATFORM_ARGS )->SetHelpText(_("Specifies any additional arguments to be used when invoking gdb.")); - parent->FindWindow( ecID_MODIFY_PLATFORM_INFERIOR )->SetHelpText(_("TODO")); - parent->FindWindow( ecID_MODIFY_PLATFORM_PROMPT )->SetHelpText(_("TODO")); + parent->FindWindow( ecID_MODIFY_PLATFORM_INFERIOR )->SetHelpText(_("The gdb command to run.")); + parent->FindWindow( ecID_MODIFY_PLATFORM_PROMPT )->SetHelpText(_("The gdb prompt.")); +#if USE_SS_GDB_CONTROL parent->FindWindow( ecID_MODIFY_PLATFORM_SS_GDB )->SetHelpText(_("TODO")); +#endif parent->FindWindow( wxID_OK )->SetHelpText(_("Closes the dialog and saves any changes you have made.")); parent->FindWindow( wxID_CANCEL )->SetHelpText(_("Closes the dialog without saving any changes you have made.")); @@ -281,7 +226,9 @@ void ecPlatformEditorDialog::CreateContr parent->FindWindow( ecID_MODIFY_PLATFORM_ARGS )->SetValidator(wxGenericValidator(& m_strGDB)); parent->FindWindow( ecID_MODIFY_PLATFORM_INFERIOR )->SetValidator(wxGenericValidator(& m_strInferior)); parent->FindWindow( ecID_MODIFY_PLATFORM_PROMPT )->SetValidator(wxGenericValidator(& m_strPrompt)); +#if USE_SS_GDB_CONTROL parent->FindWindow( ecID_MODIFY_PLATFORM_SS_GDB )->SetValidator(wxGenericValidator(& m_bServerSideGdb)); +#endif } void ecPlatformEditorDialog::OnChangeNewPlatformPrefix(wxCommandEvent& event)
--- a/host/tools/configtool/standalone/wxwin/readme.html +++ b/host/tools/configtool/standalone/wxwin/readme.html @@ -47,7 +47,6 @@ However the following features are missi original tool:</P> <OL> <LI><P>Memory Layout Tool</P> - <LI><P>Running tests from the tool</P> <LI><P>Administration functionality (initial code present but untested)</P> <LI><P>Gauge indicating time left to build library and tests</P> @@ -176,7 +175,7 @@ wxWindows distributions come with docume formats.</P> <P><B>Q: Does the new Configuration Tool make the old one obsolete?</B></P> <P>A: Not yet. The new tool doesn't yet support some features, such -as the Memory Layout Tool and the Run Tests dialog. When these have +as the Memory Layout Tool. When these have been implemented, and the tool has been subject to the required quality assurance procedure, then we can retire the old tool.</P> <P><B>Q: How can I help improve the Configuration Tool?</B></P>
--- a/host/tools/configtool/standalone/wxwin/runtestsdlg.cpp +++ b/host/tools/configtool/standalone/wxwin/runtestsdlg.cpp @@ -30,7 +30,7 @@ // Author(s): julians // Contact(s): julians // Date: 2000/09/29 -// Version: $Id: runtestsdlg.cpp,v 1.13 2001/06/28 15:54:25 julians Exp $ +// Version: $Id: runtestsdlg.cpp,v 1.14 2001/06/29 13:48:22 julians Exp $ // Purpose: // Description: Implementation file for ecRunTestsDialog // Requires: @@ -66,6 +66,31 @@ #include "eCosThreadUtils.h" #include "eCosTrace.h" +void ecRunTestsTimer::Notify() +{ + static bool s_inNotify = FALSE; + + if (s_inNotify) + return; + + s_inNotify = TRUE; + + // On Windows, simply having the timer going will ping the message queue + // and cause idle processing to happen. + // On Unix, this doesn't happen so we have to do the processing explicitly. +#ifdef __WXMSW__ + // Nothing to do +#else + if ( ecRunTestsDialog::m_runTestsDialog ) + { + wxIdleEvent event; + ecRunTestsDialog::m_runTestsDialog->OnIdle(event); + } +#endif + + s_inNotify = FALSE; +} + /* * Run Tests dialog */ @@ -220,10 +245,13 @@ ecRunTestsDialog::ecRunTestsDialog(wxWin CeCosTrace::SetInteractive(TRUE); CeCosTrace::SetOutput(TestOutputCallback, this); CeCosTrace::SetError (TestOutputCallback, this); + + m_timer.Start(200); } ecRunTestsDialog::~ecRunTestsDialog() { + m_timer.Stop(); CeCosTrace::SetInteractive(FALSE); m_runTestsDialog = NULL; if (m_pResource) @@ -304,14 +332,18 @@ void ecRunTestsDialog::OnRun(wxCommandEv } else { - String strPort; + wxString strPort; if (wxGetApp().GetSettings().GetRunTestsSettings().m_bSerial) - strPort = (const wxChar*) wxGetApp().GetSettings().GetRunTestsSettings().m_strPort; + strPort = wxGetApp().GetSettings().GetRunTestsSettings().m_strPort; else - strPort = CeCosSocket::HostPort(wxGetApp().GetSettings().GetRunTestsSettings().m_strLocalTCPIPHost,wxGetApp().GetSettings().GetRunTestsSettings().m_nLocalTCPIPPort); - if(0==strPort.size()){ + strPort = (const wxChar*) CeCosSocket::HostPort(wxGetApp().GetSettings().GetRunTestsSettings().m_strLocalTCPIPHost,wxGetApp().GetSettings().GetRunTestsSettings().m_nLocalTCPIPPort); + if(0==strPort.Length()){ m_pResource=new CTestResource(_T(""),m_ep.PlatformName()); - } else { + } else + { + // Translate from e.g. COM2 to /dev/ttyS1 on Unix. + // Let's assume the Windows notation is the 'standard'. + strPort = TranslatePort(strPort); int nBaud = wxGetApp().GetSettings().GetRunTestsSettings().m_bSerial ? wxGetApp().GetSettings().GetRunTestsSettings().m_nBaud:0; if (RESET_X10 != wxGetApp().GetSettings().GetRunTestsSettings().m_nReset) { m_pResource=new CTestResource(_T(""),m_ep.PlatformName(), strPort, nBaud); @@ -334,6 +366,25 @@ void ecRunTestsDialog::OnRun(wxCommandEv } } +wxString ecRunTestsDialog::TranslatePort(const wxString& port) const +{ +#ifdef __WXGTK__ + wxString name(port.Left(3)); + if (name.CmpNoCase(wxT("COM")) == 0) + { + wxString strNum(port.Mid(3)); + if (strNum.IsEmpty()) + return port; + int num = atoi(strNum); + wxString newPort; + newPort.Printf(wxT("/dev/ttyS%d"), num-1); + return newPort; + } + else +#endif + return port; +} + void ecRunTestsDialog::SubmitTests() { int nResources=wxGetApp().GetSettings().GetRunTestsSettings().m_bRemote ? wxMax(1,CTestResource::GetMatchCount (m_ep)):1;
--- a/host/tools/configtool/standalone/wxwin/runtestsdlg.h +++ b/host/tools/configtool/standalone/wxwin/runtestsdlg.h @@ -30,7 +30,7 @@ // Author(s): julians // Contact(s): julians // Date: 2000/09/29 -// Version: $Id: runtestsdlg.h,v 1.9 2001/06/28 15:54:25 julians Exp $ +// Version: $Id: runtestsdlg.h,v 1.10 2001/06/29 13:48:23 julians Exp $ // Purpose: // Description: Header file for ecRunTestsDialog // Requires: @@ -56,6 +56,20 @@ #include "eCosTest.h" #include "Properties.h" +/* + * ecRunTestsTimer + * Just to force idle processing now and again while + * the tests are runnin + */ + +class ecRunTestsTimer: public wxTimer +{ +public: + ecRunTestsTimer() {} + + virtual void Notify() ; +}; + //---------------------------------------------------------------------------- // ecRunTestsDialog //---------------------------------------------------------------------------- @@ -73,7 +87,8 @@ enum ecRunStatus { ecRunning, ecStopping class ecRunTestsDialog: public wxDialog { DECLARE_CLASS(ecRunTestsDialog) -friend class ecResetThread; + friend class ecResetThread; + friend class ecRunTestsTimer; public: ecRunTestsDialog(wxWindow* parent); ~ecRunTestsDialog(); @@ -107,6 +122,10 @@ public: static void CALLBACK RunRemoteFunc(void *pParam); static void CALLBACK TestOutputCallback(void *pParam,LPCTSTR psz); + // Helpers + // Translate from Windows to Unix serial port nomenclature + wxString TranslatePort(const wxString& port) const; + protected: ecRunTestsExecutablesDialog* m_executables; @@ -128,6 +147,7 @@ protected: // OnIdle pick it up wxString m_outputBuffer; bool m_outputBufferPresent; + ecRunTestsTimer m_timer; DECLARE_EVENT_TABLE() };
--- a/host/tools/configtool/standalone/wxwin/settingsdlg.cpp +++ b/host/tools/configtool/standalone/wxwin/settingsdlg.cpp @@ -30,7 +30,7 @@ // Author(s): julians // Contact(s): julians // Date: 2000/09/11 -// Version: $Id: settingsdlg.cpp,v 1.12 2001/04/24 16:34:55 julians Exp $ +// Version: $Id: settingsdlg.cpp,v 1.13 2001/07/05 10:42:16 julians Exp $ // Purpose: // Description: Implementation file for ecSettingsDialog // Requires: @@ -1021,7 +1021,7 @@ void ecRunOptionsDialog::CreateControls( wxStaticText *item26 = new wxStaticText( parent, wxID_STATIC, _(":"), wxDefaultPosition, wxDefaultSize, 0 ); item22->Add( item26, 0, wxALIGN_CENTRE, 5 ); - wxTextCtrl *item27 = new wxTextCtrl( parent, ecID_RUN_PROPERTIES_TCPIP_PORT, _(""), wxDefaultPosition, wxSize(30,-1), 0 ); + wxTextCtrl *item27 = new wxTextCtrl( parent, ecID_RUN_PROPERTIES_TCPIP_PORT, _(""), wxDefaultPosition, wxSize(40,-1), 0 ); item22->Add( item27, 0, wxALIGN_CENTRE|wxALL, 5 ); item14->Add( item22, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
--- a/host/tools/configtool/standalone/wxwin/setup/configtool.iss +++ b/host/tools/configtool/standalone/wxwin/setup/configtool.iss @@ -4,13 +4,13 @@ [Setup] MinVersion=4.0,4.0 - AppName=eCos Configuration Tool 2.02 + AppName=eCos Configuration Tool 2.03 AppId=eCos Configuration Tool CreateUninstallRegKey=1 UsePreviousAppDir=1 UsePreviousGroup=1 - AppVersion=2.02 - AppVerName=eCos Configuration Tool 2.02 + AppVersion=2.03 + AppVerName=eCos Configuration Tool 2.03 AppCopyright=Copyright © Red Hat Inc., 2001 BackColor=$FF0000 BackColor2=$000000 @@ -217,7 +217,7 @@ ; DO NOT DELETE THEM or you may be unable to reload the script ;[ScriptSetup] -;VerNum=2.02 +;VerNum=2.03 ;InnoVer=1.3 ;AddVerTo=AppVerName ;SetupFilename=setup.exe
--- a/packages/devs/wallclock/mips/ref4955/current/ChangeLog +++ b/packages/devs/wallclock/mips/ref4955/current/ChangeLog @@ -1,3 +1,7 @@ +2001-07-03 Jesper Skov <jskov@redhat.com> + + * src/wallclock_ref4955.cxx: Don't include kernel config. + 2000-05-26 Jesper Skov <jskov@redhat.com> * cdl/wallclock_ref4955.cdl:
--- a/packages/devs/wallclock/mips/ref4955/current/src/wallclock_ref4955.cxx +++ b/packages/devs/wallclock/mips/ref4955/current/src/wallclock_ref4955.cxx @@ -40,7 +40,6 @@ // //========================================================================== -#include <pkgconf/kernel.h> // Kernel config #include <pkgconf/wallclock.h> // Wallclock device config #include <cyg/hal/hal_io.h> // IO macros
--- a/packages/ecos.db +++ b/packages/ecos.db @@ -1070,6 +1070,16 @@ package CYGPKG_HAL_ARM_EBSA285 { eCos on a Intel EBSA285 StrongARM eval board." } +package CYGPKG_HAL_ARM_ARM9 { + alias { "ARM9 variant" hal_arm_arm9 } + directory hal/arm/arm9/var + script hal_arm_arm9.cdl + hardware + description " + The ARM9 HAL package provides the support needed to run + eCos on a ARM9 based systems." +} + package CYGPKG_HAL_ARM_SA11X0 { alias { "Intel SA11X0 Chipset" hal_arm_sa11x0 } directory hal/arm/sa11x0/var
new file mode 100644 --- /dev/null +++ b/packages/hal/arm/arm9/var/current/ChangeLog @@ -0,0 +1,99 @@ +2001-04-30 Gary Thomas <gthomas@redhat.com> + + * src/arm9_misc.c (hal_hardware_init): Use CDL configuration to + decide which caches should be enabled at startup time. + +2001-04-26 Gary Thomas <gthomas@redhat.com> + + * src/arm9_misc.c (hal_hardware_init): Caches just don't seem to work. + + * include/hal_cache.h: Fix cache parameters - 16K x 16K + +2001-04-18 Jesper Skov <jskov@redhat.com> + + * src/arm9_misc.c: Update copyright. + * include/hal_cache.h: Same. + * cdl/hal_arm_arm9.cdl: Same. + +2001-04-16 Gary Thomas <gthomas@redhat.com> + + * cdl/hal_arm_arm9.cdl: Add CDL to describe CPU family. + +2001-04-03 Jesper Skov <jskov@redhat.com> + + * src/arm9_misc.c: Removed hal_arm9.h + * include/hal_cache.h: Same. + * include/hal_arm9.h: Deleted. + +2000-12-04 Hugo Tyson <hmt@redhat.com> + + * include/hal_cache.h: Consistently ensure that ARM registers used + in MCR ops to cache-control coprocessors, where the data doesn't + matter, all actually have data zero ("SBZ") as in the Jaggar book. + This may well not be necessary, but for the sake of making sure... + +2000-11-27 Jesper Skov <jskov@redhat.com> + + * include/hal_cache.h + (HAHAL_FLASH_CACHES_ON/HAL_FLASH_CACHES_OFF): Defined. + + * src/arm9_misc.c (hal_hardware_init): Disable caches. Wasted too + much time on this already. + +2000-11-23 Jesper Skov <jskov@redhat.com> + + * include/hal_cache.h (HAL_DCACHE_SYNC): Wait for cache dirty flag + to clear. + +2000-11-22 Jesper Skov <jskov@redhat.com> + + * src/arm9_misc.c (hal_hardware_init): Don't disable caches. + +2000-11-21 Jesper Skov <jskov@redhat.com> + + * include/hal_cache.h (HAL_DCACHE_INVALIDATE_ALL): Remove + writeback buffer flush. + + * cdl/hal_arm_arm9.cdl: Removed clock options. + + * src/arm9_misc.c: Cleaned up, enabled caches. + + * include/hal_cache.h: Enable cache controls, fix invalidate + macro. + +2000-11-15 Jesper Skov <jskov@redhat.com> + + * src/arm9_misc.c: Disable/clear caches. Removed clock handling. + + * include/hal_cache.h: Changed to match ARM925, but prevent + enabling. Messes up flash programming. + +2000-11-14 Jesper Skov <jskov@redhat.com> + + * Created. + +//=========================================================================== +//####COPYRIGHTBEGIN#### +// +// ------------------------------------------- +// The contents of this file are subject to the Red Hat eCos Public License +// Version 1.1 (the "License"); you may not use this file except in +// compliance with the License. You may obtain a copy of the License at +// http://www.redhat.com/ +// +// Software distributed under the License is distributed on an "AS IS" +// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the +// License for the specific language governing rights and limitations under +// the License. +// +// The Original Code is eCos - Embedded Configurable Operating System, +// released September 30, 1998. +// +// The Initial Developer of the Original Code is Red Hat. +// Portions created by Red Hat are +// Copyright (C) 1998, 1999, 2000 Red Hat, Inc. +// All Rights Reserved. +// ------------------------------------------- +// +//####COPYRIGHTEND#### +//===========================================================================
new file mode 100644 --- /dev/null +++ b/packages/hal/arm/arm9/var/current/cdl/hal_arm_arm9.cdl @@ -0,0 +1,57 @@ +# ==================================================================== +# +# hal_arm_arm9.cdl +# +# ARM Arm9 architectural HAL package configuration data +# +# ==================================================================== +#####COPYRIGHTBEGIN#### +# +# ------------------------------------------- +# The contents of this file are subject to the Red Hat eCos Public License +# Version 1.1 (the "License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.redhat.com/ +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the +# License for the specific language governing rights and limitations under +# the License. +# +# The Original Code is eCos - Embedded Configurable Operating System, +# released September 30, 1998. +# +# The Initial Developer of the Original Code is Red Hat. +# Portions created by Red Hat are +# Copyright (C) 1998, 1999, 2000, 2001 Red Hat, Inc. +# All Rights Reserved. +# ------------------------------------------- +# +#####COPYRIGHTEND#### +# ==================================================================== +######DESCRIPTIONBEGIN#### +# +# Author(s): gthomas +# Contributors: jskov +# Date: 2000-11-10 +# +#####DESCRIPTIONEND#### +# +# ==================================================================== +cdl_package CYGPKG_HAL_ARM_ARM9 { + display "ARM ARM9 architecture" + parent CYGPKG_HAL_ARM + hardware + include_dir cyg/hal + define_header hal_arm_arm9.h + description " + This HAL variant package provides generic + support for the ARM ARM9 processors. It is also + necessary to select a specific target platform HAL + package." + + implements CYGINT_HAL_ARM_ARCH_ARM9 + + compile arm9_misc.c + +}
new file mode 100644 --- /dev/null +++ b/packages/hal/arm/arm9/var/current/include/hal_cache.h @@ -0,0 +1,359 @@ +#ifndef CYGONCE_HAL_CACHE_H +#define CYGONCE_HAL_CACHE_H + +//============================================================================= +// +// hal_cache.h +// +// HAL cache control API +// +//============================================================================= +//####COPYRIGHTBEGIN#### +// +// ------------------------------------------- +// The contents of this file are subject to the Red Hat eCos Public License +// Version 1.1 (the "License"); you may not use this file except in +// compliance with the License. You may obtain a copy of the License at +// http://www.redhat.com/ +// +// Software distributed under the License is distributed on an "AS IS" +// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the +// License for the specific language governing rights and limitations under +// the License. +// +// The Original Code is eCos - Embedded Configurable Operating System, +// released September 30, 1998. +// +// The Initial Developer of the Original Code is Red Hat. +// Portions created by Red Hat are +// Copyright (C) 1998, 1999, 2000, 2001 Red Hat, Inc. +// All Rights Reserved. +// ------------------------------------------- +// +//####COPYRIGHTEND#### +//============================================================================= +//#####DESCRIPTIONBEGIN#### +// +// Author(s): gthomas +// Contributors:hmt, jskov +// Travis C. Furrer <furrer@mit.edu> +// Date: 2000-05-08 +// Purpose: Cache control API +// Description: The macros defined here provide the HAL APIs for handling +// cache control operations. +// Usage: +// #include <cyg/hal/hal_cache.h> +// ... +// +// +//####DESCRIPTIONEND#### +// +//============================================================================= + +#include <cyg/infra/cyg_type.h> +#include <cyg/hal/hal_mmu.h> + + +//----------------------------------------------------------------------------- +// Cache dimensions + +#define HAL_ICACHE_SIZE 0x4000 +#define HAL_ICACHE_LINE_SIZE 16 +#define HAL_ICACHE_WAYS 2 +#define HAL_ICACHE_SETS (HAL_ICACHE_SIZE/(HAL_ICACHE_LINE_SIZE*HAL_ICACHE_WAYS)) + +#define HAL_DCACHE_SIZE 0x4000 +#define HAL_DCACHE_LINE_SIZE 16 +#define HAL_DCACHE_WAYS 2 +#define HAL_DCACHE_SETS (HAL_DCACHE_SIZE/(HAL_DCACHE_LINE_SIZE*HAL_DCACHE_WAYS)) + +// FIXME: much of the code below should make better use of +// the definitions from hal_mmu.h + +//----------------------------------------------------------------------------- +// Global control of Instruction cache + +// FIXME: disable/enable instruction streaming? + +// Enable the instruction cache +#define HAL_ICACHE_ENABLE() \ +CYG_MACRO_START \ + asm volatile ( \ + "mrc p15,0,r1,c1,c0,0;" \ + "orr r1,r1,#0x1000;" \ + "orr r1,r1,#0x0003;" /* enable ICache (also ensures */ \ + /* that MMU and alignment faults */ \ + /* are enabled) */ \ + "mcr p15,0,r1,c1,c0,0" \ + : \ + : \ + : "r1" /* Clobber list */ \ + ); \ +CYG_MACRO_END + +// Disable the instruction cache (and invalidate it, required semanitcs) +#define HAL_ICACHE_DISABLE() \ +CYG_MACRO_START \ + asm volatile ( \ + "mrc p15,0,r1,c1,c0,0;" \ + "bic r1,r1,#0x1000;" /* disable ICache (but not MMU, etc) */ \ + "mcr p15,0,r1,c1,c0,0;" \ + "mov r1,#0;" \ + "mcr p15,0,r1,c7,c5,0;" /* flush ICache */ \ + "nop;" /* next few instructions may be via cache */ \ + "nop;" \ + "nop;" \ + "nop;" \ + "nop;" \ + "nop" \ + : \ + : \ + : "r1" /* Clobber list */ \ + ); \ +CYG_MACRO_END + +// Query the state of the instruction cache +#define HAL_ICACHE_IS_ENABLED(_state_) \ +CYG_MACRO_START \ + register cyg_uint32 reg; \ + asm volatile ("mrc p15,0,%0,c1,c0,0" \ + : "=r"(reg) \ + : \ + ); \ + (_state_) = (0 != (0x1000 & reg)); /* Bit 12 is ICache enable */ \ +CYG_MACRO_END + +// Invalidate the entire cache +#define HAL_ICACHE_INVALIDATE_ALL() \ +CYG_MACRO_START \ + /* this macro can discard dirty cache lines (N/A for ICache) */ \ + asm volatile ( \ + "mov r1,#0;" \ + "mcr p15,0,r1,c7,c5,0;" /* flush ICache */ \ + "mcr p15,0,r1,c8,c5,0;" /* flush ITLB only */ \ + "nop;" /* next few instructions may be via cache */ \ + "nop;" \ + "nop;" \ + "nop;" \ + "nop;" \ + "nop;" \ + : \ + : \ + : "r1" /* Clobber list */ \ + ); \ +CYG_MACRO_END + +// Synchronize the contents of the cache with memory. +// (which includes flushing out pending writes) +#define HAL_ICACHE_SYNC() \ +CYG_MACRO_START \ + HAL_DCACHE_SYNC(); /* ensure data gets to RAM */ \ + HAL_ICACHE_INVALIDATE_ALL(); /* forget all we know */ \ +CYG_MACRO_END + +// Set the instruction cache refill burst size +//#define HAL_ICACHE_BURST_SIZE(_size_) + +// Load the contents of the given address range into the instruction cache +// and then lock the cache so that it stays there. +//#define HAL_ICACHE_LOCK(_base_, _size_) + +// Undo a previous lock operation +//#define HAL_ICACHE_UNLOCK(_base_, _size_) + +// Unlock entire cache +//#define HAL_ICACHE_UNLOCK_ALL() + +//----------------------------------------------------------------------------- +// Instruction cache line control + +// Invalidate cache lines in the given range without writing to memory. +//#define HAL_ICACHE_INVALIDATE( _base_ , _size_ ) + +//----------------------------------------------------------------------------- +// Global control of data cache + +// Enable the data cache +#define HAL_DCACHE_ENABLE() \ +CYG_MACRO_START \ + asm volatile ( \ + "mrc p15,0,r1,c1,c0,0;" \ + "orr r1,r1,#0x000F;" /* enable DCache (also ensures */ \ + /* the MMU, alignment faults, and */ \ + /* write buffer are enabled) */ \ + "mcr p15,0,r1,c1,c0,0" \ + : \ + : \ + : "r1" /* Clobber list */ \ + ); \ +CYG_MACRO_END + +// Disable the data cache (and invalidate it, required semanitcs) +#define HAL_DCACHE_DISABLE() \ +CYG_MACRO_START \ + asm volatile ( \ + "mrc p15,0,r1,c1,c0,0;" \ + "bic r1,r1,#0x000C;" /* disable DCache AND write buffer */ \ + /* but not MMU and alignment faults */ \ + "mcr p15,0,r1,c1,c0,0;" \ + "mov r1,#0;" \ + "mcr p15,0,r1,c7,c6,0" /* clear data cache */ \ + : \ + : \ + : "r1" /* Clobber list */ \ + ); \ +CYG_MACRO_END + +// Query the state of the data cache +#define HAL_DCACHE_IS_ENABLED(_state_) \ +CYG_MACRO_START \ + register int reg; \ + asm volatile ("mrc p15,0,%0,c1,c0,0;" \ + : "=r"(reg) \ + : \ + ); \ + (_state_) = (0 != (4 & reg)); /* Bit 2 is DCache enable */ \ +CYG_MACRO_END + +// Flush the entire dcache (and then both TLBs, just in case) +#define HAL_DCACHE_INVALIDATE_ALL() \ +CYG_MACRO_START /* this macro can discard dirty cache lines. */ \ + asm volatile ( \ + "mov r0,#0;" \ + "mcr p15,0,r0,c7,c6,0;" /* flush d-cache */ \ + "mcr p15,0,r0,c8,c7,0;" /* flush i+d-TLBs */ \ + : \ + : \ + : "r0","memory" /* clobber list */); \ +CYG_MACRO_END + +// Synchronize the contents of the cache with memory. +#define HAL_DCACHE_SYNC() \ +CYG_MACRO_START \ + asm volatile ( \ + "mov r0, #0;" \ + "mcr p15,0,r0,c7,c10,0;" /* clean DCache */ \ + "1: mrc p15,0,r0,c15,c4,0;" /* wait for dirty flag to clear */ \ + "ands r0,r0,#0x80000000;" \ + "bne 1b;" \ + "mov r0,#0;" \ + "mcr p15,0,r0,c7,c6,0;" /* flush DCache */ \ + "mcr p15,0,r0,c7,c10,4;" /* and drain the write buffer */ \ + : \ + : \ + : "r0" /* Clobber list */ \ + ); \ +CYG_MACRO_END + +// Set the data cache refill burst size +//#define HAL_DCACHE_BURST_SIZE(_size_) + +// Set the data cache write mode +//#define HAL_DCACHE_WRITE_MODE( _mode_ ) + +#define HAL_DCACHE_WRITETHRU_MODE 0 +#define HAL_DCACHE_WRITEBACK_MODE 1 + +// Get the current writeback mode - or only writeback mode if fixed +#define HAL_DCACHE_QUERY_WRITE_MODE( _mode_ ) CYG_MACRO_START \ + _mode_ = HAL_DCACHE_WRITEBACK_MODE; \ +CYG_MACRO_END + +// Load the contents of the given address range into the data cache +// and then lock the cache so that it stays there. +//#define HAL_DCACHE_LOCK(_base_, _size_) + +// Undo a previous lock operation +//#define HAL_DCACHE_UNLOCK(_base_, _size_) + +// Unlock entire cache +//#define HAL_DCACHE_UNLOCK_ALL() + +//----------------------------------------------------------------------------- +// Data cache line control + +// Allocate cache lines for the given address range without reading its +// contents from memory. +//#define HAL_DCACHE_ALLOCATE( _base_ , _size_ ) + +// Write dirty cache lines to memory and invalidate the cache entries +// for the given address range. +// ---- this seems not to work despite the documentation --- +//#define HAL_DCACHE_FLUSH( _base_ , _size_ ) +//CYG_MACRO_START +// HAL_DCACHE_STORE( _base_ , _size_ ); +// HAL_DCACHE_INVALIDATE( _base_ , _size_ ); +//CYG_MACRO_END + +// Invalidate cache lines in the given range without writing to memory. +// ---- this seems not to work despite the documentation --- +//#define HAL_DCACHE_INVALIDATE( _base_ , _size_ ) +//CYG_MACRO_START +// register int addr, enda; +// for ( addr = (~(HAL_DCACHE_LINE_SIZE - 1)) & (int)(_base_), +// enda = (int)(_base_) + (_size_); +// addr < enda ; +// addr += HAL_DCACHE_LINE_SIZE ) +// { +// asm volatile ( +// "mcr p15,0,%0,c7,c6,1;" /* flush entry away */ +// : +// : "r"(addr) +// : "memory" +// ); +// } +//CYG_MACRO_END + +// Write dirty cache lines to memory for the given address range. +// ---- this seems not to work despite the documentation --- +//#define HAL_DCACHE_STORE( _base_ , _size_ ) +//CYG_MACRO_START +// register int addr, enda; +// for ( addr = (~(HAL_DCACHE_LINE_SIZE - 1)) & (int)(_base_), +// enda = (int)(_base_) + (_size_); +// addr < enda ; +// addr += HAL_DCACHE_LINE_SIZE ) +// { +// asm volatile ("mcr p15,0,%0,c7,c10,1;" /* push entry to RAM */ +// : +// : "r"(addr) +// : "memory" +// ); +// } +//CYG_MACRO_END + +// Preread the given range into the cache with the intention of reading +// from it later. +//#define HAL_DCACHE_READ_HINT( _base_ , _size_ ) + +// Preread the given range into the cache with the intention of writing +// to it later. +//#define HAL_DCACHE_WRITE_HINT( _base_ , _size_ ) + +// Allocate and zero the cache lines associated with the given range. +//#define HAL_DCACHE_ZERO( _base_ , _size_ ) + +//----------------------------------------------------------------------------- +// Cache controls for safely disabling/reenabling caches around execution +// of relocated code. + +#define HAL_FLASH_CACHES_OFF(_d_, _i_) \ + CYG_MACRO_START \ + HAL_ICACHE_IS_ENABLED(_i_); \ + HAL_DCACHE_IS_ENABLED(_d_); \ + HAL_ICACHE_INVALIDATE_ALL(); \ + HAL_ICACHE_DISABLE(); \ + HAL_DCACHE_SYNC(); \ + HAL_DCACHE_INVALIDATE_ALL(); \ + HAL_DCACHE_DISABLE(); \ + CYG_MACRO_END + +#define HAL_FLASH_CACHES_ON(_d_, _i_) \ + CYG_MACRO_START \ + if (_d_) HAL_DCACHE_ENABLE(); \ + if (_i_) HAL_ICACHE_ENABLE(); \ + CYG_MACRO_END + +//----------------------------------------------------------------------------- +#endif // ifndef CYGONCE_HAL_CACHE_H +// End of hal_cache.h
new file mode 100644 --- /dev/null +++ b/packages/hal/arm/arm9/var/current/src/arm9_misc.c @@ -0,0 +1,79 @@ +//========================================================================== +// +// arm9_misc.c +// +// HAL misc board support code for ARM9 +// +//========================================================================== +//####COPYRIGHTBEGIN#### +// +// ------------------------------------------- +// The contents of this file are subject to the Red Hat eCos Public License +// Version 1.1 (the "License"); you may not use this file except in +// compliance with the License. You may obtain a copy of the License at +// http://www.redhat.com/ +// +// Software distributed under the License is distributed on an "AS IS" +// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the +// License for the specific language governing rights and limitations under +// the License. +// +// The Original Code is eCos - Embedded Configurable Operating System, +// released September 30, 1998. +// +// The Initial Developer of the Original Code is Red Hat. +// Portions created by Red Hat are +// Copyright (C) 1998, 1999, 2000, 2001 Red Hat, Inc. +// All Rights Reserved. +// ------------------------------------------- +// +//####COPYRIGHTEND#### +//========================================================================== +//#####DESCRIPTIONBEGIN#### +// +// Author(s): gthomas +// Contributors: jskov +// Date: 2000-05-08 +// Purpose: HAL board support +// Description: Implementations of HAL board interfaces +// +//####DESCRIPTIONEND#### +// +//========================================================================*/ + +#include <pkgconf/hal.h> +#include <pkgconf/system.h> +#include CYGBLD_HAL_PLATFORM_H + +#include <cyg/infra/cyg_type.h> // base types + +#include <cyg/hal/hal_if.h> // HAL ROM/if +#include <cyg/hal/hal_io.h> // IO macros +#include <cyg/hal/hal_cache.h> + +// Most initialization has already been done before we get here. +// All we do here is enable the caches. + +externC void plf_hardware_init(void); + +void hal_hardware_init(void) +{ + // Perform any platform specific initializations + plf_hardware_init(); + + // Set up eCos/ROM interfaces + hal_if_init(); + + // Enable caches + HAL_DCACHE_INVALIDATE_ALL(); + HAL_ICACHE_INVALIDATE_ALL(); +#ifdef CYGSEM_HAL_ENABLE_DCACHE_ON_STARTUP + HAL_DCACHE_ENABLE(); +#endif +#ifdef CYGSEM_HAL_ENABLE_ICACHE_ON_STARTUP + HAL_ICACHE_ENABLE(); +#endif +} + +/*------------------------------------------------------------------------*/ +// EOF arm9_misc.c
--- a/packages/hal/arm/e7t/current/ChangeLog +++ b/packages/hal/arm/e7t/current/ChangeLog @@ -1,3 +1,15 @@ +2001-07-02 Jesper Skov <jskov@redhat.com> + + * src/hal_diag.c (cyg_hal_plf_serial_getc_nonblock): Ack RX + interrupt after reading. + + * include/pkgconf/mlt_arm_e7t_ram.mlt: Reserve 64kB for RedBoot. + * include/pkgconf/mlt_arm_e7t_ram.ldi: Same. + + * src/hal_diag.c: Make some data type fixes. Try to ack interrupt + after reading data. Unable to test though due to some other + problem on diag output. + 2001-04-17 Jesper Skov <jskov@redhat.com> * cdl/hal_arm_e7t.cdl: Fix compiler flags. In particular, do now
--- a/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_ram.ldi +++ b/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_ram.ldi @@ -13,7 +13,7 @@ SECTIONS { SECTIONS_BEGIN SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA) - SECTION_rom_vectors (ram, 0xc000, LMA_EQ_VMA) + SECTION_rom_vectors (ram, 0x10000, LMA_EQ_VMA) SECTION_text (ram, ALIGN (0x4), LMA_EQ_VMA) SECTION_fini (ram, ALIGN (0x4), LMA_EQ_VMA) SECTION_rodata (ram, ALIGN (0x4), LMA_EQ_VMA)
--- a/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_ram.mlt +++ b/packages/hal/arm/e7t/current/include/pkgconf/mlt_arm_e7t_ram.mlt @@ -1,7 +1,7 @@ version 0 region ram 0 80000 0 ! section fixed_vectors 0 1 0 1 1 0 1 0 20 20 ! -section rom_vectors 0 1 0 1 1 1 1 1 c000 c000 text text ! +section rom_vectors 0 1 0 1 1 1 1 1 10000 10000 text text ! section text 0 4 0 1 0 1 0 1 fini fini ! section fini 0 4 0 1 0 1 0 1 rodata rodata ! section rodata 0 4 0 1 0 1 0 1 rodata1 rodata1 !
--- a/packages/hal/arm/e7t/current/src/hal_diag.c +++ b/packages/hal/arm/e7t/current/src/hal_diag.c @@ -133,14 +133,15 @@ void cyg_hal_plf_serial_putc(void *__ch_data, char c) { cyg_uint8* base = ((channel_data_t*)__ch_data)->base; - cyg_uint32 status; + cyg_uint32 status, ch; CYGARC_HAL_SAVE_GP(); do { HAL_READ_UINT32(base+E7T_UART_STAT, status); } while ((status & E7T_UART_STAT_TXE) == 0); - HAL_WRITE_UINT32(base+E7T_UART_TXBUF, c); + ch = (cyg_uint32)c; + HAL_WRITE_UINT32(base+E7T_UART_TXBUF, ch); CYGARC_HAL_RESTORE_GP(); } @@ -148,14 +149,19 @@ cyg_hal_plf_serial_putc(void *__ch_data, static cyg_bool cyg_hal_plf_serial_getc_nonblock(void* __ch_data, cyg_uint8* ch) { - cyg_uint8* base = ((channel_data_t*)__ch_data)->base; + channel_data_t* chan = (channel_data_t*)__ch_data; + cyg_uint8* base = chan->base; cyg_uint32 stat; + cyg_uint32 c; HAL_READ_UINT32(base+E7T_UART_STAT, stat); if ((stat & E7T_UART_STAT_RDR) == 0) return false; - HAL_READ_UINT32(base+E7T_UART_RXBUF, *ch); + HAL_READ_UINT32(base+E7T_UART_RXBUF, c); + *ch = (cyg_uint8)(c & 0xff); + + HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector_rx); return true; } @@ -228,6 +234,7 @@ cyg_hal_plf_serial_control(void *__ch_da switch (__func) { case __COMMCTL_IRQ_ENABLE: irq_state = 1; + HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector_rx); HAL_INTERRUPT_UNMASK(chan->isr_vector_rx); break; case __COMMCTL_IRQ_DISABLE: @@ -262,23 +269,25 @@ cyg_hal_plf_serial_isr(void *__ch_data, { int res = 0; channel_data_t* chan = (channel_data_t*)__ch_data; - char c; + cyg_uint32 c; + cyg_uint8 ch; cyg_uint32 stat; CYGARC_HAL_SAVE_GP(); - cyg_drv_interrupt_acknowledge(chan->isr_vector_rx); - *__ctrlc = 0; HAL_READ_UINT32(chan->base+E7T_UART_STAT, stat); if ( (stat & E7T_UART_STAT_RDR) != 0 ) { HAL_READ_UINT32(chan->base+E7T_UART_RXBUF, c); - if( cyg_hal_is_break( &c , 1 ) ) + ch = (cyg_uint8)(c & 0xff); + if( cyg_hal_is_break( &ch , 1 ) ) *__ctrlc = 1; res = CYG_ISR_HANDLED; } + HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector_rx); + CYGARC_HAL_RESTORE_GP(); return res; }
--- a/packages/hal/arm/edb7xxx/current/ChangeLog +++ b/packages/hal/arm/edb7xxx/current/ChangeLog @@ -1,3 +1,7 @@ +2001-06-29 Jonathan Larmour <jlarmour@redhat.com> + + * src/io.c: Support building on cygwin. + 2001-06-28 Jonathan Larmour <jlarmour@redhat.com> * cdl/hal_arm_edb7xxx.cdl: Clarify platform description.
--- a/packages/hal/arm/edb7xxx/current/support/io.c +++ b/packages/hal/arm/edb7xxx/current/support/io.c @@ -135,9 +135,14 @@ void SetBaud(long port, long reqRate) int CharReady(long port) { +#ifdef __CYGWIN__ + // Windows doesn't support the below ioctl + return 1; +#else int n, res; res = ioctl(port, FIONREAD, &n); return n; // Non-zero if characters ready to read +#endif } void WaitForOutputEmpty(long port)
--- a/packages/hal/common/current/ChangeLog +++ b/packages/hal/common/current/ChangeLog @@ -1,3 +1,7 @@ +2001-06-29 Jonathan Larmour <jlarmour@redhat.com> + + * cdl/hal.cdl (CYGPKG_HAL_TESTS): Remove redundant .c extension + 2001-06-29 Jesper Skov <jskov@redhat.com> * include/hal_misc.h: Moved arbiter helper to
--- a/packages/hal/common/current/cdl/hal.cdl +++ b/packages/hal/common/current/cdl/hal.cdl @@ -416,7 +416,7 @@ cdl_package CYGPKG_HAL { display "Common HAL tests" flavor data no_define - calculated { "tests/cache tests/context tests/intr tests/cpp1.c" } + calculated { "tests/cache tests/context tests/intr tests/cpp1" } description " This option specifies the set of tests for the common HAL." }
--- a/packages/hal/i386/arch/current/ChangeLog +++ b/packages/hal/i386/arch/current/ChangeLog @@ -1,3 +1,14 @@ +2001-07-05 Jonathan Larmour <jlarmour@redhat.com> + + * include/hal_intr.h (HAL_RESTORE_INTERRUPTS): Don't change name + for clobbers. + +2001-07-04 Jonathan Larmour <jlarmour@redhat.com> + + * include/hal_intr.h: Be pedantic about register constraint syntax + to satisfy newer compilers + * include/hal_io.h: Ditto + 2001-06-13 Jonathan Larmour <jlarmour@redhat.com> * cdl/hal_i386.cdl: Default to enabling FPU support since gcc assumes
--- a/packages/hal/i386/arch/current/cdl/hal_i386.cdl +++ b/packages/hal/i386/arch/current/cdl/hal_i386.cdl @@ -120,7 +120,7 @@ cdl_package CYGPKG_HAL_I386 { cdl_option CYGHWR_HAL_I386_FPU_SWITCH_LAZY { display "Use lazy FPU state switching" flavor bool - default_value 1 + default_value 0 description " This option enables lazy FPU state switching.
--- a/packages/hal/i386/arch/current/include/hal_io.h +++ b/packages/hal/i386/arch/current/include/hal_io.h @@ -69,8 +69,8 @@ CYG_MACRO_START { \ asm volatile ( "xor %%eax,%%eax ;" \ "inb %%dx, %%al" \ - : "=eax" (_value_) \ - : "edx"(_register_) \ + : "=a" (_value_) \ + : "d"(_register_) \ ); \ } \ CYG_MACRO_END @@ -80,7 +80,7 @@ CYG_MACRO_START { \ asm volatile ( "outb %%al,%%dx" \ : \ - : "eax" (_value_), "edx"(_register_) \ + : "a" (_value_), "d"(_register_) \ ); \ } \ CYG_MACRO_END @@ -105,8 +105,8 @@ CYG_MACRO_START { \ asm volatile ( "xor %%eax,%%eax ;" \ "inw %%dx, %%ax" \ - : "=eax" (_value_) \ - : "edx"(_register_) \ + : "=a" (_value_) \ + : "d"(_register_) \ ); \ } \ CYG_MACRO_END @@ -116,7 +116,7 @@ CYG_MACRO_START { \ asm volatile ( "outw %%ax,%%dx" \ : \ - : "eax" (_value_), "edx"(_register_) \ + : "a" (_value_), "d"(_register_) \ ); \ } \ CYG_MACRO_END @@ -140,8 +140,8 @@ CYG_MACRO_END CYG_MACRO_START \ { \ asm volatile ( "inl %%dx, %%eax" \ - : "=eax" (_value_) \ - : "edx"(_register_) \ + : "=a" (_value_) \ + : "d"(_register_) \ ); \ } \ CYG_MACRO_END @@ -151,7 +151,7 @@ CYG_MACRO_START { \ asm volatile ( "outl %%eax,%%dx" \ : \ - : "eax" (_value_), "edx"(_register_) \ + : "a" (_value_), "d"(_register_) \ ); \ } \ CYG_MACRO_END
--- a/packages/hal/i386/pcmb/current/ChangeLog +++ b/packages/hal/i386/pcmb/current/ChangeLog @@ -1,3 +1,14 @@ +2001-07-05 Jonathan Larmour <jlarmour@redhat.com> + + * src/pcmb_misc.c (hal_pcmb_init): Silence warning + * include/pcmb_intr.h: Revert below change - not relevant in this case + for clobbers + +2001-07-04 Jonathan Larmour <jlarmour@redhat.com> + + * include/pcmb_intr.h: Be pedantic about register constraint syntax + to satisfy newer compilers + 2001-05-16 Jonathan Larmour <jlarmour@redhat.com> * src/pcmb_misc.c (hal_pc_clock_initialize): Use mode 2 (rate generator)
--- a/packages/hal/i386/pcmb/current/src/pcmb_misc.c +++ b/packages/hal/i386/pcmb/current/src/pcmb_misc.c @@ -67,7 +67,7 @@ CYG_ADDRWORD cyg_hal_pcmb_memsize_extend /*------------------------------------------------------------------------*/ // Initializer -void hal_pcmb_init() +void hal_pcmb_init(void) { cyg_uint8 lo,hi;
--- a/packages/hal/mips/arch/current/ChangeLog +++ b/packages/hal/mips/arch/current/ChangeLog @@ -1,3 +1,14 @@ +2001-07-03 Hugo Tyson <hmt@redhat.com> + + * src/vectors.S (restore_state): When restoring the CPU status + register right at the end of interrupt processing, keep the + current settings of the IM[7:0] bits within the status register. + Depending on platform, these may be used as interrupt masks, so if + an ISR or DSR masks interrupts they must be preserved. If they + are not used, then this does no harm. + #ifdef'd out for CYG_HAL_MIPS_R3900 anyway 'cos the TX39 does not + use these bits at all. + 2001-06-27 Mark Salter <msalter@redhat.com> * src/vectors.S (_start): Add code to switch from KSEG1 to KSEG0 if
--- a/packages/hal/mips/arch/current/src/vectors.S +++ b/packages/hal/mips/arch/current/src/vectors.S @@ -720,8 +720,24 @@ restore_state: srl k0,1 1: #endif + + lw k1,mipsreg_sr(sp) # K1 = saved SR +#ifndef CYG_HAL_MIPS_R3900 + # Keep the current settings of the IM[7:0] bits within the status + # register. These may be used as interrupt masks, so if an ISR or + # DSR masks interrupts they must be preserved. + # If they are not used, then this does no harm. + ori k0,zero,0xff00 + nor k0,k0,k0 # 0xffff00ff + and k1,k1,k0 # all interrupts disabled + + mfc0 k0,status # V0 = current SR + nop + nop + andi k0,k0,0xff00 # preserve interrupt set + or k1,k1,k0 # insert into "saved SR" +#endif lva k0,mipsreg_pc(sp) # K0 = return PC - lw k1,mipsreg_sr(sp) # K1 = saved SR lsp sp,sp # load SP # Invoke CPU specific mechanism for returning from this
--- a/packages/hal/sh/arch/current/ChangeLog +++ b/packages/hal/sh/arch/current/ChangeLog @@ -1,3 +1,8 @@ +2001-07-02 Jesper Skov <jskov@redhat.com> + + * include/hal_arch.h: CYGARC_PHYSICAL_ADDRESS renamed to + CYGARC_BUS_ADDRESS. + 2001-06-27 Jesper Skov <jskov@redhat.com> * include/hal_arch.h: Added CPU address space translation macros.
--- a/packages/hal/sh/arch/current/include/hal_arch.h +++ b/packages/hal/sh/arch/current/include/hal_arch.h @@ -303,9 +303,9 @@ externC void hal_idle_thread_action(cyg_ //-------------------------------------------------------------------------- // CPU address space translation macros -#define CYGARC_PHYSICAL_ADDRESS(x) ((CYG_ADDRWORD)(x) & 0x1fffffff) -#define CYGARC_CACHED_ADDRESS(x) (CYGARC_PHYSICAL_ADDRESS(x)|0x80000000) -#define CYGARC_UNCACHED_ADDRESS(x) (CYGARC_PHYSICAL_ADDRESS(x)|0xa0000000) +#define CYGARC_BUS_ADDRESS(x) ((CYG_ADDRWORD)(x) & 0x1fffffff) +#define CYGARC_CACHED_ADDRESS(x) (CYGARC_BUS_ADDRESS(x)|0x80000000) +#define CYGARC_UNCACHED_ADDRESS(x) (CYGARC_BUS_ADDRESS(x)|0xa0000000) //----------------------------------------------------------------------------- #endif // CYGONCE_HAL_ARCH_H
--- a/packages/io/eth/current/ChangeLog +++ b/packages/io/eth/current/ChangeLog @@ -1,3 +1,8 @@ +2001-07-03 Gary Thomas <gthomas@redhat.com> + + * src/net/eth_drv.c (eth_drv_recv): Better cleanup when running + out of mbufs - could have lost mbufs before. + 2001-06-21 David Woodhouse <dwmw2@redhat.com> * src/stand_alone/eth_drv.c: Timeout when waiting for Ethernet
--- a/packages/io/eth/current/src/net/eth_drv.c +++ b/packages/io/eth/current/src/net/eth_drv.c @@ -631,7 +631,7 @@ eth_drv_recv(struct eth_drv_sc *sc, int m->m_pkthdr.len = total_len; } else { sg_list[sg_len].buf = (CYG_ADDRESS)0; - sg_list[sg_len].len = min(total_len, MCLBYTES); + sg_list[sg_len].len = total_len; sg_len++; total_len = 0; } @@ -645,8 +645,9 @@ eth_drv_recv(struct eth_drv_sc *sc, int diag_printf("out of MBUFs [2]"); #endif sg_list[sg_len].buf = (CYG_ADDRESS)0; - sg_list[sg_len].len = 0; - sg_len = 1; + sg_list[sg_len].len = total_len; + sg_len++; + top = 0; break; } mlen = MLEN; @@ -660,7 +661,7 @@ eth_drv_recv(struct eth_drv_sc *sc, int diag_printf("warning: eth_recv out of MBUFs\n"); #endif sg_list[sg_len].buf = (CYG_ADDRESS)0; - sg_list[sg_len].len = min(total_len, MCLBYTES); + sg_list[sg_len].len = total_len; sg_len++; top = 0; break;
--- a/packages/io/usb/eth/slave/current/ChangeLog +++ b/packages/io/usb/eth/slave/current/ChangeLog @@ -1,3 +1,9 @@ +2001-07-02 Bart Veer <bartv@redhat.com> + + * host/ecos_usbeth.c (ecos_usbeth_probe): + Determine the endpoints to use for transmits and receives + from the descriptors supplied by the device. + 2001-06-28 Bart Veer <bartv@redhat.com> * include/usbs_eth.h, src/usbsethdrv.c, src/usbseth.c:
--- a/packages/io/usb/eth/slave/current/host/ecos_usbeth.c +++ b/packages/io/usb/eth/slave/current/host/ecos_usbeth.c @@ -398,11 +398,34 @@ ecos_usbeth_probe(struct usb_device* usb int res; unsigned char MAC[6]; unsigned char dummy[1]; + int tx_endpoint = -1; + int rx_endpoint = -1; if ((usbdev->descriptor.idVendor != ecos_usbeth_implementations[0].vendor) || (usbdev->descriptor.idProduct != ecos_usbeth_implementations[0].vendor)) { return (void*) 0; } + // For now only support USB-ethernet peripherals consisting of a single + // configuration, with a single interface, with two bulk endpoints. + if ((1 != usbdev->descriptor.bNumConfigurations) || + (1 != usbdev->config[0].bNumInterfaces) || + (2 != usbdev->config[0].interface[0].altsetting->bNumEndpoints)) { + return (void*) 0; + } + if ((0 == (usbdev->config[0].interface[0].altsetting->endpoint[0].bEndpointAddress & USB_DIR_IN)) && + (0 != (usbdev->config[0].interface[0].altsetting->endpoint[1].bEndpointAddress & USB_DIR_IN))) { + tx_endpoint = usbdev->config[0].interface[0].altsetting->endpoint[0].bEndpointAddress; + rx_endpoint = usbdev->config[0].interface[0].altsetting->endpoint[1].bEndpointAddress & ~USB_DIR_IN; + } + if ((0 != (usbdev->config[0].interface[0].altsetting->endpoint[0].bEndpointAddress & USB_DIR_IN)) && + (0 == (usbdev->config[0].interface[0].altsetting->endpoint[1].bEndpointAddress & USB_DIR_IN))) { + tx_endpoint = usbdev->config[0].interface[0].altsetting->endpoint[1].bEndpointAddress; + rx_endpoint = usbdev->config[0].interface[0].altsetting->endpoint[0].bEndpointAddress & ~USB_DIR_IN; + } + if (-1 == tx_endpoint) { + return (void*) 0; + } + res = usb_set_configuration(usbdev, usbdev->config[0].bConfigurationValue); if (0 != res) { printk("ecos_usbeth: failed to set configuration, %d\n", res); @@ -421,6 +444,7 @@ ecos_usbeth_probe(struct usb_device* usb printk("ecos_usbeth: failed to get MAC address, %d\n", res); return (void*) 0; } + res = usb_control_msg(usbdev, usb_sndctrlpipe(usbdev, 0), // pipe ECOS_USBETH_CONTROL_SET_PROMISCUOUS_MODE, // request @@ -450,11 +474,11 @@ ecos_usbeth_probe(struct usb_device* usb usbeth->usb_lock = SPIN_LOCK_UNLOCKED; usbeth->usb_dev = usbdev; - FILL_BULK_URB(&(usbeth->tx_urb), usbdev, usb_sndbulkpipe(usbdev, 1), + FILL_BULK_URB(&(usbeth->tx_urb), usbdev, usb_sndbulkpipe(usbdev, tx_endpoint), usbeth->tx_buffer, ECOS_USBETH_MAXTU, &ecos_usbeth_tx_callback, (void*) usbeth); - FILL_BULK_URB(&(usbeth->rx_urb), usbdev, usb_rcvbulkpipe(usbdev, 2), + FILL_BULK_URB(&(usbeth->rx_urb), usbdev, usb_rcvbulkpipe(usbdev, rx_endpoint), usbeth->rx_buffer, ECOS_USBETH_MAXTU, &ecos_usbeth_rx_callback, (void*) usbeth); - + usbeth->net_dev = net; usbeth->target_promiscuous = 0;
--- a/packages/redboot/current/ChangeLog +++ b/packages/redboot/current/ChangeLog @@ -1,3 +1,7 @@ +2001-07-02 Jesper Skov <jskov@redhat.com> + + * src/io.c (do_channel): Fox build for !CYGPKG_REDBOOT_ANY_CONSOLE + 2001-06-28 Jonathan Larmour <jlarmour@redhat.com> * cdl/redboot.cdl: Don't have a configured default IP address by
--- a/packages/redboot/current/src/io.c +++ b/packages/redboot/current/src/io.c @@ -99,11 +99,12 @@ do_channel(int argc, char *argv[]) /* else display */ else { printf("Current console channel id: "); +#ifdef CYGPKG_REDBOOT_ANY_CONSOLE if (!console_selected) printf("-1\n"); - else { + else +#endif printf("%d\n", cur); - } } }
