[rtems-tools PATCH 1/2] rtemstoolkit: Update SimpleIni to latest
From: Chris Johns The resolves C++17 warnings. Updates #4970 --- rtemstoolkit/SimpleIni.h | 598 +++ 1 file changed, 419 insertions(+), 179 deletions(-) diff --git a/rtemstoolkit/SimpleIni.h b/rtemstoolkit/SimpleIni.h index fd37c4b..ec99abb 100644 --- a/rtemstoolkit/SimpleIni.h +++ b/rtemstoolkit/SimpleIni.h @@ -3,9 +3,9 @@ Library SimpleIni FileSimpleIni.h -Author Brodie Thiesfield [code at jellycan dot com] +Author Brodie Thiesfield Source https://github.com/brofield/simpleini -Version 4.17 +Version 4.20 Jump to the @link CSimpleIniTempl CSimpleIni @endlink interface documentation. @@ -20,7 +20,7 @@ @section features FEATURES - MIT Licence allows free use in all software (including GPL and commercial) -- multi-platform (Windows 95/98/ME/NT/2K/XP/2003, Windows CE, Linux, Unix) +- multi-platform (Windows CE/9x/NT..10/etc, Linux, MacOSX, Unix) - loading and saving of INI-style configuration files - configuration files can have any newline format on all platforms - liberal acceptance of file format @@ -42,22 +42,31 @@ - Windows/VC6 (warning level 3) - Windows/VC.NET 2003 (warning level 4) - Windows/VC 2005 (warning level 4) +- Windows/VC 2019 (warning level 4) - Linux/gcc (-Wall) @section usage USAGE SUMMARY +-# Decide if you will be using utf8 or MBCS files, and working with the +data in utf8, wchar_t or ICU chars. +-# If you will only be using straight utf8 files and access the data via the +char interface, then you do not need any conversion library and could define +SI_NO_CONVERSION. Note that no conversion also means no validation of the data. +If no converter is specified then the default converter is SI_CONVERT_GENERIC +on Mac/Linux and SI_CONVERT_WIN32 on Windows. If you need widechar support on +Mac/Linux then use either SI_CONVERT_GENERIC or SI_CONVERT_ICU. These are also +supported on all platforms. -# Define the appropriate symbol for the converter you wish to use and -include the SimpleIni.h header file. If no specific converter is defined -then the default converter is used. The default conversion mode uses -SI_CONVERT_WIN32 on Windows and SI_CONVERT_GENERIC on all other -platforms. If you are using ICU then SI_CONVERT_ICU is supported on all -platforms. --# Declare an instance the appropriate class. Note that the following +include the SimpleIni.h header file. +-# Declare an instance of the appropriate class. Note that the following definitions are just shortcuts for commonly used types. Other types (PRUnichar, unsigned short, unsigned char) are also possible. -Interface Case-sensitive Load UTF-8 Load MBCS Typedef +Interface Case-sensitive Load UTF-8 Load MBCS Typedef +SI_NO_CONVERSION +charNo Yes No CSimpleIniA +charYes Yes No CSimpleIniCaseA SI_CONVERT_GENERIC charNo Yes Yes #1 CSimpleIniA charYes Yes Yes CSimpleIniCaseA @@ -88,6 +97,8 @@ GetValueReturn a value for a section & key SetValueAdd or update a value for a section & key Delete Remove a section, or a key from a section +SectionExists Does a section exist? +KeyExists Does a key exist? -# Call Save() or SaveFile() to save the INI configuration data @@ -161,9 +172,10 @@ SI_STRLESS class, or by sorting the strings external to this library. - Usage of the header on Windows can be disabled by defining SI_NO_MBCS. This is defined automatically on Windows CE platforms. +- Not thread-safe so manage your own locking @section contrib CONTRIBUTIONS - + - 2010/05/03: Tobias Gehrig: added GetDoubleValue() @section licence MIT LICENCE @@ -213,11 +225,11 @@ #endif #include +#include #include #include #include #include -#include #include #ifdef SI_SUPPORT_IOSTREAMS @@ -233,16 +245,16 @@ # define SI_ASSERT(x) #endif -enum SI_Error { -SI_OK = 0, //!< No error -SI_UPDATED = 1, //!< An existing value was updated -SI_INSERTED = 2, //!< A new value was inserted +using SI_Error = int; -// note: test for any error with (retval < 0) -SI_FAIL = -1, //!< Generic failure -SI_NOMEM= -2, //!< Out of memory error -SI_FILE = -3//!< File error (see errno for detail error) -}; +constexpr int SI_OK = 0;//!< No error +constexpr int SI_UPDATED = 1; //!<
[rtems-tools PATCH 2/2] rtemstoolkit, linkers: Fix C++17 warnings
From: Chris Johns Closes #4970 --- linkers/rtems-exeinfo.cpp | 3 +-- rtemstoolkit/rld-elf.cpp | 12 rtemstoolkit/rld-elf.h| 5 - rtemstoolkit/rld-rap.cpp | 9 ++--- rtemstoolkit/rld.cpp | 14 -- 5 files changed, 11 insertions(+), 32 deletions(-) diff --git a/linkers/rtems-exeinfo.cpp b/linkers/rtems-exeinfo.cpp index 0900812..0b43403 100644 --- a/linkers/rtems-exeinfo.cpp +++ b/linkers/rtems-exeinfo.cpp @@ -223,8 +223,7 @@ namespace rld * Helper for for_each to filter and load the sections we wish to * dump. */ -class section_loader: - public std::unary_function < const files::section, void > +class section_loader { public: diff --git a/rtemstoolkit/rld-elf.cpp b/rtemstoolkit/rld-elf.cpp index 68efdbe..8b55818 100644 --- a/rtemstoolkit/rld-elf.cpp +++ b/rtemstoolkit/rld-elf.cpp @@ -200,18 +200,6 @@ namespace rld << std::endl; } -section::section (const section& orig) - : file_ (orig.file_), -index_ (orig.index_), -name_ (orig.name_), -scn (orig.scn), -shdr (orig.shdr), -data_ (orig.data_), -rela (orig.rela), -relocs (orig.relocs) -{ -} - section::section () : file_ (0), index_ (-1), diff --git a/rtemstoolkit/rld-elf.h b/rtemstoolkit/rld-elf.h index 4919135..d66eee5 100644 --- a/rtemstoolkit/rld-elf.h +++ b/rtemstoolkit/rld-elf.h @@ -174,11 +174,6 @@ namespace rld */ section (file& file_, int index); - /** - * Copy constructor. - */ - section (const section& orig); - /** * Default constructor. */ diff --git a/rtemstoolkit/rld-rap.cpp b/rtemstoolkit/rld-rap.cpp index 93ffbdc..045536a 100644 --- a/rtemstoolkit/rld-rap.cpp +++ b/rtemstoolkit/rld-rap.cpp @@ -696,8 +696,7 @@ namespace rld * Helper for for_each to merge the related object sections into the RAP * section. */ -class section_merge: - public std::unary_function < const files::section, void > +class section_merge { public: @@ -1191,8 +1190,7 @@ namespace rld /** * Helper for for_each to write out the various sections. */ -class section_writer: - public std::unary_function < object, void > +class section_writer { public: @@ -1364,8 +1362,6 @@ namespace rld void image::write_relocations (compress::compressor& comp) { - uint32_t rr = 0; - for (int s = 0; s < rap_secs; ++s) { uint32_t count = get_relocations (s); @@ -1515,7 +1511,6 @@ namespace rld ++rc; ++sr; -++rr; } } } diff --git a/rtemstoolkit/rld.cpp b/rtemstoolkit/rld.cpp index 90fb39d..d0848ad 100644 --- a/rtemstoolkit/rld.cpp +++ b/rtemstoolkit/rld.cpp @@ -106,9 +106,10 @@ namespace rld ltrim (const std::string& s) { std::string t = s; -t.erase (t.begin (), - std::find_if (t.begin (), t.end (), - std::not1 (std::ptr_fun < int, int > (std::isspace; +auto non_space = + std::find_if (t.begin (), t.end (), +[](unsigned char c) { return !std::isspace (c); }); +t.erase (t.begin (), non_space); return t; } @@ -116,9 +117,10 @@ namespace rld rtrim (const std::string& s) { std::string t = s; -t.erase (std::find_if (t.rbegin (), t.rend (), - std::not1 (std::ptr_fun < int, int > (std::isspace))).base(), - t.end()); +auto last_space = + std::find_if (t.rbegin (), t.rend (), +[](unsigned char c) { return !std::isspace (c); }).base(); +t.erase (last_space, t.end()); return t; } -- 2.37.1 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH] waf: Fix Python 3.12 escape sequences
From: Chris Johns Updates #4968 --- wscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wscript b/wscript index 69732d4e17..dd7fda7225 100755 --- a/wscript +++ b/wscript @@ -125,7 +125,7 @@ class Template(string.Template): idpattern = "[_A-Za-z][_A-Za-z0-9:#]*" -_VAR_PATTERN = re.compile("\$\{?(" + Template.idpattern + ")\}?$") +_VAR_PATTERN = re.compile("\\$\\{?(" + Template.idpattern + ")\\}?$") def _is_enabled_op_and(enabled, enabled_by): -- 2.37.1 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: [PATCH] 6: Use GCC 13.2
On Tue, Nov 21, 2023 at 5:29 AM Sebastian Huber < sebastian.hu...@embedded-brains.de> wrote: > On 12.09.23 08:43, Sebastian Huber wrote: > > > > > > On 12.09.23 08:40, Chris Johns wrote: > >> On 12/9/2023 4:31 pm, Sebastian Huber wrote: > >>> On 27.07.23 13:33, Sebastian Huber wrote: > Prepare for RTEMS 6.1 release. > > Update #4921. > >>> How do we want to proceed with the tools for the RTEMS 6.1 release? > >> I need to move 6 to tar files but other tickets have taken what time I > >> had. > > > > The patch uses a tar file for GCC. I guess for Newlib we have to host an > > archive. > > > >> > >>> Is GCC 13.2 still the desired GCC release? > >> What is the alternative? > > > > Do we need one? GCC 13.2 is the best option from my point of view right > > now. > > Can I check in the update to GCC 13.2? > Are there any test results to point to? I'm generally ok if there are test results. But I didn't see any in the build@ list > > -- > embedded brains GmbH > Herr Sebastian HUBER > Dornierstr. 4 > 82178 Puchheim > Germany > email: sebastian.hu...@embedded-brains.de > phone: +49-89-18 94 741 - 16 > fax: +49-89-18 94 741 - 08 > > Registergericht: Amtsgericht München > Registernummer: HRB 157899 > Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler > Unsere Datenschutzerklärung finden Sie hier: > https://embedded-brains.de/datenschutzerklaerung/ > ___ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: [RSB 1/3] 6/7: Update Newlib
Thanks. Ask Kinsey some time the weird situation that caught this. --joel On Tue, Nov 21, 2023 at 3:05 PM Chris Johns wrote: > OK to all 3 and thanks > > Chris > > On 21/11/2023 11:39 pm, Sebastian Huber wrote: > > Pick up fixes for ARM/optimized-routines and the memory reclamation at > thread > > exit. > > > > Update #4510. > > Update #4967. > > --- > > rtems/config/tools/rtems-gcc-10-newlib-head.cfg | 4 ++-- > > rtems/config/tools/rtems-gcc-10.4-newlib-head.cfg | 4 ++-- > > rtems/config/tools/rtems-gcc-12-newlib-head.cfg | 4 ++-- > > rtems/config/tools/rtems-gcc-13-newlib-head.cfg | 4 ++-- > > rtems/config/tools/rtems-gcc-13.2-newlib-head.cfg | 4 ++-- > > rtems/config/tools/rtems-gcc-head-newlib-head.cfg | 4 ++-- > > 6 files changed, 12 insertions(+), 12 deletions(-) > > > > diff --git a/rtems/config/tools/rtems-gcc-10-newlib-head.cfg > b/rtems/config/tools/rtems-gcc-10-newlib-head.cfg > > index 6668bc6..387e8c9 100644 > > --- a/rtems/config/tools/rtems-gcc-10-newlib-head.cfg > > +++ b/rtems/config/tools/rtems-gcc-10-newlib-head.cfg > > @@ -14,12 +14,12 @@ > > %patch add gcc -p1 > https://devel.rtems.org/raw-attachment/ticket/4215/0001-nios2-Remove-custom-instruction-warnings.patch > > %hash sha512 0001-nios2-Remove-custom-instruction-warnings.patch > afd8a5e6bdcc5b75d5fbbf558bdf56ccac400521a6eec9d88cc95f6be67c481f2dbf8faa0f6ddc1e4ac7c56a84938714d80e46e9cf80ec4b8fcd739986449881 > > > > -%define newlib_version fbc5496 > > +%define newlib_version 3cacedb > > %define newlib_external 1 > > %define newlib_expand_name > sourceware-mirror-newlib-cygwin-%{newlib_version} > > %source set newlib --rsb-file=newlib-%{newlib_version}.tar.gz > https://codeload.github.com/RTEMS/sourceware-mirror-newlib-cygwin/tar.gz/%{newlib_version} > > %hash sha512 newlib-%{newlib_version}.tar.gz \ > > - > AFwyCjHHXfddx/lUcJbmcxSFOYtfj8cshzthqF9B2OtZxxxN/NQ8O+znhUPKDv20KjOBEMGh4VHpoiFBjZOrmA== > > + > ia0ce+bdENUO3qYj00jrZB8FjSejmTWuRqEdNE8nI2llf30mh8leUn5fCoHB0Oa7rRVBjEu3n0F12ZK9skuegQ== > > > > %define with_threads 1 > > %define with_plugin 0 > > diff --git a/rtems/config/tools/rtems-gcc-10.4-newlib-head.cfg > b/rtems/config/tools/rtems-gcc-10.4-newlib-head.cfg > > index dae3d2a..b37af1e 100644 > > --- a/rtems/config/tools/rtems-gcc-10.4-newlib-head.cfg > > +++ b/rtems/config/tools/rtems-gcc-10.4-newlib-head.cfg > > @@ -17,12 +17,12 @@ > > %patch add gcc -p1 > https://devel.rtems.org/raw-attachment/ticket/4215/0001-nios2-Remove-custom-instruction-warnings.patch > > %hash sha512 0001-nios2-Remove-custom-instruction-warnings.patch > afd8a5e6bdcc5b75d5fbbf558bdf56ccac400521a6eec9d88cc95f6be67c481f2dbf8faa0f6ddc1e4ac7c56a84938714d80e46e9cf80ec4b8fcd739986449881 > > > > -%define newlib_version fbc5496 > > +%define newlib_version 3cacedb > > %define newlib_external 1 > > %define newlib_expand_name > sourceware-mirror-newlib-cygwin-%{newlib_version} > > %source set newlib --rsb-file=newlib-%{newlib_version}.tar.gz > https://codeload.github.com/RTEMS/sourceware-mirror-newlib-cygwin/tar.gz/%{newlib_version} > > %hash sha512 newlib-%{newlib_version}.tar.gz \ > > - > AFwyCjHHXfddx/lUcJbmcxSFOYtfj8cshzthqF9B2OtZxxxN/NQ8O+znhUPKDv20KjOBEMGh4VHpoiFBjZOrmA== > > + > ia0ce+bdENUO3qYj00jrZB8FjSejmTWuRqEdNE8nI2llf30mh8leUn5fCoHB0Oa7rRVBjEu3n0F12ZK9skuegQ== > > > > %define with_threads 1 > > %define with_plugin 0 > > diff --git a/rtems/config/tools/rtems-gcc-12-newlib-head.cfg > b/rtems/config/tools/rtems-gcc-12-newlib-head.cfg > > index 9fe1ddd..4a0c6d1 100644 > > --- a/rtems/config/tools/rtems-gcc-12-newlib-head.cfg > > +++ b/rtems/config/tools/rtems-gcc-12-newlib-head.cfg > > @@ -34,13 +34,13 @@ > > > KEmxHjYOqY4LTXCMZ3I60tbHusbR5GlnP0CLARHPAnhCnovDj9K3U43C1bsMxDDGRqD6fwtrEFoEgqVFX63IuQ== > > # Comment above related to #4657 and patches ends here > > > > -%define newlib_version fbc5496 > > +%define newlib_version 3cacedb > > %define newlib_external 1 > > %define newlib_expand_name > sourceware-mirror-newlib-cygwin-%{newlib_version} > > %source set newlib --rsb-file=newlib-%{newlib_version}.tar.gz \ > > > https://codeload.github.com/RTEMS/sourceware-mirror-newlib-cygwin/tar.gz/%{newlib_version} > > %hash sha512 newlib-%{newlib_version}.tar.gz \ > > - > AFwyCjHHXfddx/lUcJbmcxSFOYtfj8cshzthqF9B2OtZxxxN/NQ8O+znhUPKDv20KjOBEMGh4VHpoiFBjZOrmA== > > + > ia0ce+bdENUO3qYj00jrZB8FjSejmTWuRqEdNE8nI2llf30mh8leUn5fCoHB0Oa7rRVBjEu3n0F12ZK9skuegQ== > > > > %define with_threads 1 > > %define with_plugin 0 > > diff --git a/rtems/config/tools/rtems-gcc-13-newlib-head.cfg > b/rtems/config/tools/rtems-gcc-13-newlib-head.cfg > > index 7d5f610..5529563 100644 > > --- a/rtems/config/tools/rtems-gcc-13-newlib-head.cfg > > +++ b/rtems/config/tools/rtems-gcc-13-newlib-head.cfg > > @@ -8,12 +8,12 @@ > > %hash sha512 %{gcc_expand_name}.tar.gz \ > > > nKBXN9Qt/9CRYDVOp1geQdshXDP/kvr82RV1fE1LVIxNCbAVvhRmqz1p5kycg24T3TNGHPN58RySceaYgc6sCw== > > > > -%define newlib_version fbc5496 > > +%define newlib_version 3cacedb > > %define
Re: [PATCH rtems v2] once.c, onceimplh.h: Make synchronization variable volatile
Thanks. I will pass this along and resubmit a patch to at least add a comment and fix formatting issues. Do we have a good place to add this information to the documentation? On Tue, Nov 21, 2023, 5:35 AM Sebastian Huber < sebastian.hu...@embedded-brains.de> wrote: > On 20.11.23 18:42, Joel Sherrill wrote: > > The loop that waits for another thread to complete the once > > initialization was flagged as a potential infinite loop. > > This is because there was no way to break out of the loop > > inside the loop. The solution is to make the state variable > > volatile which indicates it may be modified by another thread > > of execution. > > > > This was flagged by a user Coverity Scan run which apparently is > > configured differently from the instance provided by Coverity to > > open source projects. > > This is a configuration issue of Coverity Scan. You have to teach > Coverity Scan something about: > > _Atomic_Fence( ATOMIC_ORDER_ACQUIRE ); > _Atomic_Fence( ATOMIC_ORDER_RELEASE ); > > rtems_mutex_lock(); > rtems_condition_variable_wait(); > rtems_mutex_unlock(); > > Using "volatile" for multi-threaded synchronization is not correct in > C11 or later. This keyword is for device access. For multi-threaded > synchronization you need atomic operations or mutexes, etc. From my > point of view, Coverity Scan should warn if you use volatile for > multi-threaded synchronization. > > -- > embedded brains GmbH > Herr Sebastian HUBER > Dornierstr. 4 > 82178 Puchheim > Germany > email: sebastian.hu...@embedded-brains.de > phone: +49-89-18 94 741 - 16 > fax: +49-89-18 94 741 - 08 > > Registergericht: Amtsgericht München > Registernummer: HRB 157899 > Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler > Unsere Datenschutzerklärung finden Sie hier: > https://embedded-brains.de/datenschutzerklaerung/ > ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: [RSB 1/3] 6/7: Update Newlib
OK to all 3 and thanks Chris On 21/11/2023 11:39 pm, Sebastian Huber wrote: > Pick up fixes for ARM/optimized-routines and the memory reclamation at thread > exit. > > Update #4510. > Update #4967. > --- > rtems/config/tools/rtems-gcc-10-newlib-head.cfg | 4 ++-- > rtems/config/tools/rtems-gcc-10.4-newlib-head.cfg | 4 ++-- > rtems/config/tools/rtems-gcc-12-newlib-head.cfg | 4 ++-- > rtems/config/tools/rtems-gcc-13-newlib-head.cfg | 4 ++-- > rtems/config/tools/rtems-gcc-13.2-newlib-head.cfg | 4 ++-- > rtems/config/tools/rtems-gcc-head-newlib-head.cfg | 4 ++-- > 6 files changed, 12 insertions(+), 12 deletions(-) > > diff --git a/rtems/config/tools/rtems-gcc-10-newlib-head.cfg > b/rtems/config/tools/rtems-gcc-10-newlib-head.cfg > index 6668bc6..387e8c9 100644 > --- a/rtems/config/tools/rtems-gcc-10-newlib-head.cfg > +++ b/rtems/config/tools/rtems-gcc-10-newlib-head.cfg > @@ -14,12 +14,12 @@ > %patch add gcc -p1 > https://devel.rtems.org/raw-attachment/ticket/4215/0001-nios2-Remove-custom-instruction-warnings.patch > %hash sha512 0001-nios2-Remove-custom-instruction-warnings.patch > afd8a5e6bdcc5b75d5fbbf558bdf56ccac400521a6eec9d88cc95f6be67c481f2dbf8faa0f6ddc1e4ac7c56a84938714d80e46e9cf80ec4b8fcd739986449881 > > -%define newlib_version fbc5496 > +%define newlib_version 3cacedb > %define newlib_external 1 > %define newlib_expand_name sourceware-mirror-newlib-cygwin-%{newlib_version} > %source set newlib --rsb-file=newlib-%{newlib_version}.tar.gz > https://codeload.github.com/RTEMS/sourceware-mirror-newlib-cygwin/tar.gz/%{newlib_version} > %hash sha512 newlib-%{newlib_version}.tar.gz \ > - > AFwyCjHHXfddx/lUcJbmcxSFOYtfj8cshzthqF9B2OtZxxxN/NQ8O+znhUPKDv20KjOBEMGh4VHpoiFBjZOrmA== > + > ia0ce+bdENUO3qYj00jrZB8FjSejmTWuRqEdNE8nI2llf30mh8leUn5fCoHB0Oa7rRVBjEu3n0F12ZK9skuegQ== > > %define with_threads 1 > %define with_plugin 0 > diff --git a/rtems/config/tools/rtems-gcc-10.4-newlib-head.cfg > b/rtems/config/tools/rtems-gcc-10.4-newlib-head.cfg > index dae3d2a..b37af1e 100644 > --- a/rtems/config/tools/rtems-gcc-10.4-newlib-head.cfg > +++ b/rtems/config/tools/rtems-gcc-10.4-newlib-head.cfg > @@ -17,12 +17,12 @@ > %patch add gcc -p1 > https://devel.rtems.org/raw-attachment/ticket/4215/0001-nios2-Remove-custom-instruction-warnings.patch > %hash sha512 0001-nios2-Remove-custom-instruction-warnings.patch > afd8a5e6bdcc5b75d5fbbf558bdf56ccac400521a6eec9d88cc95f6be67c481f2dbf8faa0f6ddc1e4ac7c56a84938714d80e46e9cf80ec4b8fcd739986449881 > > -%define newlib_version fbc5496 > +%define newlib_version 3cacedb > %define newlib_external 1 > %define newlib_expand_name sourceware-mirror-newlib-cygwin-%{newlib_version} > %source set newlib --rsb-file=newlib-%{newlib_version}.tar.gz > https://codeload.github.com/RTEMS/sourceware-mirror-newlib-cygwin/tar.gz/%{newlib_version} > %hash sha512 newlib-%{newlib_version}.tar.gz \ > - > AFwyCjHHXfddx/lUcJbmcxSFOYtfj8cshzthqF9B2OtZxxxN/NQ8O+znhUPKDv20KjOBEMGh4VHpoiFBjZOrmA== > + > ia0ce+bdENUO3qYj00jrZB8FjSejmTWuRqEdNE8nI2llf30mh8leUn5fCoHB0Oa7rRVBjEu3n0F12ZK9skuegQ== > > %define with_threads 1 > %define with_plugin 0 > diff --git a/rtems/config/tools/rtems-gcc-12-newlib-head.cfg > b/rtems/config/tools/rtems-gcc-12-newlib-head.cfg > index 9fe1ddd..4a0c6d1 100644 > --- a/rtems/config/tools/rtems-gcc-12-newlib-head.cfg > +++ b/rtems/config/tools/rtems-gcc-12-newlib-head.cfg > @@ -34,13 +34,13 @@ > > KEmxHjYOqY4LTXCMZ3I60tbHusbR5GlnP0CLARHPAnhCnovDj9K3U43C1bsMxDDGRqD6fwtrEFoEgqVFX63IuQ== > # Comment above related to #4657 and patches ends here > > -%define newlib_version fbc5496 > +%define newlib_version 3cacedb > %define newlib_external 1 > %define newlib_expand_name sourceware-mirror-newlib-cygwin-%{newlib_version} > %source set newlib --rsb-file=newlib-%{newlib_version}.tar.gz \ > > https://codeload.github.com/RTEMS/sourceware-mirror-newlib-cygwin/tar.gz/%{newlib_version} > %hash sha512 newlib-%{newlib_version}.tar.gz \ > - > AFwyCjHHXfddx/lUcJbmcxSFOYtfj8cshzthqF9B2OtZxxxN/NQ8O+znhUPKDv20KjOBEMGh4VHpoiFBjZOrmA== > + > ia0ce+bdENUO3qYj00jrZB8FjSejmTWuRqEdNE8nI2llf30mh8leUn5fCoHB0Oa7rRVBjEu3n0F12ZK9skuegQ== > > %define with_threads 1 > %define with_plugin 0 > diff --git a/rtems/config/tools/rtems-gcc-13-newlib-head.cfg > b/rtems/config/tools/rtems-gcc-13-newlib-head.cfg > index 7d5f610..5529563 100644 > --- a/rtems/config/tools/rtems-gcc-13-newlib-head.cfg > +++ b/rtems/config/tools/rtems-gcc-13-newlib-head.cfg > @@ -8,12 +8,12 @@ > %hash sha512 %{gcc_expand_name}.tar.gz \ > > nKBXN9Qt/9CRYDVOp1geQdshXDP/kvr82RV1fE1LVIxNCbAVvhRmqz1p5kycg24T3TNGHPN58RySceaYgc6sCw== > > -%define newlib_version fbc5496 > +%define newlib_version 3cacedb > %define newlib_external 1 > %define newlib_expand_name sourceware-mirror-newlib-cygwin-%{newlib_version} > %source set newlib --rsb-file=newlib-%{newlib_version}.tar.gz >
[PATCH v3 rtems master 3/3] ZYNQ7000: Add support PYNQ, PicoZed, MicroZed, ZYBO and ZYBO Z7
This patch adds basic support for the following boards: xilinx_zynq_pynq - PYNQ Z1 / Z2 xilinx_zynq_microzed - MicroZed 7010 / 7020 xilinx_zynq_picozed - PicoZed 7010 / 7015 / 7020 / 7030 xilinx_zynq_zybo - ZYBO xilinx_zynq_zybo_z7 - ZYBO Z7-10 / Z7-20 N.b. Arty Z7-20 is basically a PYNQ Z1 - different board color and updated Eth PHY. --- .../xilinx_zynq_microzed-testsuite.tcfg | 7 +++ .../config/xilinx_zynq_microzed.cfg | 1 + .../config/xilinx_zynq_picozed-testsuite.tcfg | 7 +++ .../config/xilinx_zynq_picozed.cfg| 1 + .../config/xilinx_zynq_pynq-testsuite.tcfg| 7 +++ .../xilinx-zynq/config/xilinx_zynq_pynq.cfg | 1 + .../config/xilinx_zynq_zybo-testsuite.tcfg| 7 +++ .../xilinx-zynq/config/xilinx_zynq_zybo.cfg | 1 + .../config/xilinx_zynq_zybo_z7-testsuite.tcfg | 7 +++ .../config/xilinx_zynq_zybo_z7.cfg| 1 + .../bsps/arm/xilinx-zynq/bspmicrozed.yml | 19 +++ .../build/bsps/arm/xilinx-zynq/bsppicozed.yml | 19 +++ spec/build/bsps/arm/xilinx-zynq/bsppynq.yml | 19 +++ spec/build/bsps/arm/xilinx-zynq/bspzybo.yml | 19 +++ spec/build/bsps/arm/xilinx-zynq/bspzyboz7.yml | 19 +++ .../bsps/arm/xilinx-zynq/opta9periphclk.yml | 12 ++-- .../bsps/arm/xilinx-zynq/optclkcpu1x.yml | 5 + .../build/bsps/arm/xilinx-zynq/optclkuart.yml | 5 + spec/build/bsps/arm/xilinx-zynq/optramlen.yml | 9 - spec/build/bsps/optconminor.yml | 3 +++ spec/build/cpukit/optsmp.yml | 6 ++ 21 files changed, 172 insertions(+), 3 deletions(-) create mode 100755 bsps/arm/xilinx-zynq/config/xilinx_zynq_microzed-testsuite.tcfg create mode 100755 bsps/arm/xilinx-zynq/config/xilinx_zynq_microzed.cfg create mode 100755 bsps/arm/xilinx-zynq/config/xilinx_zynq_picozed-testsuite.tcfg create mode 100755 bsps/arm/xilinx-zynq/config/xilinx_zynq_picozed.cfg create mode 100755 bsps/arm/xilinx-zynq/config/xilinx_zynq_pynq-testsuite.tcfg create mode 100755 bsps/arm/xilinx-zynq/config/xilinx_zynq_pynq.cfg create mode 100755 bsps/arm/xilinx-zynq/config/xilinx_zynq_zybo-testsuite.tcfg create mode 100755 bsps/arm/xilinx-zynq/config/xilinx_zynq_zybo.cfg create mode 100755 bsps/arm/xilinx-zynq/config/xilinx_zynq_zybo_z7-testsuite.tcfg create mode 100755 bsps/arm/xilinx-zynq/config/xilinx_zynq_zybo_z7.cfg create mode 100644 spec/build/bsps/arm/xilinx-zynq/bspmicrozed.yml create mode 100644 spec/build/bsps/arm/xilinx-zynq/bsppicozed.yml create mode 100644 spec/build/bsps/arm/xilinx-zynq/bsppynq.yml create mode 100644 spec/build/bsps/arm/xilinx-zynq/bspzybo.yml create mode 100644 spec/build/bsps/arm/xilinx-zynq/bspzyboz7.yml diff --git a/bsps/arm/xilinx-zynq/config/xilinx_zynq_microzed-testsuite.tcfg b/bsps/arm/xilinx-zynq/config/xilinx_zynq_microzed-testsuite.tcfg new file mode 100755 index 00..ba80faab99 --- /dev/null +++ b/bsps/arm/xilinx-zynq/config/xilinx_zynq_microzed-testsuite.tcfg @@ -0,0 +1,7 @@ +# +# Xilinx Zedboard RTEMS Test Database. +# +# Format is one line per test that is _NOT_ built. +# + +include: xilinx_zynq-testsuite.tcfg diff --git a/bsps/arm/xilinx-zynq/config/xilinx_zynq_microzed.cfg b/bsps/arm/xilinx-zynq/config/xilinx_zynq_microzed.cfg new file mode 100755 index 00..2de871d46e --- /dev/null +++ b/bsps/arm/xilinx-zynq/config/xilinx_zynq_microzed.cfg @@ -0,0 +1 @@ +include $(RTEMS_ROOT)/make/custom/xilinx_zynq.inc diff --git a/bsps/arm/xilinx-zynq/config/xilinx_zynq_picozed-testsuite.tcfg b/bsps/arm/xilinx-zynq/config/xilinx_zynq_picozed-testsuite.tcfg new file mode 100755 index 00..ba80faab99 --- /dev/null +++ b/bsps/arm/xilinx-zynq/config/xilinx_zynq_picozed-testsuite.tcfg @@ -0,0 +1,7 @@ +# +# Xilinx Zedboard RTEMS Test Database. +# +# Format is one line per test that is _NOT_ built. +# + +include: xilinx_zynq-testsuite.tcfg diff --git a/bsps/arm/xilinx-zynq/config/xilinx_zynq_picozed.cfg b/bsps/arm/xilinx-zynq/config/xilinx_zynq_picozed.cfg new file mode 100755 index 00..2de871d46e --- /dev/null +++ b/bsps/arm/xilinx-zynq/config/xilinx_zynq_picozed.cfg @@ -0,0 +1 @@ +include $(RTEMS_ROOT)/make/custom/xilinx_zynq.inc diff --git a/bsps/arm/xilinx-zynq/config/xilinx_zynq_pynq-testsuite.tcfg b/bsps/arm/xilinx-zynq/config/xilinx_zynq_pynq-testsuite.tcfg new file mode 100755 index 00..ba80faab99 --- /dev/null +++ b/bsps/arm/xilinx-zynq/config/xilinx_zynq_pynq-testsuite.tcfg @@ -0,0 +1,7 @@ +# +# Xilinx Zedboard RTEMS Test Database. +# +# Format is one line per test that is _NOT_ built. +# + +include: xilinx_zynq-testsuite.tcfg diff --git a/bsps/arm/xilinx-zynq/config/xilinx_zynq_pynq.cfg b/bsps/arm/xilinx-zynq/config/xilinx_zynq_pynq.cfg new file mode 100755 index 00..2de871d46e --- /dev/null +++ b/bsps/arm/xilinx-zynq/config/xilinx_zynq_pynq.cfg @@ -0,0 +1 @@ +include $(RTEMS_ROOT)/make/custom/xilinx_zynq.inc diff --git
[PATCH v3 rtems master 2/3] Fix zedboard clock settings
From: Bernd Moessner --- spec/build/bsps/arm/xilinx-zynq/opta9periphclk.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spec/build/bsps/arm/xilinx-zynq/opta9periphclk.yml b/spec/build/bsps/arm/xilinx-zynq/opta9periphclk.yml index fdee4c0568..ad34974665 100644 --- a/spec/build/bsps/arm/xilinx-zynq/opta9periphclk.yml +++ b/spec/build/bsps/arm/xilinx-zynq/opta9periphclk.yml @@ -9,9 +9,8 @@ default: - enabled-by: - arm/xilinx_zynq_zc702 - arm/xilinx_zynq_zc706 + - arm/xilinx_zynq_zedboard value: 3 -- enabled-by: arm/xilinx_zynq_zedboard - value: 7 - enabled-by: true value: 1 description: | -- 2.25.1 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH v3 rtems master 1/3] Fix add missing clock settings for zc706
From: Bernd Moessner --- spec/build/bsps/arm/xilinx-zynq/opta9periphclk.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spec/build/bsps/arm/xilinx-zynq/opta9periphclk.yml b/spec/build/bsps/arm/xilinx-zynq/opta9periphclk.yml index 7233f73d5a..fdee4c0568 100644 --- a/spec/build/bsps/arm/xilinx-zynq/opta9periphclk.yml +++ b/spec/build/bsps/arm/xilinx-zynq/opta9periphclk.yml @@ -6,7 +6,9 @@ build-type: option copyrights: - Copyright (C) 2020 embedded brains GmbH & Co. KG default: -- enabled-by: arm/xilinx_zynq_zc702 +- enabled-by: + - arm/xilinx_zynq_zc702 + - arm/xilinx_zynq_zc706 value: 3 - enabled-by: arm/xilinx_zynq_zedboard value: 7 -- 2.25.1 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Coverity Scan Runs are Down
Hi I got a message from the last Coverity Scan run that I need to update the Scan tool used to run them. With this being a short week (US Thanksgiving), I don't know if I will get to it in the next couple of days. --joel ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH rtems v2 2/3] bsp/imxrt1166: Support GPIO CS pins in LPSPI
With this, it is possible to use GPIOs as CS pins in the LPSPI. To avoid additional complexity, the GPIOs will have the same limitations as the native (hardware) CS pins. The GPIO CS feature adds a number of extra code when starting SPI transfers on this controller. Therefore it is possible to disable the additional code by just setting the IMXRT_LPSPI_MAX_CS option to 0. In that case only native CS pins are supported. At the moment, this feature is only enabled on i.MXRT1166 by default because it is not tested on i.MXRT1050. But it should work there too. --- bsps/arm/imxrt/spi/imxrt-lpspi.c| 244 ++-- spec/build/bsps/arm/imxrt/grp.yml | 2 + spec/build/bsps/arm/imxrt/optlpspimaxcs.yml | 21 ++ 3 files changed, 248 insertions(+), 19 deletions(-) create mode 100644 spec/build/bsps/arm/imxrt/optlpspimaxcs.yml diff --git a/bsps/arm/imxrt/spi/imxrt-lpspi.c b/bsps/arm/imxrt/spi/imxrt-lpspi.c index aed4f07f88..f23df73734 100644 --- a/bsps/arm/imxrt/spi/imxrt-lpspi.c +++ b/bsps/arm/imxrt/spi/imxrt-lpspi.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include @@ -36,6 +37,10 @@ #include #include +#if IMXRT_LPSPI_MAX_CS != 0 && IMXRT_LPSPI_MAX_CS < 4 +#error IMXRT_LPSPI_MAX_CS hast to be either 0 or at least 4. +#endif + struct imxrt_lpspi_bus { spi_bus base; volatile LPSPI_Type *regs; @@ -57,6 +62,19 @@ struct imxrt_lpspi_bus { const uint8_t *tx_buf; uint32_t fifo_size; + +#if IMXRT_LPSPI_MAX_CS != 0 + struct { +bool is_gpio; +struct imx_gpio_pin gpio; +uint32_t active; + } cs[IMXRT_LPSPI_MAX_CS]; + /* + * dummy_cs is either <0 if no dummy exists or the index of the cs that is + * used as dummy. + */ + int dummy_cs; +#endif }; static const uint32_t word_size = 8; @@ -148,7 +166,15 @@ static void imxrt_lpspi_config( tcr |= LPSPI_TCR_LSBF_MASK; } +#if IMXRT_LPSPI_MAX_CS > 0 + if (bus->cs[msg->cs].is_gpio || (msg->mode & SPI_NO_CS) != 0) { +tcr |= LPSPI_TCR_PCS(bus->dummy_cs); + } else { +tcr |= LPSPI_TCR_PCS(msg->cs); + } +#else tcr |= LPSPI_TCR_PCS(msg->cs); +#endif tcr |= LPSPI_TCR_CONT_MASK; tcr |= LPSPI_TCR_FRAMESZ(word_size-1); @@ -308,14 +334,33 @@ static inline int imxrt_lpspi_settings_ok( ) { /* most of this is currently just not implemented */ - if (msg->cs > 3 || - msg->speed_hz > bus->base.max_speed_hz || + if (msg->speed_hz > bus->base.max_speed_hz || msg->delay_usecs != 0 || - (msg->mode & ~(SPI_CPHA | SPI_CPOL | SPI_LSB_FIRST)) != 0 || + (msg->mode & ~(SPI_CPHA | SPI_CPOL | SPI_LSB_FIRST | SPI_NO_CS)) != 0 || msg->bits_per_word != word_size) { return -EINVAL; } +#if IMXRT_LPSPI_MAX_CS == 0 + if (msg->cs > 3 || (msg->mode & SPI_NO_CS) != 0) { +return -EINVAL; + } +#else /* IMXRT_LPSPI_MAX_CS != 0 */ + /* + * Chip select is a bit tricky. This depends on whether it's a native or a + * GPIO chip select. + */ + if (msg->cs > IMXRT_LPSPI_MAX_CS) { +return -EINVAL; + } + if (!bus->cs[msg->cs].is_gpio && msg->cs > 3) { +return -EINVAL; + } + if ((msg->mode & SPI_NO_CS) != 0 && bus->dummy_cs < 0) { +return -EINVAL; + } +#endif + if (prev_msg != NULL && !prev_msg->cs_change) { /* * A lot of settings have to be the same in this case because the upper 8 @@ -355,6 +400,10 @@ static int imxrt_lpspi_check_messages( * Check whether cs_change is set on last message. Can't work without it * because the last received data is only put into the FIFO if it is the end * of a transfer or if another TX byte is put into the FIFO. + * + * In theory, a GPIO CS wouldn't need that limitation. But handling it + * different for the GPIO CS would add complexity. So keep it as a driver + * limitation for now. */ if (!prev_msg->cs_change) { return -EINVAL; @@ -363,6 +412,92 @@ static int imxrt_lpspi_check_messages( return 0; } +#if IMXRT_LPSPI_MAX_CS > 0 +/* + * Check how many of the messages can be processed in one go. At the moment it + * is necessary to pause on CS changes when GPIO CS are used. + */ +static int imxrt_lpspi_check_howmany( + struct imxrt_lpspi_bus *bus, + const spi_ioc_transfer *msgs, + uint32_t max +) +{ + int i; + + if (max == 0) { +return max; + } + + for (i = 0; i < max - 1; ++i) { +const spi_ioc_transfer *msg = [i]; +const spi_ioc_transfer *next_msg = [i+1]; + +bool cs_is_gpio = bus->cs[msg->cs].is_gpio; +bool no_cs = msg->mode & SPI_NO_CS; +bool no_cs_next = next_msg->mode & SPI_NO_CS; + +if (cs_is_gpio && msg->cs_change) { + break; +} + +if (no_cs != no_cs_next) { + break; +} + +if (cs_is_gpio && (msg->cs != next_msg->cs)) { + break; +} + } + + return i+1; +} +#endif + +/* + * Transfer some messages. CS must not change between messages if GPIO CS are + * used. + */ +static void imxrt_lpspi_transfer_some( + struct imxrt_lpspi_bus *bus, + const
[PATCH rtems-docs v2] bsps/imxrt: Document GPIO CS pins for LPSPI
--- user/bsps/arm/imxrt.rst | 28 1 file changed, 28 insertions(+) diff --git a/user/bsps/arm/imxrt.rst b/user/bsps/arm/imxrt.rst index ad18766..30b1437 100644 --- a/user/bsps/arm/imxrt.rst +++ b/user/bsps/arm/imxrt.rst @@ -198,10 +198,38 @@ Note that the SPI-pins on the evaluation board are shared with the SD card. Populate R278, R279, R280, R281 on the IMXRT1050-EVKB (Rev A) to use the SPI pins on the Arduino connector. +By default, the native chip selects are used. If you want to use GPIOs as chip +select instead, you can use the `cs-gpios` and `num-cs` attributes just like on +a Linux SPI controller. A maximum of `IMXRT_LPSPI_MAX_CS` pins can be used. + +The hardware doesn't support selecting no native chip select during a transfer. +Therefore one native chip select has to be reserved as a dummy if you want to be +able to use GPIOs. The pin function for this chip select must not be configured +on any pin. Dummy will be the first of the first four chip selects that is not a +native one. Example configuration:: + + { +status = "okay"; +pinctrl-0 = <_pinctrl_lpspi4>; +cs-gpios = <0>, <0>, < 1 0>, <0>, < 5 1>; +num-cs = <5>; + } + +In this case, CS2 will be the dummy chip select and no pin must be configured +with that function. CS0, CS1 and CS3 are just native chip selects and should be +used via pin functions. GPIO1.1 is used as a high active CS and GPIO11.5 a low +active one. + Limitations: * Only a basic SPI driver is implemented. This is mostly a driver limitation and not a hardware one. +* GPIO CS pins on i.MXRT10xx are not tested. The chip has a lot of errate so + they might not work. +* Switching from one mode (CPOL/CPHA) to another one can lead to single wrong + edges on the CLK line if GPIO CS pins are involved. Make sure to stuff a dummy + transfer with `SPI_NO_CS` set if you use multiple modes together with a GPIO + CS. Network Interface Driver -- 2.35.3 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH rtems v2 3/3] bsps/imxrt1166: Disable video_mux
The pinctrl-0 of the video_mux might overwrite pin settings done by other peripherals. Disabling it by default prevents unexpected pin settings. --- bsps/arm/imxrt/dts/imxrt1166-cm7-saltshaker.c | 10 ++ bsps/arm/imxrt/dts/imxrt1166-cm7-saltshaker.dts | 1 + 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/bsps/arm/imxrt/dts/imxrt1166-cm7-saltshaker.c b/bsps/arm/imxrt/dts/imxrt1166-cm7-saltshaker.c index 78e7feda09..e312902ff9 100644 --- a/bsps/arm/imxrt/dts/imxrt1166-cm7-saltshaker.c +++ b/bsps/arm/imxrt/dts/imxrt1166-cm7-saltshaker.c @@ -7,10 +7,10 @@ #include const unsigned char imxrt_dtb[] __attribute__(( __aligned__(8) )) = { - 0xd0, 0x0d, 0xfe, 0xed, 0x00, 0x00, 0x70, 0xf2, 0x00, 0x00, 0x00, 0x38, - 0x00, 0x00, 0x6a, 0xa8, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x11, + 0xd0, 0x0d, 0xfe, 0xed, 0x00, 0x00, 0x71, 0x0a, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x00, 0x6a, 0xc0, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0a, - 0x00, 0x00, 0x6a, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x6a, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, @@ -1836,7 +1836,9 @@ const unsigned char imxrt_dtb[] __attribute__(( __aligned__(8) )) = { 0x40, 0x81, 0x80, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x04, 0xd2, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x05, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x05, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x04, 0xb3, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x61, 0x69, 0x70, 0x73, 0x2d, 0x62, 0x75, 0x73, 0x40, 0x34, 0x30, 0x63, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, diff --git a/bsps/arm/imxrt/dts/imxrt1166-cm7-saltshaker.dts b/bsps/arm/imxrt/dts/imxrt1166-cm7-saltshaker.dts index c961abcd37..0cce861716 100644 --- a/bsps/arm/imxrt/dts/imxrt1166-cm7-saltshaker.dts +++ b/bsps/arm/imxrt/dts/imxrt1166-cm7-saltshaker.dts @@ -125,6 +125,7 @@ _mux { pinctrl-0 = <_video_mux>; + status = "disabled"; }; { -- 2.35.3 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCHES v2] bsps/imxrt: Support GPIO CS for LPSPI; Minor fix for imxrt1166
Hello, I noted some minor bugs in the first version of the patches while using them. So here is a second version. That are BSP specific patches and I now used the driver in this configuration for some time and found no further problems. So if no one objects, I will push the patches in a few days. Best regards Christian ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH rtems v2 1/3] bsps/imx*: imx_gpio from pointer to fdt property
Device trees allow mixing different kinds of GPIOs in one property. For that it is usefull to only provide a pointer to an arbitrary location in the property and initialize a GPIO from that. --- bsps/arm/include/bsp/imx-gpio.h | 26 bsps/arm/shared/pins/imx-gpio.c | 55 ++--- 2 files changed, 69 insertions(+), 12 deletions(-) diff --git a/bsps/arm/include/bsp/imx-gpio.h b/bsps/arm/include/bsp/imx-gpio.h index 148f62a56e..5cda22972f 100644 --- a/bsps/arm/include/bsp/imx-gpio.h +++ b/bsps/arm/include/bsp/imx-gpio.h @@ -76,6 +76,32 @@ struct imx_gpio_pin { */ void imx_gpio_init (struct imx_gpio_pin *pin); +/** + * Initialize a GPIO pin from the fields in an FDT property. + * + * If you have for example the following property in an FDT node: + * + * some-node { + * mixed-stuff = <0>, <_node 1>, < 22 GPIO_ACTIVE_LOW>, <17>; + * }; + * + * You can get the property using fdt_getprop(...) in your code, somehow find + * the right start position (the phandle ) and then pass it to this + * function. + * + * If you pass something != NULL to @a next_prop_pointer, you will get a pointer + * to the next part in the attribute. In the example above, that will be a + * pointer to the <17>. + * + * NOTE: The information from the third parameter in the FDT (GPIO_ACTIVE_LOW in + * the example) is currently ignored. + */ +rtems_status_code imx_gpio_init_from_fdt_property_pointer( + struct imx_gpio_pin *pin, + const uint32_t *prop_pointer, + enum imx_gpio_mode mode, + const uint32_t **next_prop_pointer); + /** * Initialize a GPIO pin from a FDT property. * diff --git a/bsps/arm/shared/pins/imx-gpio.c b/bsps/arm/shared/pins/imx-gpio.c index 8b7d09e864..1e39822b93 100644 --- a/bsps/arm/shared/pins/imx-gpio.c +++ b/bsps/arm/shared/pins/imx-gpio.c @@ -191,12 +191,11 @@ static void imx_gpio_set_interrupt_mode(struct imx_gpio_pin *pin, uint32_t mode) } } -rtems_status_code imx_gpio_init_from_fdt_property ( +rtems_status_code imx_gpio_init_from_fdt_property_pointer ( struct imx_gpio_pin *pin, - int node_offset, - const char *property, + const uint32_t *prop_pointer, enum imx_gpio_mode mode, - size_t index + const uint32_t **next_prop_pointer ) { int len; @@ -205,7 +204,6 @@ rtems_status_code imx_gpio_init_from_fdt_property ( const void *fdt; uint32_t gpio_regs; const unsigned pin_length_dwords = 3; - const unsigned pin_length_bytes = (pin_length_dwords * sizeof(uint32_t)); uint32_t gpio_phandle; uint32_t pin_nr; int cfgnode; @@ -213,16 +211,12 @@ rtems_status_code imx_gpio_init_from_fdt_property ( memset(pin, 0, sizeof(*pin)); fdt = bsp_fdt_get(); - val = fdt_getprop(fdt, node_offset, property, ); - if (val == NULL || (len % pin_length_bytes != 0) || - (index >= len / pin_length_bytes)) { -sc = RTEMS_UNSATISFIED; - } if (sc == RTEMS_SUCCESSFUL) { -pin_nr = fdt32_to_cpu(val[1 + index * pin_length_dwords]); -gpio_phandle = fdt32_to_cpu(val[0 + index * pin_length_dwords]); +pin_nr = fdt32_to_cpu(prop_pointer[1]); +gpio_phandle = fdt32_to_cpu(prop_pointer[0]); cfgnode = fdt_node_offset_by_phandle(fdt, gpio_phandle); +/* FIXME: Check compatible strings here. */ val = fdt_getprop(fdt, cfgnode, "reg", ); if (len > 0) { gpio_regs = fdt32_to_cpu(val[0]); @@ -239,6 +233,43 @@ rtems_status_code imx_gpio_init_from_fdt_property ( if (sc == RTEMS_SUCCESSFUL) { imx_gpio_init(pin); } + if (sc == RTEMS_SUCCESSFUL && next_prop_pointer != NULL) { +*next_prop_pointer = prop_pointer + pin_length_dwords; + } + + return sc; +} + +rtems_status_code imx_gpio_init_from_fdt_property ( + struct imx_gpio_pin *pin, + int node_offset, + const char *property, + enum imx_gpio_mode mode, + size_t index +) +{ + int len; + const uint32_t *val; + rtems_status_code sc = RTEMS_SUCCESSFUL; + const void *fdt; + const unsigned pin_length_dwords = 3; + const unsigned pin_length_bytes = pin_length_dwords * 4; + + memset(pin, 0, sizeof(*pin)); + + fdt = bsp_fdt_get(); + val = fdt_getprop(fdt, node_offset, property, ); + if (val == NULL || (len % pin_length_bytes != 0) || + (index >= len / pin_length_bytes)) { +sc = RTEMS_UNSATISFIED; + } + if (sc == RTEMS_SUCCESSFUL) { +sc = imx_gpio_init_from_fdt_property_pointer( + pin, + val + index * pin_length_dwords, + mode, + NULL); + } return sc; } -- 2.35.3 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: [PATCH] build: Add RTEMS_QUALIFIED
On 13.11.23 22:16, Chris Johns wrote: On 10/11/2023 7:39 pm, Sebastian Huber wrote: On 09.11.23 06:28, Chris Johns wrote: On 8/11/2023 6:44 pm, Sebastian Huber wrote: On 06.11.23 21:55, Chris Johns wrote: On 6/11/2023 8:27 pm, Sebastian Huber wrote: On 06.11.23 01:14, Chris Johns wrote: On 4/11/2023 1:31 am, Sebastian Huber wrote: On 03.11.23 15:08, Joel Sherrill wrote: On Fri, Nov 3, 2023 at 3:58 AM Sebastian Huber mailto:sebastian.hu...@embedded-brains.de>> wrote: The goal of the RTEMS pre-qualification activity #3701 is a specified and validated subset of RTEMS. For users of the pre-qualified subset of RTEMS it is important to not accidentally use not pre-qualified features. One way to achieve this, is to build only the sources of the pre-qualified feature set. This customized build is enabled by the new build configuration option RTEMS_QUALIFIED. If it is enabled, then only the pre-qualified subset of RTEMS is built and installed. Building with RTEMS_QUALIFIED enable is currently only supported for the sparc/leon3 BSP family. To support an RTEMS_QUALIFIED enabled build, changes in the CPU port and the BSP are required to only use features of the pre-qualified feature set. Where is this documented? You mean a documentation of what needs to be done to create pre-qualified BSP? I don't have it available yet. A good place to add this would be the how-to section in the RTEMS Software Engineering manual. This is a very large patch. Are you assuming that if "not qualified" is specified, then it is in the qualified set? No, the logic is reversed. Everything is built by default. Some parts are only enabled if RTEMS_QUALIFIED is not enabled, for example (spec/build/cpukit/objextra.yml): enabled-by: not: RTEMS_QUALIFIED It seems counter intuitive to me. I have no idea about qual work but my limited understanding is everything is controlled yet this is the inverse of that and anything anyone adds will by default be qualified? The goal of this patch set is to place each source and header file of RTEMS into two buckets, the pre-qualified bucket and the extra bucket. For two buckets you need just one option with two values. In the current patch it is RTEMS_QUALIFIED enabled or disabled. I think we should also include in our discussion code contained within this define (or defines) in shared files and how we manage changes to that code? In an ideal world we would not have any need for conditional code however I appreciate this may not be possible or initial achievable. We should however look for approaches that try to avoid this and understand the constraints the define brings. For example can I change code in a qualification or FACE define when I do not know the standards they support? We should avoid using the C preprocessor for the profile customization. For the ECSS pre-qualification, there was no need to do this (with the exception of testbeginend.c, but this could be changed). +1 Since Joel already brought the FACE profile into play, an alternative could be this approach. Lets assume that we pre-qualified the FACE profile interfaces of RTEMS. Use RTEMS_EVERYTHING for the I want everything profile. Use RTEMS_QUALIFIED for the pre-qualified profile. Use RTEMS_FACE_PROFILE for interfaces of the FACE profile. If these are profiles I suggest RTEMS_PROFILE_EVERYTHING so RTEMS_PROFILE_.* can find all profiles? Yes, this make sense. The objects which are not pre-qualified would use this: enabled-by: RTEMS_EVERYTHING RTEMS_PROFILE_COMMERCIAL ? RTEMS_PROFILE_INDUSTRIAL ? RTEMS_PROFILE_RTEMS ? ... or something that reflects what we have always shipped? I borrowed those labels from the way parts are classed. I tend to keep away from labels like new, next, everything etc because they quickly date. The objects which are pre-qualified would use this: enabled-by: - RTEMS_EVERYTHING - RTEMS_QUALIFIED Qualified to what? RTEMS_PROFILE_FACE defines something useful and concrete. Is there an equivalent we could use for the work you have been doing? The selection of the feature set for the ECSS pre-qualification was based on a survey: https://ftp.rtems.org/pub/rtems/people/sebh/rtems-smp-userconsultation-27032019-release.pdf https://ftp.rtems.org/pub/rtems/people/sebh/tn-space-profile-r6-23062019.pdf RTEMS_PROFILE_SPACE ? I just used the name on page 1 of this document. The profile in the patch set is by no means limited to the European space industry. We need a name for the subset of RTEMS which fulfills the 4 rules below. This subset may grow over time and include for example the POSIX threads API. We already have plans to work on this. Yes I agree the set of files covered is not limited to the EU space program however I am confused by a qualification file set that is not explicitly defined for a specific profile. Are you able to define a suitable subset for all possible profiles? Maybe I do
Re: [PATCH] build: Add RTEMS_QUALIFIED
On 2023-11-13 22:16, Chris Johns wrote: On 10/11/2023 7:39 pm, Sebastian Huber wrote: On 09.11.23 06:28, Chris Johns wrote: On 8/11/2023 6:44 pm, Sebastian Huber wrote: On 06.11.23 21:55, Chris Johns wrote: On 6/11/2023 8:27 pm, Sebastian Huber wrote: On 06.11.23 01:14, Chris Johns wrote: On 4/11/2023 1:31 am, Sebastian Huber wrote: On 03.11.23 15:08, Joel Sherrill wrote: On Fri, Nov 3, 2023 at 3:58 AM Sebastian Huber mailto:sebastian.hu...@embedded-brains.de>> wrote: The goal of the RTEMS pre-qualification activity #3701 is a specified and validated subset of RTEMS. For users of the pre-qualified subset of RTEMS it is important to not accidentally use not pre-qualified features. One way to achieve this, is to build only the sources of the pre-qualified feature set. This customized build is enabled by the new build configuration option RTEMS_QUALIFIED. If it is enabled, then only the pre-qualified subset of RTEMS is built and installed. Building with RTEMS_QUALIFIED enable is currently only supported for the sparc/leon3 BSP family. To support an RTEMS_QUALIFIED enabled build, changes in the CPU port and the BSP are required to only use features of the pre-qualified feature set. Where is this documented? You mean a documentation of what needs to be done to create pre-qualified BSP? I don't have it available yet. A good place to add this would be the how-to section in the RTEMS Software Engineering manual. This is a very large patch. Are you assuming that if "not qualified" is specified, then it is in the qualified set? No, the logic is reversed. Everything is built by default. Some parts are only enabled if RTEMS_QUALIFIED is not enabled, for example (spec/build/cpukit/objextra.yml): enabled-by: not: RTEMS_QUALIFIED It seems counter intuitive to me. I have no idea about qual work but my limited understanding is everything is controlled yet this is the inverse of that and anything anyone adds will by default be qualified? The goal of this patch set is to place each source and header file of RTEMS into two buckets, the pre-qualified bucket and the extra bucket. For two buckets you need just one option with two values. In the current patch it is RTEMS_QUALIFIED enabled or disabled. I think we should also include in our discussion code contained within this define (or defines) in shared files and how we manage changes to that code? In an ideal world we would not have any need for conditional code however I appreciate this may not be possible or initial achievable. We should however look for approaches that try to avoid this and understand the constraints the define brings. For example can I change code in a qualification or FACE define when I do not know the standards they support? We should avoid using the C preprocessor for the profile customization. For the ECSS pre-qualification, there was no need to do this (with the exception of testbeginend.c, but this could be changed). +1 Since Joel already brought the FACE profile into play, an alternative could be this approach. Lets assume that we pre-qualified the FACE profile interfaces of RTEMS. Use RTEMS_EVERYTHING for the I want everything profile. Use RTEMS_QUALIFIED for the pre-qualified profile. Use RTEMS_FACE_PROFILE for interfaces of the FACE profile. If these are profiles I suggest RTEMS_PROFILE_EVERYTHING so RTEMS_PROFILE_.* can find all profiles? Yes, this make sense. The objects which are not pre-qualified would use this: enabled-by: RTEMS_EVERYTHING RTEMS_PROFILE_COMMERCIAL ? RTEMS_PROFILE_INDUSTRIAL ? RTEMS_PROFILE_RTEMS ? ... or something that reflects what we have always shipped? I borrowed those labels from the way parts are classed. I tend to keep away from labels like new, next, everything etc because they quickly date. The objects which are pre-qualified would use this: enabled-by: - RTEMS_EVERYTHING - RTEMS_QUALIFIED Qualified to what? RTEMS_PROFILE_FACE defines something useful and concrete. Is there an equivalent we could use for the work you have been doing? The selection of the feature set for the ECSS pre-qualification was based on a survey: https://ftp.rtems.org/pub/rtems/people/sebh/rtems-smp-userconsultation-27032019-release.pdf https://ftp.rtems.org/pub/rtems/people/sebh/tn-space-profile-r6-23062019.pdf RTEMS_PROFILE_SPACE ? I just used the name on page 1 of this document. The profile in the patch set is by no means limited to the European space industry. We need a name for the subset of RTEMS which fulfills the 4 rules below. This subset may grow over time and include for example the POSIX threads API. We already have plans to work on this. Yes I agree the set of files covered is not limited to the EU space program however I am confused by a qualification file set that is not explicitly defined for a specific profile. Are you able to define a suitable subset for all possible
[RSB 1/3] 6/7: Update Newlib
Pick up fixes for ARM/optimized-routines and the memory reclamation at thread exit. Update #4510. Update #4967. --- rtems/config/tools/rtems-gcc-10-newlib-head.cfg | 4 ++-- rtems/config/tools/rtems-gcc-10.4-newlib-head.cfg | 4 ++-- rtems/config/tools/rtems-gcc-12-newlib-head.cfg | 4 ++-- rtems/config/tools/rtems-gcc-13-newlib-head.cfg | 4 ++-- rtems/config/tools/rtems-gcc-13.2-newlib-head.cfg | 4 ++-- rtems/config/tools/rtems-gcc-head-newlib-head.cfg | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/rtems/config/tools/rtems-gcc-10-newlib-head.cfg b/rtems/config/tools/rtems-gcc-10-newlib-head.cfg index 6668bc6..387e8c9 100644 --- a/rtems/config/tools/rtems-gcc-10-newlib-head.cfg +++ b/rtems/config/tools/rtems-gcc-10-newlib-head.cfg @@ -14,12 +14,12 @@ %patch add gcc -p1 https://devel.rtems.org/raw-attachment/ticket/4215/0001-nios2-Remove-custom-instruction-warnings.patch %hash sha512 0001-nios2-Remove-custom-instruction-warnings.patch afd8a5e6bdcc5b75d5fbbf558bdf56ccac400521a6eec9d88cc95f6be67c481f2dbf8faa0f6ddc1e4ac7c56a84938714d80e46e9cf80ec4b8fcd739986449881 -%define newlib_version fbc5496 +%define newlib_version 3cacedb %define newlib_external 1 %define newlib_expand_name sourceware-mirror-newlib-cygwin-%{newlib_version} %source set newlib --rsb-file=newlib-%{newlib_version}.tar.gz https://codeload.github.com/RTEMS/sourceware-mirror-newlib-cygwin/tar.gz/%{newlib_version} %hash sha512 newlib-%{newlib_version}.tar.gz \ - AFwyCjHHXfddx/lUcJbmcxSFOYtfj8cshzthqF9B2OtZxxxN/NQ8O+znhUPKDv20KjOBEMGh4VHpoiFBjZOrmA== + ia0ce+bdENUO3qYj00jrZB8FjSejmTWuRqEdNE8nI2llf30mh8leUn5fCoHB0Oa7rRVBjEu3n0F12ZK9skuegQ== %define with_threads 1 %define with_plugin 0 diff --git a/rtems/config/tools/rtems-gcc-10.4-newlib-head.cfg b/rtems/config/tools/rtems-gcc-10.4-newlib-head.cfg index dae3d2a..b37af1e 100644 --- a/rtems/config/tools/rtems-gcc-10.4-newlib-head.cfg +++ b/rtems/config/tools/rtems-gcc-10.4-newlib-head.cfg @@ -17,12 +17,12 @@ %patch add gcc -p1 https://devel.rtems.org/raw-attachment/ticket/4215/0001-nios2-Remove-custom-instruction-warnings.patch %hash sha512 0001-nios2-Remove-custom-instruction-warnings.patch afd8a5e6bdcc5b75d5fbbf558bdf56ccac400521a6eec9d88cc95f6be67c481f2dbf8faa0f6ddc1e4ac7c56a84938714d80e46e9cf80ec4b8fcd739986449881 -%define newlib_version fbc5496 +%define newlib_version 3cacedb %define newlib_external 1 %define newlib_expand_name sourceware-mirror-newlib-cygwin-%{newlib_version} %source set newlib --rsb-file=newlib-%{newlib_version}.tar.gz https://codeload.github.com/RTEMS/sourceware-mirror-newlib-cygwin/tar.gz/%{newlib_version} %hash sha512 newlib-%{newlib_version}.tar.gz \ - AFwyCjHHXfddx/lUcJbmcxSFOYtfj8cshzthqF9B2OtZxxxN/NQ8O+znhUPKDv20KjOBEMGh4VHpoiFBjZOrmA== + ia0ce+bdENUO3qYj00jrZB8FjSejmTWuRqEdNE8nI2llf30mh8leUn5fCoHB0Oa7rRVBjEu3n0F12ZK9skuegQ== %define with_threads 1 %define with_plugin 0 diff --git a/rtems/config/tools/rtems-gcc-12-newlib-head.cfg b/rtems/config/tools/rtems-gcc-12-newlib-head.cfg index 9fe1ddd..4a0c6d1 100644 --- a/rtems/config/tools/rtems-gcc-12-newlib-head.cfg +++ b/rtems/config/tools/rtems-gcc-12-newlib-head.cfg @@ -34,13 +34,13 @@ KEmxHjYOqY4LTXCMZ3I60tbHusbR5GlnP0CLARHPAnhCnovDj9K3U43C1bsMxDDGRqD6fwtrEFoEgqVFX63IuQ== # Comment above related to #4657 and patches ends here -%define newlib_version fbc5496 +%define newlib_version 3cacedb %define newlib_external 1 %define newlib_expand_name sourceware-mirror-newlib-cygwin-%{newlib_version} %source set newlib --rsb-file=newlib-%{newlib_version}.tar.gz \ https://codeload.github.com/RTEMS/sourceware-mirror-newlib-cygwin/tar.gz/%{newlib_version} %hash sha512 newlib-%{newlib_version}.tar.gz \ - AFwyCjHHXfddx/lUcJbmcxSFOYtfj8cshzthqF9B2OtZxxxN/NQ8O+znhUPKDv20KjOBEMGh4VHpoiFBjZOrmA== + ia0ce+bdENUO3qYj00jrZB8FjSejmTWuRqEdNE8nI2llf30mh8leUn5fCoHB0Oa7rRVBjEu3n0F12ZK9skuegQ== %define with_threads 1 %define with_plugin 0 diff --git a/rtems/config/tools/rtems-gcc-13-newlib-head.cfg b/rtems/config/tools/rtems-gcc-13-newlib-head.cfg index 7d5f610..5529563 100644 --- a/rtems/config/tools/rtems-gcc-13-newlib-head.cfg +++ b/rtems/config/tools/rtems-gcc-13-newlib-head.cfg @@ -8,12 +8,12 @@ %hash sha512 %{gcc_expand_name}.tar.gz \ nKBXN9Qt/9CRYDVOp1geQdshXDP/kvr82RV1fE1LVIxNCbAVvhRmqz1p5kycg24T3TNGHPN58RySceaYgc6sCw== -%define newlib_version fbc5496 +%define newlib_version 3cacedb %define newlib_external 1 %define newlib_expand_name sourceware-mirror-newlib-cygwin-%{newlib_version} %source set newlib --rsb-file=newlib-%{newlib_version}.tar.gz https://codeload.github.com/RTEMS/sourceware-mirror-newlib-cygwin/tar.gz/%{newlib_version} %hash sha512 newlib-%{newlib_version}.tar.gz \ - AFwyCjHHXfddx/lUcJbmcxSFOYtfj8cshzthqF9B2OtZxxxN/NQ8O+znhUPKDv20KjOBEMGh4VHpoiFBjZOrmA== + ia0ce+bdENUO3qYj00jrZB8FjSejmTWuRqEdNE8nI2llf30mh8leUn5fCoHB0Oa7rRVBjEu3n0F12ZK9skuegQ== %define with_threads 1 %define with_plugin 0
[RSB 2/3] 6: Update GCC 12 and 13
Keep RTEMS up to date with the upstream development. --- rtems/config/tools/rtems-gcc-12-newlib-head.cfg | 4 ++-- rtems/config/tools/rtems-gcc-13-newlib-head.cfg | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/rtems/config/tools/rtems-gcc-12-newlib-head.cfg b/rtems/config/tools/rtems-gcc-12-newlib-head.cfg index 4a0c6d1..4a31a50 100644 --- a/rtems/config/tools/rtems-gcc-12-newlib-head.cfg +++ b/rtems/config/tools/rtems-gcc-12-newlib-head.cfg @@ -1,12 +1,12 @@ %include %{_configdir}/checks.cfg %include %{_configdir}/base.cfg -%define gcc_version 814ec21 +%define gcc_version a285310 %define gcc_external 1 %define gcc_expand_name gnu-mirror-gcc-%{gcc_version} %source set gcc --rsb-file=%{gcc_expand_name}.tar.gz https://codeload.github.com/RTEMS/gnu-mirror-gcc/tar.gz/%{gcc_version} %hash sha512 %{gcc_expand_name}.tar.gz \ - JyGpbsqRctCanDzH/sHmem+iJMXvQe2x8ZairztM034/vcElNQSMNgb2jICgdDWH032wrJOk5IYcZoA0fJx4Zw== + sYxUkDJD7qaCzXndAljnAQMbmssg7AY97cBAMjwqDSC6vxseGSzvO8LGMW46ASM6Zq2frKj8XVj27GnPmwSIXQ== %patch add gcc -p1 https://devel.rtems.org/raw-attachment/ticket/4196/0001-Back-port-v1-of-gcov-tool-merge-stream-to-GCC-12.patch %hash sha512 0001-Back-port-v1-of-gcov-tool-merge-stream-to-GCC-12.patch \ diff --git a/rtems/config/tools/rtems-gcc-13-newlib-head.cfg b/rtems/config/tools/rtems-gcc-13-newlib-head.cfg index 5529563..efd546b 100644 --- a/rtems/config/tools/rtems-gcc-13-newlib-head.cfg +++ b/rtems/config/tools/rtems-gcc-13-newlib-head.cfg @@ -1,12 +1,12 @@ %include %{_configdir}/checks.cfg %include %{_configdir}/base.cfg -%define gcc_version f37fae5 +%define gcc_version 8c04837 %define gcc_external 1 %define gcc_expand_name gnu-mirror-gcc-%{gcc_version} %source set gcc --rsb-file=%{gcc_expand_name}.tar.gz https://codeload.github.com/RTEMS/gnu-mirror-gcc/tar.gz/%{gcc_version} %hash sha512 %{gcc_expand_name}.tar.gz \ - nKBXN9Qt/9CRYDVOp1geQdshXDP/kvr82RV1fE1LVIxNCbAVvhRmqz1p5kycg24T3TNGHPN58RySceaYgc6sCw== + YSkX/JY61N+I4CPkJInUNGzwhb+uv+YNs9qcTxxJhg/HpGD5vI9duEPNw++F3y8J4re87DPJGIzV5DsFUBCJnA== %define newlib_version 3cacedb %define newlib_external 1 -- 2.35.3 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[RSB 3/3] 7: Update Binutils, GDB, and GCC
Keep RTEMS up to date with the upstream development. --- rtems/config/tools/rtems-binutils-head.cfg| 4 ++-- rtems/config/tools/rtems-gcc-head-newlib-head.cfg | 4 ++-- rtems/config/tools/rtems-gdb-head.cfg | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/rtems/config/tools/rtems-binutils-head.cfg b/rtems/config/tools/rtems-binutils-head.cfg index 3c38aae..3516d2c 100644 --- a/rtems/config/tools/rtems-binutils-head.cfg +++ b/rtems/config/tools/rtems-binutils-head.cfg @@ -1,12 +1,12 @@ %include %{_configdir}/checks.cfg %include %{_configdir}/base.cfg -%define binutils_version 29736fc +%define binutils_version eb42bb1 %define binutils_external 1 %define binutils_expand_name sourceware-mirror-binutils-gdb-%{binutils_version} %source set binutils --rsb-file=%{binutils_expand_name}.tar.gz https://codeload.github.com/RTEMS/sourceware-mirror-binutils-gdb/tar.gz/%{binutils_version} %hash sha512 %{binutils_expand_name}.tar.gz \ - REf+CTG4FMoi5tVGd+ec1a2sexHCn6rNGWM7MjBIeOGKQvat/2GYXolOyIEDoITiCZSENAqwbzyc1fS3/3ndVA== + qDuLOqwQ/kQX30hIu5UVDqMuKjnpoKTEZ4xo85lrzq6VtnCd6nwdO5t9szbhJc4P1UWww9rRNMcqj7d2BKeNqg== %define with_deterministic_archives 1 %define with_64_bit_bfd 1 diff --git a/rtems/config/tools/rtems-gcc-head-newlib-head.cfg b/rtems/config/tools/rtems-gcc-head-newlib-head.cfg index c65576e..c4f2aa3 100644 --- a/rtems/config/tools/rtems-gcc-head-newlib-head.cfg +++ b/rtems/config/tools/rtems-gcc-head-newlib-head.cfg @@ -1,12 +1,12 @@ %include %{_configdir}/checks.cfg %include %{_configdir}/base.cfg -%define gcc_version af4bb22 +%define gcc_version 41aacde %define gcc_external 1 %define gcc_expand_name gnu-mirror-gcc-%{gcc_version} %source set gcc --rsb-file=%{gcc_expand_name}.tar.gz https://codeload.github.com/RTEMS/gnu-mirror-gcc/tar.gz/%{gcc_version} %hash sha512 %{gcc_expand_name}.tar.gz \ - /xNCazIZxy7diP2R1RUChqhEuQIZdD4otPeHyN48g1LiFbgPaUNZ167RDPCXkQEVVf31g/LvYFqicxeXMwj8cQ== + xPwSCLLXsJfFKontgrGlU9ep/PVlP3bQOGbgRCG0mj8sD5dq2ifo5VOwGwVMRQD0VFVVOWqeykq3OVkZYlu1GA== %define newlib_version 3cacedb %define newlib_external 1 diff --git a/rtems/config/tools/rtems-gdb-head.cfg b/rtems/config/tools/rtems-gdb-head.cfg index 2bda4fb..17ecee8 100644 --- a/rtems/config/tools/rtems-gdb-head.cfg +++ b/rtems/config/tools/rtems-gdb-head.cfg @@ -1,11 +1,11 @@ %include %{_configdir}/checks.cfg %include %{_configdir}/base.cfg -%define gdb_version 29736fc +%define gdb_version eb42bb1 %define gdb_external 1 %define gdb_expand_name sourceware-mirror-binutils-gdb-%{gdb_version} %source set gdb --rsb-file=%{gdb_expand_name}.tar.gz https://codeload.github.com/RTEMS/sourceware-mirror-binutils-gdb/tar.gz/%{gdb_version} %hash sha512 %{gdb_expand_name}.tar.gz \ - REf+CTG4FMoi5tVGd+ec1a2sexHCn6rNGWM7MjBIeOGKQvat/2GYXolOyIEDoITiCZSENAqwbzyc1fS3/3ndVA== + qDuLOqwQ/kQX30hIu5UVDqMuKjnpoKTEZ4xo85lrzq6VtnCd6nwdO5t9szbhJc4P1UWww9rRNMcqj7d2BKeNqg== %include %{_configdir}/gdb-8-1.cfg -- 2.35.3 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: [PATCH rtems v2] once.c, onceimplh.h: Make synchronization variable volatile
On 20.11.23 18:42, Joel Sherrill wrote: The loop that waits for another thread to complete the once initialization was flagged as a potential infinite loop. This is because there was no way to break out of the loop inside the loop. The solution is to make the state variable volatile which indicates it may be modified by another thread of execution. This was flagged by a user Coverity Scan run which apparently is configured differently from the instance provided by Coverity to open source projects. This is a configuration issue of Coverity Scan. You have to teach Coverity Scan something about: _Atomic_Fence( ATOMIC_ORDER_ACQUIRE ); _Atomic_Fence( ATOMIC_ORDER_RELEASE ); rtems_mutex_lock(); rtems_condition_variable_wait(); rtems_mutex_unlock(); Using "volatile" for multi-threaded synchronization is not correct in C11 or later. This keyword is for device access. For multi-threaded synchronization you need atomic operations or mutexes, etc. From my point of view, Coverity Scan should warn if you use volatile for multi-threaded synchronization. -- embedded brains GmbH Herr Sebastian HUBER Dornierstr. 4 82178 Puchheim Germany email: sebastian.hu...@embedded-brains.de phone: +49-89-18 94 741 - 16 fax: +49-89-18 94 741 - 08 Registergericht: Amtsgericht München Registernummer: HRB 157899 Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler Unsere Datenschutzerklärung finden Sie hier: https://embedded-brains.de/datenschutzerklaerung/ ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: [PATCH] 6: Use Binutils 2.41
On 03.08.23 09:37, Sebastian Huber wrote: What about this patch and the GCC update to 13.2? Ping. -- embedded brains GmbH Herr Sebastian HUBER Dornierstr. 4 82178 Puchheim Germany email: sebastian.hu...@embedded-brains.de phone: +49-89-18 94 741 - 16 fax: +49-89-18 94 741 - 08 Registergericht: Amtsgericht München Registernummer: HRB 157899 Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler Unsere Datenschutzerklärung finden Sie hier: https://embedded-brains.de/datenschutzerklaerung/ ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: [PATCH] 6: Use GCC 13.2
On 12.09.23 08:43, Sebastian Huber wrote: On 12.09.23 08:40, Chris Johns wrote: On 12/9/2023 4:31 pm, Sebastian Huber wrote: On 27.07.23 13:33, Sebastian Huber wrote: Prepare for RTEMS 6.1 release. Update #4921. How do we want to proceed with the tools for the RTEMS 6.1 release? I need to move 6 to tar files but other tickets have taken what time I had. The patch uses a tar file for GCC. I guess for Newlib we have to host an archive. Is GCC 13.2 still the desired GCC release? What is the alternative? Do we need one? GCC 13.2 is the best option from my point of view right now. Can I check in the update to GCC 13.2? -- embedded brains GmbH Herr Sebastian HUBER Dornierstr. 4 82178 Puchheim Germany email: sebastian.hu...@embedded-brains.de phone: +49-89-18 94 741 - 16 fax: +49-89-18 94 741 - 08 Registergericht: Amtsgericht München Registernummer: HRB 157899 Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler Unsere Datenschutzerklärung finden Sie hier: https://embedded-brains.de/datenschutzerklaerung/ ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel