Four SMP tests fails after recent commit
Hi, When I rebased earlier this week four SMP test now fails (smp03, smppsxaffinity01, smpschedaffinity04, smpschedaffinity05). After some testing it turns out that after commit cfc4231d8fe1056fa501508a929c8ccaa1dd11be ("score: Add flexible per-CPU data") the tests fails when creating tasks with rtems_task_create() due to Task stack allocation fails. 0) _Heap_Allocate_aligned_with_boundary(alloc_size=4096,alignment=0,boundary=0) 1) stack_addr = (*stack_allocate_hook)( the_stack_size ); 2) _Thread_Stack_Allocate( the_thread, stack_size ); 3) _Thread_Initialize() 4) rtems_task_create() --- testsuites/smptests/smp03/system.h | 2 ++ testsuites/smptests/smppsxaffinity01/init.c | 2 ++ testsuites/smptests/smpschedaffinity04/init.c | 2 ++ testsuites/smptests/smpschedaffinity05/init.c | 2 ++ 4 files changed, 8 insertions(+) diff --git a/testsuites/smptests/smp03/system.h b/testsuites/smptests/smp03/system.h index a5bcd06..43e02b3 100644 --- a/testsuites/smptests/smp03/system.h +++ b/testsuites/smptests/smp03/system.h @@ -30,6 +30,8 @@ rtems_task Test_task( #define CONFIGURE_MAXIMUM_TASKS \ (1 + CONFIGURE_MAXIMUM_PROCESSORS) +#define CONFIGURE_EXTRA_TASK_STACKS CONFIGURE_MINIMUM_TASK_STACK_SIZE + #define CONFIGURE_MAXIMUM_SEMAPHORES 1 #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION diff --git a/testsuites/smptests/smppsxaffinity01/init.c b/testsuites/smptests/smppsxaffinity01/init.c index 56a0078..fb1e347 100644 --- a/testsuites/smptests/smppsxaffinity01/init.c +++ b/testsuites/smptests/smppsxaffinity01/init.c @@ -160,6 +160,8 @@ void *POSIX_Init( #define CONFIGURE_MAXIMUM_POSIX_THREADS 1 +#define CONFIGURE_EXTRA_TASK_STACKS CONFIGURE_MINIMUM_TASK_STACK_SIZE + #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION #define CONFIGURE_POSIX_INIT_THREAD_TABLE diff --git a/testsuites/smptests/smpschedaffinity04/init.c b/testsuites/smptests/smpschedaffinity04/init.c index e526746..50aadd8 100644 --- a/testsuites/smptests/smpschedaffinity04/init.c +++ b/testsuites/smptests/smpschedaffinity04/init.c @@ -172,6 +172,8 @@ static void Init(rtems_task_argument arg) #define CONFIGURE_MAXIMUM_TASKS TASK_COUNT +#define CONFIGURE_EXTRA_TASK_STACKS CONFIGURE_MINIMUM_TASK_STACK_SIZE + #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION #define CONFIGURE_INIT_TASK_PRIORITY 8 diff --git a/testsuites/smptests/smpschedaffinity05/init.c b/testsuites/smptests/smpschedaffinity05/init.c index 632cbef..58c565d 100644 --- a/testsuites/smptests/smpschedaffinity05/init.c +++ b/testsuites/smptests/smpschedaffinity05/init.c @@ -235,6 +235,8 @@ static void Init(rtems_task_argument arg) #define CONFIGURE_MAXIMUM_TASKS TASK_COUNT +#define CONFIGURE_EXTRA_TASK_STACKS CONFIGURE_MINIMUM_TASK_STACK_SIZE + #define CONFIGURE_MAXIMUM_SEMAPHORES 1 #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION -- Has anyone seen this also? I'm using the GR740 BSP in SMP configuration. /Daniel ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: Four SMP tests fails after recent commit
Hello Daniel, On 19/09/2018 11:32, Daniel Hellstrom wrote: Hi, When I rebased earlier this week four SMP test now fails (smp03, smppsxaffinity01, smpschedaffinity04, smpschedaffinity05). After some testing it turns out that after commit cfc4231d8fe1056fa501508a929c8ccaa1dd11be ("score: Add flexible per-CPU data") the tests fails when creating tasks with rtems_task_create() due to Task stack allocation fails. 0) _Heap_Allocate_aligned_with_boundary(alloc_size=4096,alignment=0,boundary=0) 1) stack_addr = (*stack_allocate_hook)( the_stack_size ); 2) _Thread_Stack_Allocate( the_thread, stack_size ); 3) _Thread_Initialize() 4) rtems_task_create() these tests didn't fail on ARM and PowerPC. I guess this is due to an overestimate of the workspace size. Could you please check if the following commit fixed the issue on SPARC: https://git.rtems.org/rtems/commit/?id=776464aad46cd317b9707870acc5f6be5531e15a -- Sebastian Huber, embedded brains GmbH Address : Dornierstr. 4, D-82178 Puchheim, Germany Phone : +49 89 189 47 41-16 Fax : +49 89 189 47 41-09 E-Mail : sebastian.hu...@embedded-brains.de PGP : Public key available on request. Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG. ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: Four SMP tests fails after recent commit
Thanks for looking into it Sebastian. I will try it out now. On 2018-09-19 12:00, Sebastian Huber wrote: Hello Daniel, On 19/09/2018 11:32, Daniel Hellstrom wrote: Hi, When I rebased earlier this week four SMP test now fails (smp03, smppsxaffinity01, smpschedaffinity04, smpschedaffinity05). After some testing it turns out that after commit cfc4231d8fe1056fa501508a929c8ccaa1dd11be ("score: Add flexible per-CPU data") the tests fails when creating tasks with rtems_task_create() due to Task stack allocation fails. 0) _Heap_Allocate_aligned_with_boundary(alloc_size=4096,alignment=0,boundary=0) 1) stack_addr = (*stack_allocate_hook)( the_stack_size ); 2) _Thread_Stack_Allocate( the_thread, stack_size ); 3) _Thread_Initialize() 4) rtems_task_create() these tests didn't fail on ARM and PowerPC. I guess this is due to an overestimate of the workspace size. Could you please check if the following commit fixed the issue on SPARC: https://git.rtems.org/rtems/commit/?id=776464aad46cd317b9707870acc5f6be5531e15a ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: Four SMP tests fails after recent commit
It works now with your patch. Thanks again. Daniel On 2018-09-19 12:23, Daniel Hellstrom wrote: Thanks for looking into it Sebastian. I will try it out now. On 2018-09-19 12:00, Sebastian Huber wrote: Hello Daniel, On 19/09/2018 11:32, Daniel Hellstrom wrote: Hi, When I rebased earlier this week four SMP test now fails (smp03, smppsxaffinity01, smpschedaffinity04, smpschedaffinity05). After some testing it turns out that after commit cfc4231d8fe1056fa501508a929c8ccaa1dd11be ("score: Add flexible per-CPU data") the tests fails when creating tasks with rtems_task_create() due to Task stack allocation fails. 0) _Heap_Allocate_aligned_with_boundary(alloc_size=4096,alignment=0,boundary=0) 1) stack_addr = (*stack_allocate_hook)( the_stack_size ); 2) _Thread_Stack_Allocate( the_thread, stack_size ); 3) _Thread_Initialize() 4) rtems_task_create() these tests didn't fail on ARM and PowerPC. I guess this is due to an overestimate of the workspace size. Could you please check if the following commit fixed the issue on SPARC: https://git.rtems.org/rtems/commit/?id=776464aad46cd317b9707870acc5f6be5531e15a ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
GR740-SMP BSP test results (gcc-7.2)
Hi, I just wanted to share the current test status for the GR740 I have today, using the todays master with some additional test fixes which I plan to submit shortly. The test have been run both on TSIM and hardware. Current test results for the RTEMS test-suite with GCC-7.2 toolchain for the GR740 quad-core LEON4 BSP in SMP driver manager configuration: ### # RTEMS TESTSUITE FAILURE SUMMARY # # Result Test ExecRes ConsoleRes ExitCode1 ExitCode2 # FAIL: minimum OK N/A 0 5 # FAIL: spcpucounter01 OK FAIL 5 0 # FAIL: spfatal07 FAIL N/A N/A N/A # FAIL: spinternalerror01 OK N/A -559038737 1611526157 # FAIL: sptimecounter01 OK N/A 5 0 # # SUMMARY # Tests failing: 5 # Tests successful: 624 # ### spfatal07 - problem with the test itself. CONFIGURE_INTERRUPT_STACK_SIZE is too small, the boot process fails before reaching the check. This is a new behavior since interrupt stack is also used by the CPU for initialization/boot process. Best Regards, -- Daniel Hellstrom Software Section Head Cobham Gaisler T : +46 (0) 31 775 8657 F : +46 (0) 31 421407 daniel.hellst...@gaisler.com Cobham Gaisler AB, Kungsgatan 12, SE-411 19, GÖTEBORG, Sweden. +46 (0) 31 775 8650, www.cobham.com/gaisler Please consider the environment before printing this email This e-mail and any files transmitted with it ("E-mail") is intended solely for the addressee(s) and may contain confidential and/or legally privileged information. If you are not the addressee(s), any disclosure, reproduction, copying, distribution or other use of the E-mail is prohibited. If you have received this E-mail in error, please delete it and notify the sender immediately via our switchboard or return e-mail. Neither the company nor any subsidiary or affiliate or associated company nor any individual sending this Email accepts any liability in respect of the content (including errors and omissions) nor shall this e-mail be deemed to enter the company or any subsidiary or affiliate or associated company into a contract or to create any legally binding obligations unless expressly agreed to in writing under separate cover and timeliness of the E-mail which arise as a result of transmission. If verification is required, please request a hard copy version from the sender. ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH] sparc: Remove sequence that could trigger B2BST errata
From: Daniel Cederman --- cpukit/score/cpu/sparc/syscall.S | 2 -- 1 file changed, 2 deletions(-) diff --git a/cpukit/score/cpu/sparc/syscall.S b/cpukit/score/cpu/sparc/syscall.S index 574cf66..603ed7a 100644 --- a/cpukit/score/cpu/sparc/syscall.S +++ b/cpukit/score/cpu/sparc/syscall.S @@ -212,9 +212,7 @@ SYM(syscall_lazy_fp_switch): std %f30, [%l5 + SPARC_FP_CONTEXT_OFFSET_F30_F31] SPARC_LEON3FT_B2BST_NOP st %fsr, [%l5 + SPARC_FP_CONTEXT_OFFSET_FSR] - SPARC_LEON3FT_B2BST_NOP st %g0, [%g6 + SPARC_PER_CPU_FP_OWNER_OFFSET] - SPARC_LEON3FT_B2BST_NOP st %l5, [%l7 + %lo(SPARC_THREAD_CONTROL_REGISTERS_FP_CONTEXT_OFFSET)] .Lfp_save_done: -- 2.7.4 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH] leon3, ckinit: avoid unsued code warnings when drvmgr is enabled
--- bsps/sparc/shared/btimer/tlib_ckinit.c | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/bsps/sparc/shared/btimer/tlib_ckinit.c b/bsps/sparc/shared/btimer/tlib_ckinit.c index 3e2feb1..6643335 100644 --- a/bsps/sparc/shared/btimer/tlib_ckinit.c +++ b/bsps/sparc/shared/btimer/tlib_ckinit.c @@ -67,14 +67,17 @@ struct ops { * clock (tick) timer in SMP configuration. */ +#ifndef RTEMS_SMP /* "simple timecounter" interface. Only for non-SMP. */ static const struct ops ops_simple; +#else /* Hardware support up-counter using LEON3 %asr23. */ static const struct ops ops_timetag; /* Timestamp counter available in some IRQ(A)MP instantiations. */ static const struct ops ops_irqamp; /* Separate GPTIMER subtimer as timecounter */ static const struct ops ops_subtimer; +#endif struct clock_priv { const struct ops *ops; @@ -174,6 +177,7 @@ static rtems_device_driver tlib_clock_install_isr(rtems_isr *isr) return RTEMS_SUCCESSFUL; } +#ifndef RTEMS_SMP /** Simple counter **/ static uint32_t simple_tlib_tc_get(rtems_timecounter_simple *tc) { @@ -257,6 +261,8 @@ static const struct ops ops_simple = { .shutdown_hardware = NULL, }; +#else + /** Subtimer as counter **/ static uint32_t subtimer_get_timecount(struct timecounter *tc) { @@ -316,7 +322,6 @@ static const struct ops ops_subtimer = { .shutdown_hardware = subtimer_shutdown_hardware, }; -#if defined(LEON3) /** DSU timetag as counter **/ static uint32_t timetag_get_timecount(struct timecounter *tc) { @@ -346,9 +351,7 @@ static const struct ops ops_timetag = { .timecounter_tick = timetag_timecounter_tick, .shutdown_hardware = NULL, }; -#endif -#if defined(LEON3) /** IRQ(A)MP timestamp as counter **/ static uint32_t irqamp_get_timecount(struct timecounter *tc) { -- 2.7.4 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH] leon, l2cache: workaround for scrubber
From: Martin Aberg This is a workaround for a L2CACHE scrubber corner case described in GR740 User's Manual, Version 1.10, section 43.2.30. The issue affects some version of the L2CACHE. However, since the performance impact of the workaround is marginal, special device probing logic has been avoided. In addition, this update does not affect users who enable the L2CACHE and scrubber before RTEMS is started. --- bsps/sparc/shared/l2c/l2c.c | 8 1 file changed, 8 insertions(+) diff --git a/bsps/sparc/shared/l2c/l2c.c b/bsps/sparc/shared/l2c/l2c.c index 7b17f8b..89b0f40 100644 --- a/bsps/sparc/shared/l2c/l2c.c +++ b/bsps/sparc/shared/l2c/l2c.c @@ -241,6 +241,8 @@ /* * L2CACHE ACCESS CONTROL register fields */ +#define L2C_ACCCTRL_DSC (0x1 << L2C_ACCCTRL_DSC_BIT) +#define L2C_ACCCTRL_SH (0x1 << L2C_ACCCTRL_SH_BIT) #define L2C_ACCCTRL_SPLITQ (0x1 << L2C_ACCCTRL_SPLITQ_BIT) #define L2C_ACCCTRL_NHM (0x1 << L2C_ACCCTRL_NHM_BIT) #define L2C_ACCCTRL_BERR (0x1 << L2C_ACCCTRL_BERR_BIT) @@ -251,6 +253,8 @@ #define L2C_ACCCTRL_DBPWS (0x1 << L2C_ACCCTRL_DBPWS_BIT) #define L2C_ACCCTRL_SPLIT (0x1 << L2C_ACCCTRL_SPLIT_BIT) +#define L2C_ACCCTRL_DSC_BIT 14 +#define L2C_ACCCTRL_SH_BIT 13 #define L2C_ACCCTRL_SPLITQ_BIT 10 #define L2C_ACCCTRL_NHM_BIT 9 #define L2C_ACCCTRL_BERR_BIT 8 @@ -672,6 +676,10 @@ STATIC INLINE int l2cache_reg_scrub_enable(int delay) { struct l2cache_priv *priv = l2cachepriv; + unsigned int accc = REG_READ(&priv->regs->access_control); + REG_WRITE(&priv->regs->access_control, + accc | L2C_ACCCTRL_DSC | L2C_ACCCTRL_SH); + unsigned int ctrl = REG_READ(&priv->regs->scrub_control_status); REG_WRITE(&priv->regs->scrub_delay, (delay << L2C_SCRUB_DEL_BIT) & L2C_SCRUB_DEL); -- 2.7.4 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH] leon: substitute printf with printk in driver init
--- bsps/sparc/shared/iommu/griommu.c | 3 ++- bsps/sparc/shared/l2c/l2c.c | 2 +- bsps/sparc/shared/pci/gr_701.c | 14 +++--- bsps/sparc/shared/pci/gr_cpci_gr740.c | 12 ++-- bsps/sparc/shared/pci/gr_leon4_n2x.c| 12 ++-- bsps/sparc/shared/pci/gr_rasta_adcdac.c | 14 +++--- bsps/sparc/shared/pci/gr_rasta_io.c | 14 +++--- bsps/sparc/shared/pci/gr_rasta_spw_router.c | 13 ++--- bsps/sparc/shared/pci/gr_rasta_tmtc.c | 14 +++--- bsps/sparc/shared/pci/gr_tmtc_1553.c| 12 ++-- bsps/sparc/shared/pci/grpci.c | 2 +- bsps/sparc/shared/pci/grpci2.c | 2 +- bsps/sparc/shared/pci/pcif.c| 4 ++-- bsps/sparc/shared/spi/spictrl.c | 2 +- 14 files changed, 60 insertions(+), 60 deletions(-) diff --git a/bsps/sparc/shared/iommu/griommu.c b/bsps/sparc/shared/iommu/griommu.c index c70219a..c6c87df 100644 --- a/bsps/sparc/shared/iommu/griommu.c +++ b/bsps/sparc/shared/iommu/griommu.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include @@ -371,7 +372,7 @@ int griommu_init1(struct drvmgr_dev *dev) /* Initialize GRIOMMU Hardware */ status = griommu_init(priv); if (status) { - printf("Failed to initialize griommu driver %d\n", status); + printk("Failed to initialize griommu driver %d\n", status); return -1; } diff --git a/bsps/sparc/shared/l2c/l2c.c b/bsps/sparc/shared/l2c/l2c.c index 0c577f3..7b17f8b 100644 --- a/bsps/sparc/shared/l2c/l2c.c +++ b/bsps/sparc/shared/l2c/l2c.c @@ -475,7 +475,7 @@ int l2cache_init1(struct drvmgr_dev *dev) /* Initialize L2CACHE Hardware */ status = l2cache_init(priv); if (status) { - printf("Failed to initialize l2cache driver %d\n", status); + printk("Failed to initialize l2cache driver %d\n", status); return -1; } diff --git a/bsps/sparc/shared/pci/gr_701.c b/bsps/sparc/shared/pci/gr_701.c index a6c9ebc..2350e58 100644 --- a/bsps/sparc/shared/pci/gr_701.c +++ b/bsps/sparc/shared/pci/gr_701.c @@ -349,14 +349,14 @@ int gr701_init1(struct drvmgr_dev *dev) bar0_size = devinfo->resources[0].size; bar1 = devinfo->resources[1].address; bar1_size = devinfo->resources[1].size; - printf("\n\n--- GR-701[%d] ---\n", dev->minor_drv); - printf(" PCI BUS: 0x%x, SLOT: 0x%x, FUNCTION: 0x%x\n", + printk("\n\n--- GR-701[%d] ---\n", dev->minor_drv); + printk(" PCI BUS: 0x%x, SLOT: 0x%x, FUNCTION: 0x%x\n", PCI_DEV_EXPAND(priv->pcidev)); - printf(" PCI VENDOR: 0x%04x, DEVICE: 0x%04x\n\n\n", + printk(" PCI VENDOR: 0x%04x, DEVICE: 0x%04x\n\n\n", devinfo->id.vendor, devinfo->id.device); - printf(" PCI BAR[0]: 0x%lx - 0x%lx\n", bar0, bar0 + bar0_size - 1); - printf(" PCI BAR[1]: 0x%lx - 0x%lx\n", bar1, bar1 + bar1_size - 1); - printf(" IRQ: %d\n\n\n", devinfo->irq); + printk(" PCI BAR[0]: 0x%lx - 0x%lx\n", bar0, bar0 + bar0_size - 1); + printk(" PCI BAR[1]: 0x%lx - 0x%lx\n", bar1, bar1 + bar1_size - 1); + printk(" IRQ: %d\n\n\n", devinfo->irq); /* all neccessary space assigned to GR-701 target? */ if ((bar0_size == 0) || (bar1_size == 0)) @@ -379,7 +379,7 @@ int gr701_init1(struct drvmgr_dev *dev) genirq_destroy(priv->genirq); free(priv); dev->priv = NULL; - printf(" Failed to initialize GR-701 HW\n"); + printk(" Failed to initialize GR-701 HW\n"); return DRVMGR_FAIL; } diff --git a/bsps/sparc/shared/pci/gr_cpci_gr740.c b/bsps/sparc/shared/pci/gr_cpci_gr740.c index 7ff7206..9b4fbfa 100644 --- a/bsps/sparc/shared/pci/gr_cpci_gr740.c +++ b/bsps/sparc/shared/pci/gr_cpci_gr740.c @@ -485,13 +485,13 @@ int gr_cpci_gr740_init1(struct drvmgr_dev *dev) priv->devinfo = devinfo = (struct pci_dev_info *)dev->businfo; priv->pcidev = devinfo->pcidev; - printf("\n\n--- GR-CPCI-GR740[%d] ---\n", dev->minor_drv); - printf(" PCI BUS: 0x%x, SLOT: 0x%x, FUNCTION: 0x%x\n", + printk("\n\n--- GR-CPCI-GR740[%d] ---\n", dev->minor_drv); + printk(" PCI BUS: 0x%x, SLOT: 0x%x, FUNCTION: 0x%x\n", PCI_DEV_EXPAND(priv->pcidev)); - printf(" PCI VENDOR: 0x%04x, DEVICE: 0x%04x\n", + printk(" PCI VENDOR: 0x%04x, DEVICE: 0x%04x\n", devinfo->id.vendor, devinfo->id.device); for (i = 0; i < 3; i++) { - printf(" PCI BAR[%d]: 0x%08lx - 0x%08lx\n", + printk(" PCI BAR[%d]: 0x%08lx - 0x%08lx\n", i, devinfo->resources[i].address, devinfo->resources[i].address + (devinfo->resources[i].size - 1)); @@ -499,7 +499,7 @@ int gr_cpci_gr740_init1(str
[PATCH] leon3: fix warning when SMP is enabled
--- bsps/sparc/leon3/clock/ckinit.c | 1 + 1 file changed, 1 insertion(+) diff --git a/bsps/sparc/leon3/clock/ckinit.c b/bsps/sparc/leon3/clock/ckinit.c index c3edaf2..0cd78ea 100644 --- a/bsps/sparc/leon3/clock/ckinit.c +++ b/bsps/sparc/leon3/clock/ckinit.c @@ -21,6 +21,7 @@ */ #include +#include #include #include #include -- 2.7.4 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH] sparc: clang AS does no accept UNIMP without argument
--- cpukit/score/cpu/sparc/include/rtems/score/cpuimpl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpukit/score/cpu/sparc/include/rtems/score/cpuimpl.h b/cpukit/score/cpu/sparc/include/rtems/score/cpuimpl.h index c125b8a..7c31501 100644 --- a/cpukit/score/cpu/sparc/include/rtems/score/cpuimpl.h +++ b/cpukit/score/cpu/sparc/include/rtems/score/cpuimpl.h @@ -152,7 +152,7 @@ void _CPU_Context_validate( uintptr_t pattern ); RTEMS_INLINE_ROUTINE void _CPU_Instruction_illegal( void ) { - __asm__ volatile ( "unimp" ); + __asm__ volatile ( "unimp 0" ); } RTEMS_INLINE_ROUTINE void _CPU_Instruction_no_operation( void ) -- 2.7.4 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH] sparc: Return to previous section type when done with .data._SPARC_Counter
From: Daniel Cederman --- cpukit/score/cpu/sparc/include/rtems/score/sparcimpl.h | 1 + 1 file changed, 1 insertion(+) diff --git a/cpukit/score/cpu/sparc/include/rtems/score/sparcimpl.h b/cpukit/score/cpu/sparc/include/rtems/score/sparcimpl.h index 9fb..81b4441 100644 --- a/cpukit/score/cpu/sparc/include/rtems/score/sparcimpl.h +++ b/cpukit/score/cpu/sparc/include/rtems/score/sparcimpl.h @@ -81,6 +81,7 @@ static inline void _SPARC_Counter_initialize( "\t.long\t_SPARC_Counter_read_address\n" \ "\t.long\t_SPARC_Counter_difference_one\n" \ "\t.long\t_SPARC_Counter\n" \ +"\t.previous\n" \ ) #ifdef __cplusplus -- 2.7.4 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH] tests: Avoid printf versions that uses floats
From: Daniel Cederman --- testsuites/fstests/fserror/test.c| 8 +++--- testsuites/fstests/fspermission/test.c | 2 +- testsuites/fstests/fsrename/test.c | 44 testsuites/libtests/block06/init.c | 4 +-- testsuites/psxtests/psxfile01/test.c | 2 +- testsuites/psxtests/psximfs02/init.c | 6 ++--- testsuites/psxtests/psxpasswd02/init.c | 16 ++-- testsuites/psxtests/psxstat/test.c | 6 ++--- testsuites/smptests/smp03/tasks.c| 2 +- testsuites/smptests/smp08/init.c | 2 +- testsuites/smptests/smpaffinity01/init.c | 4 +-- 11 files changed, 48 insertions(+), 48 deletions(-) diff --git a/testsuites/fstests/fserror/test.c b/testsuites/fstests/fserror/test.c index c53aff8..123b96c 100644 --- a/testsuites/fstests/fserror/test.c +++ b/testsuites/fstests/fserror/test.c @@ -78,7 +78,7 @@ static void open_mkdir_error (void) * the path argument points to an empty string. */ - sprintf (name, "%s/%s", name03, name02); + siprintf (name, "%s/%s", name03, name02); EXPECT_ERROR (ENOENT, open, name, O_WRONLY); EXPECT_ERROR (ENOENT, open, "", O_WRONLY); EXPECT_ERROR (ENOENT, open, name03, O_WRONLY); @@ -90,7 +90,7 @@ static void open_mkdir_error (void) * A component of the path prefix is not a directory. */ - sprintf (name, "%s/%s", name01, name02); + siprintf (name, "%s/%s", name01, name02); EXPECT_ERROR (ENOTDIR, open, name, O_WRONLY); EXPECT_ERROR (ENOTDIR, mkdir, name, mode); @@ -141,7 +141,7 @@ static void rename_error (void) rtems_test_assert (status == 0); status = mkdir (name02, mode); rtems_test_assert (status == 0); - sprintf (name, "%s/%s", name01, name03); + siprintf (name, "%s/%s", name01, name03); status = mkdir (name, mode); rtems_test_assert (status == 0); @@ -181,7 +181,7 @@ static void rename_error (void) * a non-directory file. */ - sprintf (name, "%s/%s", name03, name01); + siprintf (name, "%s/%s", name03, name01); EXPECT_ERROR (ENOTDIR, rename, name, name03); EXPECT_ERROR (ENOTDIR, rename, name03, name); EXPECT_ERROR (ENOTDIR, rename, name02, name03); diff --git a/testsuites/fstests/fspermission/test.c b/testsuites/fstests/fspermission/test.c index 36675ac..c4a1864 100644 --- a/testsuites/fstests/fspermission/test.c +++ b/testsuites/fstests/fspermission/test.c @@ -244,7 +244,7 @@ static void test_premission01(void ) status=mkdir(directory01,0777); rtems_test_assert(status==0); - sprintf(path,"%s/%s",directory01,file01); + siprintf(path,"%s/%s",directory01,file01); fd = creat(path,0777); rtems_test_assert(fd >= 0); status = close(fd); diff --git a/testsuites/fstests/fsrename/test.c b/testsuites/fstests/fsrename/test.c index 6799ab4..93a4901 100644 --- a/testsuites/fstests/fsrename/test.c +++ b/testsuites/fstests/fsrename/test.c @@ -144,11 +144,11 @@ static void symbolic_link_test (void) status = symlink (symlink02, symlink01); rtems_test_assert (status == 0); - rv = snprintf (path01, sizeof(path01), "%s/test", symlink01); + rv = sniprintf (path01, sizeof(path01), "%s/test", symlink01); rtems_test_assert (rv < sizeof(path01)); EXPECT_ERROR (ELOOP, rename, path01, name01); - rv = snprintf (path01, sizeof(path01), "%s/test", symlink02); + rv = sniprintf (path01, sizeof(path01), "%s/test", symlink02); rtems_test_assert (rv < sizeof(path01)); EXPECT_ERROR (ELOOP, rename, path01, name01); @@ -177,11 +177,11 @@ static void symbolic_link_test (void) status = symlink (symlink02, symlink01); rtems_test_assert (status == 0); - rv = snprintf (path01, sizeof(path01), "%s/test", symlink01); + rv = sniprintf (path01, sizeof(path01), "%s/test", symlink01); rtems_test_assert (rv < sizeof(path01)); EXPECT_ERROR (ELOOP, rename, name01, path01); - rv = snprintf (path01, sizeof(path01), "%s/test", symlink02); + rv = sniprintf (path01, sizeof(path01), "%s/test", symlink02); rtems_test_assert (rv < sizeof(path01)); EXPECT_ERROR (ELOOP, rename, name01, path01); @@ -268,7 +268,7 @@ static void same_file_test (void) status = mkdir (dir01, mode); rtems_test_assert (status == 0); - rv = snprintf (path01, sizeof(path01), "%s/%s", dir01, name02); + rv = sniprintf (path01, sizeof(path01), "%s/%s", dir01, name02); rtems_test_assert (rv < sizeof(path01)); status = link (name01, path01); rtems_test_assert (status == 0); @@ -389,7 +389,7 @@ static void directory_test (void) status = mkdir (dir02, mode); rtems_test_assert (status == 0); - rv = snprintf (path01, sizeof(path01), "%s/%s", dir02, dir01); + rv = sniprintf (path01, sizeof(path01), "%s/%s", dir02, dir01); rtems_test_assert (rv < sizeof(path01)); status = mkdir (path01, mode); rtems_test_assert (status == 0); @@ -416,7 +416,7 @@ static void directory_test (void) status = mkdir (dir02, mode); rtems_test_assert (status == 0); - rv = snprintf (path01, sizeof(path01), "%s/%s", di
[PATCH] tm26: enable FP context when fprintf used
calling rtems_print_printer_fprintf_putc() results in usage of vfprintf() which may use floating point instructions in its implementation. --- testsuites/tmtests/tm26/system.h | 1 + 1 file changed, 1 insertion(+) diff --git a/testsuites/tmtests/tm26/system.h b/testsuites/tmtests/tm26/system.h index e41afc9..961a992 100644 --- a/testsuites/tmtests/tm26/system.h +++ b/testsuites/tmtests/tm26/system.h @@ -31,6 +31,7 @@ rtems_task Init( #define CONFIGURE_TICKS_PER_TIMESLICE0 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE +#define CONFIGURE_INIT_TASK_ATTRIBUTES RTEMS_FLOATING_POINT #define CONFIGURE_SCHEDULER_PRIORITY -- 2.7.4 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH] leon, grspw_pkt: protect TX descriptor from bad input (hdrlen)
--- bsps/sparc/shared/spw/grspw_pkt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bsps/sparc/shared/spw/grspw_pkt.c b/bsps/sparc/shared/spw/grspw_pkt.c index ff481f2..39f5087 100644 --- a/bsps/sparc/shared/spw/grspw_pkt.c +++ b/bsps/sparc/shared/spw/grspw_pkt.c @@ -1470,7 +1470,8 @@ STATIC int grspw_tx_schedule_send(struct grspw_dma_priv *dma) curr_pkt->flags &= ~PKT_FLAG_TR_HDR; } BD_WRITE(&curr_bd->bd->haddr, hwaddr); - ctrl = GRSPW_TXBD_EN | curr_pkt->hlen; + ctrl = GRSPW_TXBD_EN | + (curr_pkt->hlen & GRSPW_TXBD_HLEN); } else { ctrl = GRSPW_TXBD_EN; } -- 2.7.4 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH] smp03: make printout match actual task name
--- testsuites/smptests/smp03/init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testsuites/smptests/smp03/init.c b/testsuites/smptests/smp03/init.c index 3ad0352..cd6bba1 100644 --- a/testsuites/smptests/smp03/init.c +++ b/testsuites/smptests/smp03/init.c @@ -96,7 +96,7 @@ rtems_task Init( /* Create/Start an aditional task with the highest priority */ status = rtems_task_create( -rtems_build_name( 'T', 'A', ch, ' ' ), +rtems_build_name( 'T', 'A', ch + 1, ' ' ), 3, RTEMS_MINIMUM_STACK_SIZE, RTEMS_PREEMPT, -- 2.7.4 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH] leon, grspw_pkt: support CCSDS/ISO16 data CRC
From: Martin Aberg When the CCSDS/CCITT CRC-16 and 16-bit ISO-checksum logic is available in GRSPW2, the DCRCT field is used to determine how to generate the CRC/checksum code. grspw_hw_sup has been extended with the field ccsds_crc --- bsps/sparc/include/bsp/grspw_pkt.h | 16 ++-- bsps/sparc/shared/spw/grspw_pkt.c | 3 +++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/bsps/sparc/include/bsp/grspw_pkt.h b/bsps/sparc/include/bsp/grspw_pkt.h index a74a7c9..595625b 100644 --- a/bsps/sparc/include/bsp/grspw_pkt.h +++ b/bsps/sparc/include/bsp/grspw_pkt.h @@ -35,10 +35,20 @@ extern int grspw_work_task_priority; #define TXPKT_FLAG_HCRC 0x0100 /* Enable Data CRC generation (if CRC is available in HW) - * Data CRC will be appended (one byte at end of packet) + * Data CRC will be appended (one or two byte at end of packet, depending on + * Data CRC type) */ #define TXPKT_FLAG_DCRC 0x0200 +/* Data CRC type */ +#define TXPKT_FLAG_DCRCT_MASK 0x0c00 +/* RMAP CRC. 1 byte */ +#define TXPKT_FLAG_DCRCT_RMAP 0x +/* CCSDS/CCITT CRC-16. 2 byte */ +#define TXPKT_FLAG_DCRCT_CCSDS 0x0400 +/* 16-bit ISO-checksum (J.G. Fletcher, ISO 8473-1:1998). 2 byte */ +#define TXPKT_FLAG_DCRCT_ISO16 0x0800 + /* Control how many bytes the beginning of the Header * the CRC should not be calculated for */ #define TXPKT_FLAG_NOCRC_MASK 0x000f @@ -60,7 +70,8 @@ extern int grspw_work_task_priority; #define TXPKT_FLAG_NOCRC_LENf 0x000f #define TXPKT_FLAG_INPUT_MASK (TXPKT_FLAG_NOCRC_MASK | TXPKT_FLAG_IE | \ - TXPKT_FLAG_HCRC | TXPKT_FLAG_DCRC) + TXPKT_FLAG_HCRC | TXPKT_FLAG_DCRC | \ + TXPKT_FLAG_DCRCT_MASK) /* Marks if packet was transmitted or not */ #define TXPKT_FLAG_TX 0x4000 @@ -176,6 +187,7 @@ struct grspw_hw_sup { charirq;/* SpW Distributed Interrupt available if 1 */ charirq_num;/* Number of interrupts that can be generated */ charitmr_width; /* SpW Intr. ISR timers bit width. 0=no timer */ + charccsds_crc; /* CCSDS CRC-16 and 16-bit ISO is available */ }; struct grspw_core_stats { diff --git a/bsps/sparc/shared/spw/grspw_pkt.c b/bsps/sparc/shared/spw/grspw_pkt.c index 39f5087..f28e4be 100644 --- a/bsps/sparc/shared/spw/grspw_pkt.c +++ b/bsps/sparc/shared/spw/grspw_pkt.c @@ -113,6 +113,7 @@ struct grspw_regs { #define GRSPW_CTRL_RC_BIT 29 #define GRSPW_CTRL_NCH_BIT 27 #define GRSPW_CTRL_PO_BIT 26 +#define GRSPW_CTRL_CC_BIT 25 #define GRSPW_CTRL_ID_BIT 24 #define GRSPW_CTRL_LE_BIT 22 #define GRSPW_CTRL_PS_BIT 21 @@ -137,6 +138,7 @@ struct grspw_regs { #define GRSPW_CTRL_RC (1ctrl); priv->hwsup.rmap = (ctrl & GRSPW_CTRL_RA) >> GRSPW_CTRL_RA_BIT; priv->hwsup.rmap_crc = (ctrl & GRSPW_CTRL_RC) >> GRSPW_CTRL_RC_BIT; + priv->hwsup.ccsds_crc = (ctrl & GRSPW_CTRL_CC) >> GRSPW_CTRL_CC_BIT; priv->hwsup.rx_unalign = (ctrl & GRSPW_CTRL_RX) >> GRSPW_CTRL_RX_BIT; priv->hwsup.nports = 1 + ((ctrl & GRSPW_CTRL_PO) >> GRSPW_CTRL_PO_BIT); priv->hwsup.ndma_chans = 1 + ((ctrl & GRSPW_CTRL_NCH) >> GRSPW_CTRL_NCH_BIT); -- 2.7.4 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH] leon: remove warning missing string.h
--- bsps/sparc/shared/uart/cons.c | 1 + 1 file changed, 1 insertion(+) diff --git a/bsps/sparc/shared/uart/cons.c b/bsps/sparc/shared/uart/cons.c index 37f448c..410d6e2 100644 --- a/bsps/sparc/shared/uart/cons.c +++ b/bsps/sparc/shared/uart/cons.c @@ -14,6 +14,7 @@ #include #include +#include #include #include -- 2.7.4 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
[PATCH] clang: Keep -qrtems and -B for compilers without -specs support
From: Jacob Hansen This is needed for building rtems correctly with Clang. Note that this change does not mean rtems can build correctly with mainline clang. However the change allows building rtems with a Clang toolchain that has a rtems frontend similar that of GCC's builtin rtems specs. --- c/src/aclocal/prog-cc.m4| 6 -- testsuites/aclocal/gcc-specs.m4 | 16 testsuites/aclocal/prog-cc.m4 | 7 ++- 3 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 testsuites/aclocal/gcc-specs.m4 diff --git a/c/src/aclocal/prog-cc.m4 b/c/src/aclocal/prog-cc.m4 index 54f3a08..39bec69 100644 --- a/c/src/aclocal/prog-cc.m4 +++ b/c/src/aclocal/prog-cc.m4 @@ -28,10 +28,12 @@ test "$rtems_cv_gcc_pipe" = "yes" && CC="$CC --pipe" dnl check if the compiler supports --specs RTEMS_GCC_SPECS -AS_IF([test x"$rtems_cv_gcc_specs" = xyes],[ +dnl Compilers that does not support --specs (Clang) still needs -B and -qrtems GCCSPECS="-B\$(RTEMS_SOURCE_ROOT)/bsps/\$(RTEMS_CPU)/\$(RTEMS_BSP_FAMILY)/start" -GCCSPECS="${GCCSPECS} -specs bsp_specs -qrtems"]) +AS_IF([test x"$rtems_cv_gcc_specs" = xyes],[ +GCCSPECS="${GCCSPECS} -specs bsp_specs"]) AC_SUBST(GCCSPECS) +GCCSPECS="${GCCSPECS} -qrtems" AS_IF([test "$GCC" = yes],[ RTEMS_RELLDFLAGS="-qnolinkcmds -nostdlib -r" diff --git a/testsuites/aclocal/gcc-specs.m4 b/testsuites/aclocal/gcc-specs.m4 new file mode 100644 index 000..ddcc2bf --- /dev/null +++ b/testsuites/aclocal/gcc-specs.m4 @@ -0,0 +1,16 @@ +dnl Check whether the target compiler accepts -specs + +AC_DEFUN([RTEMS_GCC_SPECS], +[AC_REQUIRE([RTEMS_PROG_CC]) +AC_CACHE_CHECK(whether $CC accepts -specs,rtems_cv_gcc_specs, +[ +rtems_cv_gcc_specs=no +if test x"$GCC" = x"yes"; then + touch confspec + echo 'void f(){}' >conftest.c + if test -z "`${CC} -specs confspec -c conftest.c 2>&1`";then +rtems_cv_gcc_specs=yes + fi +fi +rm -f confspec conftest* +])]) diff --git a/testsuites/aclocal/prog-cc.m4 b/testsuites/aclocal/prog-cc.m4 index 44d07d8..cf6be7d 100644 --- a/testsuites/aclocal/prog-cc.m4 +++ b/testsuites/aclocal/prog-cc.m4 @@ -24,9 +24,14 @@ AC_DEFUN([RTEMS_PROG_CC_FOR_TARGET], dnl check target cc RTEMS_PROG_CC +dnl check if the compiler supports -specs +RTEMS_GCC_SPECS + AS_IF([test x"$GCC" = xyes],[ GCCSPECS="-B\$(RTEMS_SOURCE_ROOT)/bsps/\$(RTEMS_CPU)/\$(RTEMS_BSP_FAMILY)/start" -GCCSPECS="${GCCSPECS} -specs bsp_specs -qrtems"]) +AS_IF([test x"$rtems_cv_gcc_specs" = xyes],[ +GCCSPECS="${GCCSPECS} -specs bsp_specs"]) +GCCSPECS="${GCCSPECS} -qrtems"]) AC_SUBST(GCCSPECS) RTEMS_INCLUDES -- 2.7.4 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: [PATCH] clang: Keep -qrtems and -B for compilers without -specs support
Just an aside that I have done a fair amount of clean up on the bsp_specs on a local branch with corresponding GCC patches to begin to eliminate the need for them. I think the x86_64 tools are built with a subset of that patch and have an empty bsp_specs. Hopefully after the next rtems release I can start pushing these.with help and eliminate the specs completely. On Wed, Sep 19, 2018, 9:14 AM Daniel Hellstrom wrote: > From: Jacob Hansen > > This is needed for building rtems correctly with Clang. > > Note that this change does not mean rtems can build correctly with > mainline clang. However the change allows building rtems with a > Clang toolchain that has a rtems frontend similar that of GCC's > builtin rtems specs. > --- > c/src/aclocal/prog-cc.m4| 6 -- > testsuites/aclocal/gcc-specs.m4 | 16 > testsuites/aclocal/prog-cc.m4 | 7 ++- > 3 files changed, 26 insertions(+), 3 deletions(-) > create mode 100644 testsuites/aclocal/gcc-specs.m4 > > diff --git a/c/src/aclocal/prog-cc.m4 b/c/src/aclocal/prog-cc.m4 > index 54f3a08..39bec69 100644 > --- a/c/src/aclocal/prog-cc.m4 > +++ b/c/src/aclocal/prog-cc.m4 > @@ -28,10 +28,12 @@ test "$rtems_cv_gcc_pipe" = "yes" && CC="$CC --pipe" > dnl check if the compiler supports --specs > RTEMS_GCC_SPECS > > -AS_IF([test x"$rtems_cv_gcc_specs" = xyes],[ > +dnl Compilers that does not support --specs (Clang) still needs -B and > -qrtems > > > GCCSPECS="-B\$(RTEMS_SOURCE_ROOT)/bsps/\$(RTEMS_CPU)/\$(RTEMS_BSP_FAMILY)/start" > -GCCSPECS="${GCCSPECS} -specs bsp_specs -qrtems"]) > +AS_IF([test x"$rtems_cv_gcc_specs" = xyes],[ > +GCCSPECS="${GCCSPECS} -specs bsp_specs"]) > AC_SUBST(GCCSPECS) > +GCCSPECS="${GCCSPECS} -qrtems" > > AS_IF([test "$GCC" = yes],[ >RTEMS_RELLDFLAGS="-qnolinkcmds -nostdlib -r" > diff --git a/testsuites/aclocal/gcc-specs.m4 > b/testsuites/aclocal/gcc-specs.m4 > new file mode 100644 > index 000..ddcc2bf > --- /dev/null > +++ b/testsuites/aclocal/gcc-specs.m4 > @@ -0,0 +1,16 @@ > +dnl Check whether the target compiler accepts -specs > + > +AC_DEFUN([RTEMS_GCC_SPECS], > +[AC_REQUIRE([RTEMS_PROG_CC]) > +AC_CACHE_CHECK(whether $CC accepts -specs,rtems_cv_gcc_specs, > +[ > +rtems_cv_gcc_specs=no > +if test x"$GCC" = x"yes"; then > + touch confspec > + echo 'void f(){}' >conftest.c > + if test -z "`${CC} -specs confspec -c conftest.c 2>&1`";then > +rtems_cv_gcc_specs=yes > + fi > +fi > +rm -f confspec conftest* > +])]) > diff --git a/testsuites/aclocal/prog-cc.m4 b/testsuites/aclocal/prog-cc.m4 > index 44d07d8..cf6be7d 100644 > --- a/testsuites/aclocal/prog-cc.m4 > +++ b/testsuites/aclocal/prog-cc.m4 > @@ -24,9 +24,14 @@ AC_DEFUN([RTEMS_PROG_CC_FOR_TARGET], > dnl check target cc > RTEMS_PROG_CC > > +dnl check if the compiler supports -specs > +RTEMS_GCC_SPECS > + > AS_IF([test x"$GCC" = xyes],[ > > > GCCSPECS="-B\$(RTEMS_SOURCE_ROOT)/bsps/\$(RTEMS_CPU)/\$(RTEMS_BSP_FAMILY)/start" > -GCCSPECS="${GCCSPECS} -specs bsp_specs -qrtems"]) > +AS_IF([test x"$rtems_cv_gcc_specs" = xyes],[ > +GCCSPECS="${GCCSPECS} -specs bsp_specs"]) > +GCCSPECS="${GCCSPECS} -qrtems"]) > AC_SUBST(GCCSPECS) > > RTEMS_INCLUDES > -- > 2.7.4 > > ___ > 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: GR740-SMP BSP test results (gcc-7.2)
Hello Daniel, thanks for your status report. The RSB uses currently GCC 7.3.0 without patches and the Newlib commit d13c84eb07e35984bf7a974cd786a6cdac29e6b9. On 19/09/2018 14:46, Daniel Hellstrom wrote: Hi, I just wanted to share the current test status for the GR740 I have today, using the todays master with some additional test fixes which I plan to submit shortly. The test have been run both on TSIM and hardware. Current test results for the RTEMS test-suite with GCC-7.2 toolchain for the GR740 quad-core LEON4 BSP in SMP driver manager configuration: ### # RTEMS TESTSUITE FAILURE SUMMARY # # Result Test ExecRes ConsoleRes ExitCode1 ExitCode2 # FAIL: minimum OK N/A 0 5 Ok, known issue, the test has no output. # FAIL: spcpucounter01 OK FAIL 5 0 This was a bug. It should be fixed with this commit: https://git.rtems.org/rtems/commit/?id=b3cf79b9c472ed8c219f8c9a9d8fb571671f3815 # FAIL: spfatal07 FAIL N/A N/A N/A # FAIL: spinternalerror01 OK N/A -559038737 1611526157 This is a known issue. Test exit before the device enumeration. # FAIL: sptimecounter01 OK N/A 5 0 This is a known issue. Test exit before the device enumeration. # # SUMMARY # Tests failing: 5 # Tests successful: 624 # ### spfatal07 - problem with the test itself. CONFIGURE_INTERRUPT_STACK_SIZE is too small, the boot process fails before reaching the check. This is a new behavior since interrupt stack is also used by the CPU for initialization/boot process. Ok, thanks for the pointer. I changed the interrupt/initialization stack machinery recently. I think that this internal error is superfluous now or needs to be adjusted. This ticket is related to this topic: https://devel.rtems.org/ticket/3480 -- Sebastian Huber, embedded brains GmbH Address : Dornierstr. 4, D-82178 Puchheim, Germany Phone : +49 89 189 47 41-16 Fax : +49 89 189 47 41-09 E-Mail : sebastian.hu...@embedded-brains.de PGP : Public key available on request. Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG. ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: [PATCH] clang: Keep -qrtems and -B for compilers without -specs support
On 19/09/2018 17:43, Joel Sherrill wrote: Just an aside that I have done a fair amount of clean up on the bsp_specs on a local branch with corresponding GCC patches to begin to eliminate the need for them. I think the x86_64 tools are built with a subset of that patch and have an empty bsp_specs. Hopefully after the next rtems release I can start pushing these.with help and eliminate the specs completely. You did you solve the problem with the Newlib dummy crt0.o file which is used by the GCC configure scripts to determine which features are supported by the operating system for libstdc++, libgomp, libatomic, etc.? -- Sebastian Huber, embedded brains GmbH Address : Dornierstr. 4, D-82178 Puchheim, Germany Phone : +49 89 189 47 41-16 Fax : +49 89 189 47 41-09 E-Mail : sebastian.hu...@embedded-brains.de PGP : Public key available on request. Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG. ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: [PATCH] tests: Avoid printf versions that uses floats
I am not sure if we should introduce this Newlib-specific functions in throughout the code base. The siprintf() is currently not used. I am more in favour to enable the FPU for the corresponding tasks. The rest of the patch series looks good. -- Sebastian Huber, embedded brains GmbH Address : Dornierstr. 4, D-82178 Puchheim, Germany Phone : +49 89 189 47 41-16 Fax : +49 89 189 47 41-09 E-Mail : sebastian.hu...@embedded-brains.de PGP : Public key available on request. Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG. ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: GR740-SMP BSP test results (gcc-7.2)
Hello Sebastian, On 2018-09-20 07:32, Sebastian Huber wrote: Hello Daniel, thanks for your status report. The RSB uses currently GCC 7.3.0 without patches and the Newlib commit d13c84eb07e35984bf7a974cd786a6cdac29e6b9. Thanks for the information, our toolchain was built using 916ef5fb8865f72d0f5ad3f4f479adac44ea94b1. I will update newlib at least going forward. On 19/09/2018 14:46, Daniel Hellstrom wrote: Hi, I just wanted to share the current test status for the GR740 I have today, using the todays master with some additional test fixes which I plan to submit shortly. The test have been run both on TSIM and hardware. Current test results for the RTEMS test-suite with GCC-7.2 toolchain for the GR740 quad-core LEON4 BSP in SMP driver manager configuration: ### # RTEMS TESTSUITE FAILURE SUMMARY # # Result Test ExecRes ConsoleRes ExitCode1 ExitCode2 # FAIL: minimum OK N/A 0 5 Ok, known issue, the test has no output. # FAIL: spcpucounter01 OK FAIL 5 0 This was a bug. It should be fixed with this commit: https://git.rtems.org/rtems/commit/?id=b3cf79b9c472ed8c219f8c9a9d8fb571671f3815 Aah, I missed this, even looking at that line of code I could not see the typo. This fix will remove a warning too. # FAIL: spfatal07 FAIL N/A N/A N/A # FAIL: spinternalerror01 OK N/A -559038737 1611526157 This is a known issue. Test exit before the device enumeration. # FAIL: sptimecounter01 OK N/A 5 0 This is a known issue. Test exit before the device enumeration. # # SUMMARY # Tests failing: 5 # Tests successful: 624 # ### spfatal07 - problem with the test itself. CONFIGURE_INTERRUPT_STACK_SIZE is too small, the boot process fails before reaching the check. This is a new behavior since interrupt stack is also used by the CPU for initialization/boot process. Ok, thanks for the pointer. I changed the interrupt/initialization stack machinery recently. I think that this internal error is superfluous now or needs to be adjusted. This ticket is related to this topic: https://devel.rtems.org/ticket/3480 Thanks for your comments, it is helpful. ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel