Four SMP tests fails after recent commit

2018-09-19 Thread Daniel Hellstrom

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

2018-09-19 Thread Sebastian Huber

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

2018-09-19 Thread Daniel Hellstrom

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

2018-09-19 Thread Daniel Hellstrom

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)

2018-09-19 Thread Daniel Hellstrom

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

2018-09-19 Thread Daniel Hellstrom
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

2018-09-19 Thread Daniel Hellstrom
---
 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

2018-09-19 Thread Daniel Hellstrom
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

2018-09-19 Thread Daniel Hellstrom
---
 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

2018-09-19 Thread Daniel Hellstrom
---
 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

2018-09-19 Thread Daniel Hellstrom
---
 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

2018-09-19 Thread Daniel Hellstrom
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

2018-09-19 Thread Daniel Hellstrom
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

2018-09-19 Thread Daniel Hellstrom
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)

2018-09-19 Thread Daniel Hellstrom
---
 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

2018-09-19 Thread Daniel Hellstrom
---
 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

2018-09-19 Thread Daniel Hellstrom
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

2018-09-19 Thread Daniel Hellstrom
---
 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

2018-09-19 Thread Daniel Hellstrom
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

2018-09-19 Thread Joel Sherrill
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)

2018-09-19 Thread Sebastian Huber

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

2018-09-19 Thread Sebastian Huber

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

2018-09-19 Thread Sebastian Huber
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)

2018-09-19 Thread Daniel Hellstrom

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