summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2012-06-14 14:21:26 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2012-06-14 14:21:26 +0200
commitc4faa47b5885499d3bc06957c4d0ead8586b2491 (patch)
tree74bedaf8e1a48b0a5e304c9835976c0c4322883b
parentMerge branch 'upstream' (diff)
parentscore: Fix performance issue for 64-bit timestamps (diff)
downloadrtems-c4faa47b5885499d3bc06957c4d0ead8586b2491.tar.bz2
Merge branch 'upstream'
-rw-r--r--c/src/lib/libbsp/arm/csb336/startup/linkcmds1
-rw-r--r--c/src/lib/libbsp/arm/csb337/startup/linkcmds.csb3371
-rw-r--r--c/src/lib/libbsp/arm/csb337/startup/linkcmds.csb6371
-rw-r--r--c/src/lib/libbsp/arm/edb7312/startup/linkcmds1
-rw-r--r--c/src/lib/libbsp/arm/gdbarmsim/startup/linkcmds1
-rw-r--r--c/src/lib/libbsp/arm/gp32/startup/linkcmds1
-rw-r--r--c/src/lib/libbsp/arm/gumstix/startup/linkcmds1
-rw-r--r--c/src/lib/libbsp/arm/lm3s69xx/startup/linkcmds.lm3s69651
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_ea_ram1
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_ea_rom_int1
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23621
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli8001
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea1
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram1
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext1
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int1
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_plx800_ram1
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_plx800_rom_int1
-rw-r--r--c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx1
-rw-r--r--c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_11
-rw-r--r--c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_21
-rw-r--r--c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore1
-rw-r--r--c/src/lib/libbsp/arm/nds/startup/bspstart.c2
-rw-r--r--c/src/lib/libbsp/arm/nds/startup/linkcmds1
-rw-r--r--c/src/lib/libbsp/arm/rtl22xx/startup/linkcmds1
-rw-r--r--c/src/lib/libbsp/arm/shared/startup/linkcmds.base15
-rw-r--r--c/src/lib/libbsp/arm/smdk2410/startup/linkcmds1
-rw-r--r--c/src/lib/libbsp/arm/stm32f4/startup/linkcmds.stm32f41
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.base15
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.brs5l1
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.dp21
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.icecube1
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.pm520_cr8251
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.pm520_ze301
-rw-r--r--c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds1
-rw-r--r--c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.base15
-rw-r--r--c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.hsc_cm011
-rw-r--r--c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc8309som1
-rw-r--r--c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc8313erdb1
-rw-r--r--c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc8349eamds1
-rw-r--r--c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.gwlcfm1
-rw-r--r--c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5566evb1
-rw-r--r--c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5643l_evb1
-rw-r--r--c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674fevb1
-rw-r--r--c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.phycore_mpc55541
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/startup/linkcmds.qoriq_core_05
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/startup/linkcmds.qoriq_core_15
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/startup/linkcmds.qoriq_p1020rdb5
-rw-r--r--c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base15
-rw-r--r--c/src/lib/libbsp/powerpc/t32mppc/startup/linkcmds.t32mppc5
-rw-r--r--c/src/lib/libbsp/powerpc/tqm8xx/startup/linkcmds.base17
-rw-r--r--c/src/lib/libbsp/powerpc/tqm8xx/startup/linkcmds.tqm8xx1
-rw-r--r--c/src/libchip/ide/ata.c14
-rw-r--r--cpukit/rtems/src/clockgetsecondssinceepoch.c2
-rw-r--r--cpukit/rtems/src/clockgettod.c2
-rw-r--r--cpukit/rtems/src/clockgettodtimeval.c2
-rw-r--r--cpukit/rtems/src/taskwakewhen.c2
-rw-r--r--cpukit/rtems/src/timerfirewhen.c2
-rw-r--r--cpukit/rtems/src/timerserverfirewhen.c2
-rw-r--r--cpukit/sapi/include/confdefs.h1
-rw-r--r--cpukit/sapi/include/rtems/config.h15
-rw-r--r--cpukit/score/cpu/v850/rtems/score/cpu.h31
-rw-r--r--cpukit/score/cpu/v850/rtems/score/v850.h9
-rw-r--r--cpukit/score/include/rtems/score/timestamp.h25
-rw-r--r--cpukit/score/include/rtems/score/timestamp64.h30
-rw-r--r--cpukit/score/include/rtems/score/tod.h54
-rw-r--r--cpukit/score/src/coretod.c6
-rw-r--r--cpukit/score/src/coretodget.c4
-rw-r--r--cpukit/score/src/coretodgetuptime.c4
-rw-r--r--cpukit/score/src/coretodset.c6
-rw-r--r--cpukit/score/src/coretodtickle.c20
-rw-r--r--testsuites/sptests/spsize/size.c4
72 files changed, 188 insertions, 188 deletions
diff --git a/c/src/lib/libbsp/arm/csb336/startup/linkcmds b/c/src/lib/libbsp/arm/csb336/startup/linkcmds
index 5619fedf04..0e13a9ceac 100644
--- a/c/src/lib/libbsp/arm/csb336/startup/linkcmds
+++ b/c/src/lib/libbsp/arm/csb336/startup/linkcmds
@@ -1,7 +1,6 @@
MEMORY {
SDRAM_MMU : ORIGIN = 0x08200000, LENGTH = 16k
SDRAM : ORIGIN = 0x08204000, LENGTH = 30M - 16k
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", SDRAM);
diff --git a/c/src/lib/libbsp/arm/csb337/startup/linkcmds.csb337 b/c/src/lib/libbsp/arm/csb337/startup/linkcmds.csb337
index 03f03162db..62db0dfec3 100644
--- a/c/src/lib/libbsp/arm/csb337/startup/linkcmds.csb337
+++ b/c/src/lib/libbsp/arm/csb337/startup/linkcmds.csb337
@@ -2,7 +2,6 @@ MEMORY {
SDRAM_MMU : ORIGIN = 0x20100000, LENGTH = 16k
SDRAM : ORIGIN = 0x20104000, LENGTH = 15M - 16k
SRAM : ORIGIN = 0x00200000, LENGTH = 16k
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", SDRAM);
diff --git a/c/src/lib/libbsp/arm/csb337/startup/linkcmds.csb637 b/c/src/lib/libbsp/arm/csb337/startup/linkcmds.csb637
index 8e660c231c..c86a0ad1a8 100644
--- a/c/src/lib/libbsp/arm/csb337/startup/linkcmds.csb637
+++ b/c/src/lib/libbsp/arm/csb337/startup/linkcmds.csb637
@@ -2,7 +2,6 @@ MEMORY {
SDRAM_MMU : ORIGIN = 0x20100000, LENGTH = 16k
SDRAM : ORIGIN = 0x20104000, LENGTH = 63M - 16k
SRAM : ORIGIN = 0x00200000, LENGTH = 16k
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", SDRAM);
diff --git a/c/src/lib/libbsp/arm/edb7312/startup/linkcmds b/c/src/lib/libbsp/arm/edb7312/startup/linkcmds
index 7b5a0b8553..f0a12a77b4 100644
--- a/c/src/lib/libbsp/arm/edb7312/startup/linkcmds
+++ b/c/src/lib/libbsp/arm/edb7312/startup/linkcmds
@@ -1,6 +1,5 @@
MEMORY {
SDRAM : ORIGIN = 0x00000000, LENGTH = 16M
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", SDRAM);
diff --git a/c/src/lib/libbsp/arm/gdbarmsim/startup/linkcmds b/c/src/lib/libbsp/arm/gdbarmsim/startup/linkcmds
index 2b8e2153a2..45b0f75aca 100644
--- a/c/src/lib/libbsp/arm/gdbarmsim/startup/linkcmds
+++ b/c/src/lib/libbsp/arm/gdbarmsim/startup/linkcmds
@@ -1,6 +1,5 @@
MEMORY {
RAM : ORIGIN = 0x00000000, LENGTH = 4M
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", RAM);
diff --git a/c/src/lib/libbsp/arm/gp32/startup/linkcmds b/c/src/lib/libbsp/arm/gp32/startup/linkcmds
index bfba44083a..d705a2b862 100644
--- a/c/src/lib/libbsp/arm/gp32/startup/linkcmds
+++ b/c/src/lib/libbsp/arm/gp32/startup/linkcmds
@@ -1,7 +1,6 @@
MEMORY {
SDRAM_MMU : ORIGIN = 0x0c000000, LENGTH = 16k
SDRAM : ORIGIN = 0x0c004000, LENGTH = 7M - 16k
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", SDRAM);
diff --git a/c/src/lib/libbsp/arm/gumstix/startup/linkcmds b/c/src/lib/libbsp/arm/gumstix/startup/linkcmds
index 37a5318aa1..84c5ccadab 100644
--- a/c/src/lib/libbsp/arm/gumstix/startup/linkcmds
+++ b/c/src/lib/libbsp/arm/gumstix/startup/linkcmds
@@ -2,7 +2,6 @@ MEMORY {
SDRAM_MMU : ORIGIN = 0xa0000000, LENGTH = 16k
SDRAM : ORIGIN = 0xa0004000, LENGTH = 64M - 16k
SRAM : ORIGIN = 0x00000000, LENGTH = 16k
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", SDRAM);
diff --git a/c/src/lib/libbsp/arm/lm3s69xx/startup/linkcmds.lm3s6965 b/c/src/lib/libbsp/arm/lm3s69xx/startup/linkcmds.lm3s6965
index aad5e0305a..b3de8257d6 100644
--- a/c/src/lib/libbsp/arm/lm3s69xx/startup/linkcmds.lm3s6965
+++ b/c/src/lib/libbsp/arm/lm3s69xx/startup/linkcmds.lm3s6965
@@ -7,7 +7,6 @@
MEMORY {
RAM_INT (AIW) : ORIGIN = 0x20000000, LENGTH = 16M
ROM_INT (RX) : ORIGIN = 0x00000000, LENGTH = 64M
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", ROM_INT);
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_ea_ram b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_ea_ram
index 60faf1267e..88aaef7aed 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_ea_ram
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_ea_ram
@@ -4,7 +4,6 @@ MEMORY {
RAM_INT (AIW) : ORIGIN = 0x10000000, LENGTH = 64k
RAM_PER (AIW) : ORIGIN = 0x20000000, LENGTH = 32k
RAM_EXT (AIW) : ORIGIN = 0xa0000000, LENGTH = 32M
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", RAM_EXT);
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_ea_rom_int b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_ea_rom_int
index dd87517114..5fa6a800d4 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_ea_rom_int
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_ea_rom_int
@@ -4,7 +4,6 @@ MEMORY {
ROM_INT (RX) : ORIGIN = 0x00000000, LENGTH = 512k
RAM_INT (AIW) : ORIGIN = 0x10000000, LENGTH = 64k
RAM_EXT (AIW) : ORIGIN = 0xa0000000, LENGTH = 32M
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", ROM_INT);
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2362 b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2362
index a9e46a17c8..fec6a25c4c 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2362
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2362
@@ -39,7 +39,6 @@ MEMORY {
RAM_USB (AIW) : ORIGIN = 0x7fd00000, LENGTH = 8k
RAM_ETH (AIW) : ORIGIN = 0x7fe00000, LENGTH = 16k
ROM_INT (RX) : ORIGIN = 0x00000000, LENGTH = 128k
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", ROM_INT);
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli800 b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli800
index 987c14053e..3f097634fd 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli800
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli800
@@ -43,7 +43,6 @@ MEMORY {
ROM_BOOT (RX) : ORIGIN = 0x00000000, LENGTH = 4k
ROM_CFG (RX) : ORIGIN = 0x00001000, LENGTH = 4k
ROM_INT (RX) : ORIGIN = 0x00002000, LENGTH = 120k
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", ROM_BOOT);
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea
index eadbb4e7eb..f7bced5019 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea
@@ -36,7 +36,6 @@
MEMORY {
RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 64k
RAM_EXT (AIW) : ORIGIN = 0xa0000000, LENGTH = 32M
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", RAM_EXT);
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram
index 0a285826f0..d11731b24e 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram
@@ -36,7 +36,6 @@
MEMORY {
RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 64k
RAM_EXT (AIW) : ORIGIN = 0xa0000000, LENGTH = 8M
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", RAM_EXT);
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext
index 74d63e647b..5398d6606f 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext
@@ -40,7 +40,6 @@ MEMORY {
RAM_EXT (AIW) : ORIGIN = 0xa0400000, LENGTH = 4M
ROM_BOOT (RX) : ORIGIN = 0x81000000, LENGTH = 16k
ROM_EXT (RX) : ORIGIN = 0x81010000, LENGTH = 2M - 64k
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", ROM_BOOT);
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int
index 48246c55a0..0a314d59cb 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int
@@ -40,7 +40,6 @@ MEMORY {
RAM_INT (AIW) : ORIGIN = 0x40008000, LENGTH = 32k
RAM_EXT (AIW) : ORIGIN = 0xa0400000, LENGTH = 4M
ROM_INT (RX) : ORIGIN = 0x00000000, LENGTH = 512k - 8k
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", ROM_INT);
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_plx800_ram b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_plx800_ram
index 6198b58e54..9d39f8d243 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_plx800_ram
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_plx800_ram
@@ -9,7 +9,6 @@ MEMORY {
RAM_EXT : ORIGIN = 0xa0000000, LENGTH = 32M
ROM_INT : ORIGIN = 0x00000000, LENGTH = 512k - 8k
ROM_EXT : ORIGIN = 0x80000000, LENGTH = 4M
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", RAM_EXT);
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_plx800_rom_int b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_plx800_rom_int
index f49b884690..851c4167be 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_plx800_rom_int
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_plx800_rom_int
@@ -9,7 +9,6 @@ MEMORY {
RAM_EXT : ORIGIN = 0xa0000000, LENGTH = 32M
ROM_INT : ORIGIN = 0x00000000, LENGTH = 512k - 8k
ROM_EXT : ORIGIN = 0x80000000, LENGTH = 4M
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", ROM_INT);
diff --git a/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx b/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx
index 810d187b5b..a466ecfe6f 100644
--- a/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx
+++ b/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx
@@ -39,7 +39,6 @@ MEMORY {
RAM_MMU : ORIGIN = 0x80000000, LENGTH = 16k /* SDRAM on DYCS0 */
RAM_SCRATCH : ORIGIN = 0x80004000, LENGTH = 4k /* SDRAM on DYCS0 */
RAM_EXT : ORIGIN = 0x80005000, LENGTH = 32M - 20k /* SDRAM on DYCS0 */
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", RAM_EXT);
diff --git a/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1 b/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1
index 67d18e0340..f5f8cb60ca 100644
--- a/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1
+++ b/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1
@@ -39,7 +39,6 @@ MEMORY {
RAM_VEC : ORIGIN = 0x0803a000, LENGTH = 8k
RAM_MMU : ORIGIN = 0x0803c000, LENGTH = 16k
RAM_SCRATCH : ORIGIN = 0x80004000, LENGTH = 4k /* SDRAM on DYCS0 */
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", RAM_INT);
diff --git a/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2 b/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2
index 9fc98859e5..bc457a3731 100644
--- a/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2
+++ b/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2
@@ -40,7 +40,6 @@ MEMORY {
RAM_MMU : ORIGIN = 0x80000000, LENGTH = 16k /* SDRAM on DYCS0 */
RAM_SCRATCH : ORIGIN = 0x80004000, LENGTH = 4k /* SDRAM on DYCS0 */
RAM_EXT : ORIGIN = 0x81c00000, LENGTH = 4M /* SDRAM on DYCS0 */
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", RAM_EXT);
diff --git a/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore b/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore
index 4f448268e0..b094fb119c 100644
--- a/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore
+++ b/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore
@@ -40,7 +40,6 @@ MEMORY {
RAM_MMU : ORIGIN = 0x80000000, LENGTH = 16k /* SDRAM on DYCS0 */
RAM_EXT : ORIGIN = 0x80004000, LENGTH = 64M - 16k /* SDRAM on DYCS0 */
ROM_EXT : ORIGIN = 0xe0000000, LENGTH = 2M /* NOR flash on CS0 */
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", RAM_EXT);
diff --git a/c/src/lib/libbsp/arm/nds/startup/bspstart.c b/c/src/lib/libbsp/arm/nds/startup/bspstart.c
index 0fc67d374e..59c074e410 100644
--- a/c/src/lib/libbsp/arm/nds/startup/bspstart.c
+++ b/c/src/lib/libbsp/arm/nds/startup/bspstart.c
@@ -43,7 +43,7 @@ void bsp_start (void)
arm_cpu_mode = 0x1f;
/* configure clock period */
- Configuration.microseconds_per_tick = 10000; /* us */
+ rtems_configuration_set_microseconds_per_tick (10000);
defaultExceptionHandler ();
}
diff --git a/c/src/lib/libbsp/arm/nds/startup/linkcmds b/c/src/lib/libbsp/arm/nds/startup/linkcmds
index f8cf10197b..964bb6c9b3 100644
--- a/c/src/lib/libbsp/arm/nds/startup/linkcmds
+++ b/c/src/lib/libbsp/arm/nds/startup/linkcmds
@@ -3,7 +3,6 @@ MEMORY {
EWRAM : ORIGIN = 0x02000000, LENGTH = 4M - 4k
DTCM : ORIGIN = 0x0b000000, LENGTH = 16k
ITCM : ORIGIN = 0x01000000, LENGTH = 32k
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", EWRAM);
diff --git a/c/src/lib/libbsp/arm/rtl22xx/startup/linkcmds b/c/src/lib/libbsp/arm/rtl22xx/startup/linkcmds
index 003e94b12b..0d5625c6c0 100644
--- a/c/src/lib/libbsp/arm/rtl22xx/startup/linkcmds
+++ b/c/src/lib/libbsp/arm/rtl22xx/startup/linkcmds
@@ -1,7 +1,6 @@
MEMORY {
SDRAM : ORIGIN = 0x81000000, LENGTH = 512k
SRAM : ORIGIN = 0x40000000, LENGTH = 16k
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", SDRAM);
diff --git a/c/src/lib/libbsp/arm/shared/startup/linkcmds.base b/c/src/lib/libbsp/arm/shared/startup/linkcmds.base
index c01b77b589..008685ee67 100644
--- a/c/src/lib/libbsp/arm/shared/startup/linkcmds.base
+++ b/c/src/lib/libbsp/arm/shared/startup/linkcmds.base
@@ -56,6 +56,10 @@ bsp_stack_und_size = ALIGN (bsp_stack_und_size, bsp_stack_align);
bsp_stack_main_size = DEFINED (bsp_stack_main_size) ? bsp_stack_main_size : 0;
bsp_stack_main_size = ALIGN (bsp_stack_main_size, bsp_stack_align);
+MEMORY {
+ UNEXPECTED_SECTIONS : ORIGIN = 0xffffffff, LENGTH = 0
+}
+
SECTIONS {
.start : {
bsp_section_start_begin = .;
@@ -433,6 +437,13 @@ SECTIONS {
.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
- /* Catch all unknown sections */
- .nirvana : { *(*) } > NIRVANA
+ /*
+ * This is a RTEMS specific section to catch all unexpected input
+ * sections. In case you get an error like
+ * "section `.unexpected_sections' will not fit in region
+ * `UNEXPECTED_SECTIONS'"
+ * you have to figure out the offending input section and add it to the
+ * appropriate output section definition above.
+ */
+ .unexpected_sections : { *(*) } > UNEXPECTED_SECTIONS
}
diff --git a/c/src/lib/libbsp/arm/smdk2410/startup/linkcmds b/c/src/lib/libbsp/arm/smdk2410/startup/linkcmds
index afd9270af8..2a14c80f96 100644
--- a/c/src/lib/libbsp/arm/smdk2410/startup/linkcmds
+++ b/c/src/lib/libbsp/arm/smdk2410/startup/linkcmds
@@ -1,7 +1,6 @@
MEMORY {
SDRAM_MMU : ORIGIN = 0x30000000, LENGTH = 16k
SDRAM : ORIGIN = 0x30004000, LENGTH = 64M - 16k
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", SDRAM);
diff --git a/c/src/lib/libbsp/arm/stm32f4/startup/linkcmds.stm32f4 b/c/src/lib/libbsp/arm/stm32f4/startup/linkcmds.stm32f4
index 823b60438e..a68846ec39 100644
--- a/c/src/lib/libbsp/arm/stm32f4/startup/linkcmds.stm32f4
+++ b/c/src/lib/libbsp/arm/stm32f4/startup/linkcmds.stm32f4
@@ -1,7 +1,6 @@
MEMORY {
RAM_INT : ORIGIN = 0x20000000, LENGTH = 128k
ROM_INT : ORIGIN = 0x00000000, LENGTH = 1M
- NIRVANA : ORIGIN = 0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", ROM_INT);
diff --git a/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.base b/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.base
index 5458000ea2..4510df1668 100644
--- a/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.base
+++ b/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.base
@@ -26,6 +26,10 @@ RamBase = bsp_ram_start;
RamSize = bsp_ram_size;
HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
+MEMORY {
+ UNEXPECTED_SECTIONS : ORIGIN = 0xffffffff, LENGTH = 0
+}
+
SECTIONS {
/*
* BSP: MPC5200 registers
@@ -320,9 +324,12 @@ SECTIONS {
}
/*
- * BSP: Catch all unknown sections
+ * This is a RTEMS specific section to catch all unexpected input
+ * sections. In case you get an error like
+ * "section `.unexpected_sections' will not fit in region
+ * `UNEXPECTED_SECTIONS'"
+ * you have to figure out the offending input section and add it to the
+ * appropriate output section definition above.
*/
- .nirvana : {
- *(*)
- } > NIRVANA
+ .unexpected_sections : { *(*) } > UNEXPECTED_SECTIONS
}
diff --git a/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.brs5l b/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.brs5l
index 40e57cae43..944cc36f4d 100644
--- a/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.brs5l
+++ b/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.brs5l
@@ -10,7 +10,6 @@ MEMORY {
ROM : ORIGIN = 0xffe00000, LENGTH = 2M
DPRAM : ORIGIN = 0xff000000, LENGTH = 1k
REGS : ORIGIN = 0xf0000000, LENGTH = 64k
- NIRVANA : ORIGIN = 0x0, LENGTH = 0
}
INCLUDE linkcmds.base
diff --git a/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.dp2 b/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.dp2
index 0aafdd7072..398919ae8c 100644
--- a/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.dp2
+++ b/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.dp2
@@ -10,7 +10,6 @@ MEMORY {
ROM : ORIGIN = 0xffe00000, LENGTH = 2M
REGS : ORIGIN = 0xf0000000, LENGTH = 64k
DPRAM : ORIGIN = 0x0, LENGTH = 0
- NIRVANA : ORIGIN = 0x0, LENGTH = 0
}
INCLUDE linkcmds.base
diff --git a/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.icecube b/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.icecube
index dc47f1b615..17c707fb49 100644
--- a/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.icecube
+++ b/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.icecube
@@ -10,7 +10,6 @@ MEMORY {
ROM : ORIGIN = 0xffe00000, LENGTH = 2M
REGS : ORIGIN = 0xf0000000, LENGTH = 64k
DPRAM : ORIGIN = 0x0, LENGTH = 0
- NIRVANA : ORIGIN = 0x0, LENGTH = 0
}
INCLUDE linkcmds.base
diff --git a/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.pm520_cr825 b/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.pm520_cr825
index 83c2596fc4..55b987695c 100644
--- a/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.pm520_cr825
+++ b/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.pm520_cr825
@@ -10,7 +10,6 @@ MEMORY {
ROM : ORIGIN = 0xffe00000, LENGTH = 2M
REGS : ORIGIN = 0xf0000000, LENGTH = 64k
DPRAM : ORIGIN = 0xff000000, LENGTH = 1k
- NIRVANA : ORIGIN = 0x0, LENGTH = 0
}
INCLUDE linkcmds.base
diff --git a/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.pm520_ze30 b/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.pm520_ze30
index 83c2596fc4..55b987695c 100644
--- a/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.pm520_ze30
+++ b/c/src/lib/libbsp/powerpc/gen5200/startup/linkcmds.pm520_ze30
@@ -10,7 +10,6 @@ MEMORY {
ROM : ORIGIN = 0xffe00000, LENGTH = 2M
REGS : ORIGIN = 0xf0000000, LENGTH = 64k
DPRAM : ORIGIN = 0xff000000, LENGTH = 1k
- NIRVANA : ORIGIN = 0x0, LENGTH = 0
}
INCLUDE linkcmds.base
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds b/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds
index 5f680246a2..9d7c4a8d36 100644
--- a/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds
+++ b/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds
@@ -12,7 +12,6 @@ MEMORY {
RAM : ORIGIN = 0x0, LENGTH = 128M
ROM : ORIGIN = 0xfe000000, LENGTH = 8M
MPC83XX_REGS : ORIGIN = 0xe0000000, LENGTH = 256k
- NIRVANA : ORIGIN = 0x0, LENGTH = 0
}
INCLUDE linkcmds.base
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.base b/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.base
index 6faeec1b70..9def5f0e88 100644
--- a/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.base
+++ b/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.base
@@ -22,6 +22,10 @@ RamBase = bsp_ram_start;
RamSize = bsp_ram_size;
HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
+MEMORY {
+ UNEXPECTED_SECTIONS : ORIGIN = 0xffffffff, LENGTH = 0
+}
+
SECTIONS {
/*
* BSP: MPC83XX registers
@@ -336,9 +340,12 @@ SECTIONS {
}
/*
- * BSP: Catch all unknown sections
+ * This is a RTEMS specific section to catch all unexpected input
+ * sections. In case you get an error like
+ * "section `.unexpected_sections' will not fit in region
+ * `UNEXPECTED_SECTIONS'"
+ * you have to figure out the offending input section and add it to the
+ * appropriate output section definition above.
*/
- .nirvana : {
- *(*)
- } > NIRVANA
+ .unexpected_sections : { *(*) } > UNEXPECTED_SECTIONS
}
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.hsc_cm01 b/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.hsc_cm01
index bbbf2ddbbd..021d2419d2 100644
--- a/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.hsc_cm01
+++ b/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.hsc_cm01
@@ -8,7 +8,6 @@ MEMORY {
RAM : ORIGIN = 0x0, LENGTH = 256M
ROM : ORIGIN = 0xfe000000, LENGTH = 8M
MPC83XX_REGS : ORIGIN = 0xe0000000, LENGTH = 1M
- NIRVANA : ORIGIN = 0x0, LENGTH = 0
}
INCLUDE linkcmds.base
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc8309som b/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc8309som
index 6f5e80137b..e2195b7259 100644
--- a/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc8309som
+++ b/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc8309som
@@ -8,7 +8,6 @@ MEMORY {
RAM : ORIGIN = 0x0, LENGTH = 256M
ROM : ORIGIN = 0xfe000000, LENGTH = 8M
MPC83XX_REGS : ORIGIN = 0xe0000000, LENGTH = 256k
- NIRVANA : ORIGIN = 0x0, LENGTH = 0
}
INCLUDE linkcmds.base
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc8313erdb b/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc8313erdb
index 0898e95570..4a47c9d863 100644
--- a/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc8313erdb
+++ b/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc8313erdb
@@ -8,7 +8,6 @@ MEMORY {
RAM : ORIGIN = 0x0, LENGTH = 128M
ROM : ORIGIN = 0xfe000000, LENGTH = 8M
MPC83XX_REGS : ORIGIN = 0xe0000000, LENGTH = 256k
- NIRVANA : ORIGIN = 0x0, LENGTH = 0
}
INCLUDE linkcmds.base
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc8349eamds b/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc8349eamds
index 7864bd023e..d140e073d2 100644
--- a/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc8349eamds
+++ b/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc8349eamds
@@ -8,7 +8,6 @@ MEMORY {
RAM : ORIGIN = 0x0, LENGTH = 256M
ROM : ORIGIN = 0xfe000000, LENGTH = 8M
MPC83XX_REGS : ORIGIN = 0xe0000000, LENGTH = 256k
- NIRVANA : ORIGIN = 0x0, LENGTH = 0
}
INCLUDE linkcmds.base
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.gwlcfm b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.gwlcfm
index 3f1bd3d9e4..391127f8c7 100644
--- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.gwlcfm
+++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.gwlcfm
@@ -3,7 +3,6 @@ MEMORY {
RAM : ORIGIN = 0x40000000, LENGTH = 80K
RAM_EXT : ORIGIN = 0x20000000, LENGTH = 512K
NOCACHE : ORIGIN = 0x0, LENGTH = 0
- NIRVANA : ORIGIN = 0x0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", ROM);
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5566evb b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5566evb
index 1989473d3d..12c6389642 100644
--- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5566evb
+++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5566evb
@@ -3,7 +3,6 @@ MEMORY {
RAM : ORIGIN = 0x40000000, LENGTH = 128K
RAM_EXT : ORIGIN = 0x20000000, LENGTH = 512K
NOCACHE : ORIGIN = 0x0, LENGTH = 0
- NIRVANA : ORIGIN = 0x0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", ROM);
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5643l_evb b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5643l_evb
index d0203be0d2..f9d2dc010c 100644
--- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5643l_evb
+++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5643l_evb
@@ -4,7 +4,6 @@ MEMORY {
RAM_1 : ORIGIN = 0x50000000, LENGTH = 64K
RAM_EXT : ORIGIN = 0x0, LENGTH = 0
NOCACHE : ORIGIN = 0x0, LENGTH = 0
- NIRVANA : ORIGIN = 0x0, LENGTH = 0
}
bsp_ram_1_start = ORIGIN (RAM_1);
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674fevb b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674fevb
index cb7c1ed7b0..5925207d4c 100644
--- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674fevb
+++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674fevb
@@ -3,7 +3,6 @@ MEMORY {
RAM : ORIGIN = 0x40000000, LENGTH = 256K - 16k
RAM_EXT : ORIGIN = 0x20000000, LENGTH = 512K
NOCACHE : ORIGIN = 0x4003c000, LENGTH = 16k
- NIRVANA : ORIGIN = 0x0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", ROM);
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.phycore_mpc5554 b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.phycore_mpc5554
index 18a0e8f44d..1db3190887 100644
--- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.phycore_mpc5554
+++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.phycore_mpc5554
@@ -8,7 +8,6 @@ MEMORY {
RAM_EXT : ORIGIN = 0x21000000, LENGTH = 4M
DEBUG_RAM : ORIGIN = 0x21400000, LENGTH = 4M
NOCACHE : ORIGIN = 0x0, LENGTH = 0
- NIRVANA : ORIGIN = 0x00000000, LENGTH = 0
}
bsp_debug_ram_start = ORIGIN (DEBUG_RAM);
diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/linkcmds.qoriq_core_0 b/c/src/lib/libbsp/powerpc/qoriq/startup/linkcmds.qoriq_core_0
index d30d1c8f92..502a26ce58 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/startup/linkcmds.qoriq_core_0
+++ b/c/src/lib/libbsp/powerpc/qoriq/startup/linkcmds.qoriq_core_0
@@ -7,7 +7,6 @@
MEMORY {
LOW : ORIGIN = 0x4000, LENGTH = 16M - 16k
HIGH : ORIGIN = 0x1000000, LENGTH = 32M
- NIRVANA : ORIGIN = 0x0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", LOW);
@@ -25,8 +24,8 @@ REGION_ALIAS ("REGION_BSS", HIGH);
REGION_ALIAS ("REGION_RWEXTRA", HIGH);
REGION_ALIAS ("REGION_WORK", HIGH);
REGION_ALIAS ("REGION_STACK", HIGH);
-REGION_ALIAS ("REGION_NOCACHE", NIRVANA);
-REGION_ALIAS ("REGION_NOCACHE_LOAD", NIRVANA);
+REGION_ALIAS ("REGION_NOCACHE", HIGH);
+REGION_ALIAS ("REGION_NOCACHE_LOAD", HIGH);
bsp_section_robarrier_align = 0x1000000;
bsp_section_rwbarrier_align = 0x1000000;
diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/linkcmds.qoriq_core_1 b/c/src/lib/libbsp/powerpc/qoriq/startup/linkcmds.qoriq_core_1
index 1bc021d2a5..82fadf71dd 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/startup/linkcmds.qoriq_core_1
+++ b/c/src/lib/libbsp/powerpc/qoriq/startup/linkcmds.qoriq_core_1
@@ -6,7 +6,6 @@
MEMORY {
RAM : ORIGIN = 0x4000000, LENGTH = 64M
- NIRVANA : ORIGIN = 0x0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", RAM);
@@ -24,8 +23,8 @@ REGION_ALIAS ("REGION_BSS", RAM);
REGION_ALIAS ("REGION_RWEXTRA", RAM);
REGION_ALIAS ("REGION_WORK", RAM);
REGION_ALIAS ("REGION_STACK", RAM);
-REGION_ALIAS ("REGION_NOCACHE", NIRVANA);
-REGION_ALIAS ("REGION_NOCACHE_LOAD", NIRVANA);
+REGION_ALIAS ("REGION_NOCACHE", RAM);
+REGION_ALIAS ("REGION_NOCACHE_LOAD", RAM);
bsp_section_robarrier_align = 0x1000000;
bsp_section_rwbarrier_align = 0x1000000;
diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/linkcmds.qoriq_p1020rdb b/c/src/lib/libbsp/powerpc/qoriq/startup/linkcmds.qoriq_p1020rdb
index 3543414a79..ef7fd575c5 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/startup/linkcmds.qoriq_p1020rdb
+++ b/c/src/lib/libbsp/powerpc/qoriq/startup/linkcmds.qoriq_p1020rdb
@@ -7,7 +7,6 @@
MEMORY {
LOW : ORIGIN = 0x4000, LENGTH = 16M - 16k
HIGH : ORIGIN = 0x1000000, LENGTH = 32M
- NIRVANA : ORIGIN = 0x0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", LOW);
@@ -25,8 +24,8 @@ REGION_ALIAS ("REGION_BSS", HIGH);
REGION_ALIAS ("REGION_RWEXTRA", HIGH);
REGION_ALIAS ("REGION_WORK", HIGH);
REGION_ALIAS ("REGION_STACK", HIGH);
-REGION_ALIAS ("REGION_NOCACHE", NIRVANA);
-REGION_ALIAS ("REGION_NOCACHE_LOAD", NIRVANA);
+REGION_ALIAS ("REGION_NOCACHE", HIGH);
+REGION_ALIAS ("REGION_NOCACHE_LOAD", HIGH);
bsp_section_robarrier_align = 0x1000000;
bsp_section_rwbarrier_align = 0x1000000;
diff --git a/c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base b/c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base
index 95453a9457..5c6f5e6cd6 100644
--- a/c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base
+++ b/c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base
@@ -34,6 +34,10 @@ bsp_section_xbarrier_align = DEFINED (bsp_section_xbarrier_align) ? bsp_section_
bsp_section_robarrier_align = DEFINED (bsp_section_robarrier_align) ? bsp_section_robarrier_align : 1;
bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? bsp_section_rwbarrier_align : 1;
+MEMORY {
+ UNEXPECTED_SECTIONS : ORIGIN = 0xffffffff, LENGTH = 0
+}
+
SECTIONS {
.start : {
bsp_section_start_begin = .;
@@ -379,6 +383,13 @@ SECTIONS {
.PPC.EMB.apuinfo 0 : { *(.PPC.EMB.apuinfo) }
/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
- /* Catch all unknown sections */
- .nirvana : { *(*) } > NIRVANA
+ /*
+ * This is a RTEMS specific section to catch all unexpected input
+ * sections. In case you get an error like
+ * "section `.unexpected_sections' will not fit in region
+ * `UNEXPECTED_SECTIONS'"
+ * you have to figure out the offending input section and add it to the
+ * appropriate output section definition above.
+ */
+ .unexpected_sections : { *(*) } > UNEXPECTED_SECTIONS
}
diff --git a/c/src/lib/libbsp/powerpc/t32mppc/startup/linkcmds.t32mppc b/c/src/lib/libbsp/powerpc/t32mppc/startup/linkcmds.t32mppc
index b4f6e98997..a73da78312 100644
--- a/c/src/lib/libbsp/powerpc/t32mppc/startup/linkcmds.t32mppc
+++ b/c/src/lib/libbsp/powerpc/t32mppc/startup/linkcmds.t32mppc
@@ -1,6 +1,5 @@
MEMORY {
RAM : ORIGIN = 0x0, LENGTH = 128M
- NIRVANA : ORIGIN = 0x0, LENGTH = 0
}
REGION_ALIAS ("REGION_START", RAM);
@@ -18,7 +17,7 @@ REGION_ALIAS ("REGION_BSS", RAM);
REGION_ALIAS ("REGION_RWEXTRA", RAM);
REGION_ALIAS ("REGION_WORK", RAM);
REGION_ALIAS ("REGION_STACK", RAM);
-REGION_ALIAS ("REGION_NOCACHE", NIRVANA);
-REGION_ALIAS ("REGION_NOCACHE_LOAD", NIRVANA);
+REGION_ALIAS ("REGION_NOCACHE", RAM);
+REGION_ALIAS ("REGION_NOCACHE_LOAD", RAM);
INCLUDE linkcmds.base
diff --git a/c/src/lib/libbsp/powerpc/tqm8xx/startup/linkcmds.base b/c/src/lib/libbsp/powerpc/tqm8xx/startup/linkcmds.base
index c4a0eec115..0525e5c915 100644
--- a/c/src/lib/libbsp/powerpc/tqm8xx/startup/linkcmds.base
+++ b/c/src/lib/libbsp/powerpc/tqm8xx/startup/linkcmds.base
@@ -18,6 +18,10 @@ bsp_rom_size = LENGTH (ROM);
bsp_section_align = 32;
+MEMORY {
+ UNEXPECTED_SECTIONS : ORIGIN = 0xffffffff, LENGTH = 0
+}
+
SECTIONS {
dpram :
@@ -306,11 +310,14 @@ SECTIONS {
/DISCARD/ : {
*(.note.GNU-stack) *(.gnu_debuglink)
}
-
+
/*
- * BSP: Catch all unknown sections
+ * This is a RTEMS specific section to catch all unexpected input
+ * sections. In case you get an error like
+ * "section `.unexpected_sections' will not fit in region
+ * `UNEXPECTED_SECTIONS'"
+ * you have to figure out the offending input section and add it to the
+ * appropriate output section definition above.
*/
- .nirvana : {
- *(*)
- } > NIRVANA
+ .unexpected_sections : { *(*) } > UNEXPECTED_SECTIONS
}
diff --git a/c/src/lib/libbsp/powerpc/tqm8xx/startup/linkcmds.tqm8xx b/c/src/lib/libbsp/powerpc/tqm8xx/startup/linkcmds.tqm8xx
index 69b9c32799..d5668b67be 100644
--- a/c/src/lib/libbsp/powerpc/tqm8xx/startup/linkcmds.tqm8xx
+++ b/c/src/lib/libbsp/powerpc/tqm8xx/startup/linkcmds.tqm8xx
@@ -9,7 +9,6 @@ MEMORY {
RAM : ORIGIN = 0x0, LENGTH = 128M
immr : org = 0xfa200000, l = 16K
ROM : ORIGIN = 0x40000000, LENGTH = 8M
- NIRVANA : ORIGIN = 0x0, LENGTH = 0
}
INCLUDE linkcmds.base
diff --git a/c/src/libchip/ide/ata.c b/c/src/libchip/ide/ata.c
index 245d6d6f15..18d8d14386 100644
--- a/c/src/libchip/ide/ata.c
+++ b/c/src/libchip/ide/ata.c
@@ -33,7 +33,7 @@ bool ata_trace;
#define ata_printf if (ata_trace) printf
#endif
-#if !defined(CPU_SIMPLE_VECTORED_INTERRUPTS)
+#if CPU_SIMPLE_VECTORED_INTERRUPTS != TRUE
#include <rtems/irq.h>
#define ATA_IRQ_CHAIN_MAX_CNT 4 /* support up to 4 ATA devices */
typedef struct {
@@ -134,7 +134,7 @@ static bool ata_initialized = false;
static rtems_id ata_task_id;
static rtems_id ata_queue_id;
-#if defined(CPU_SIMPLE_VECTORED_INTERRUPTS)
+#if CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE
/* Mapping of interrupt vectors to devices */
static rtems_chain_control ata_int_vec[ATA_MAX_RTEMS_INT_VEC_NUMBER + 1];
#endif
@@ -632,7 +632,7 @@ ata_add_to_controller_queue(rtems_device_minor_number ctrl_minor,
* RETURNS:
* NONE
*/
-#if defined(CPU_SIMPLE_VECTORED_INTERRUPTS)
+#if CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE
static rtems_isr ata_interrupt_handler(rtems_vector_number vec)
{
rtems_chain_node *the_node = rtems_chain_first(&ata_int_vec[vec]);
@@ -1153,7 +1153,7 @@ rtems_ata_initialize(rtems_device_major_number major,
dev_t device;
ata_int_st_t *int_st;
-#if defined(CPU_SIMPLE_VECTORED_INTERRUPTS)
+#if CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE
rtems_isr_entry old_isr;
#else
int ata_irq_chain_use;
@@ -1238,7 +1238,7 @@ rtems_ata_initialize(rtems_device_major_number major,
for (i = 0; i < (2 * IDE_CTRL_MAX_MINOR_NUMBER); i++)
ata_devs[i].device = ATA_UNDEFINED_VALUE;
-#if defined(CPU_SIMPLE_VECTORED_INTERRUPTS)
+#if CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE
/* prepare ATA driver for handling interrupt driven devices */
for (i = 0; i < ATA_MAX_RTEMS_INT_VEC_NUMBER; i++)
rtems_chain_initialize_empty(&ata_int_vec[i]);
@@ -1278,7 +1278,7 @@ rtems_ata_initialize(rtems_device_major_number major,
}
int_st->ctrl_minor = ctrl_minor;
-#if defined(CPU_SIMPLE_VECTORED_INTERRUPTS)
+#if CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE
status = rtems_interrupt_catch(
ata_interrupt_handler,
IDE_Controller_Table[ctrl_minor].int_vec,
@@ -1330,7 +1330,7 @@ rtems_ata_initialize(rtems_device_major_number major,
rtems_disk_io_done();
return status;
}
-#if defined(CPU_SIMPLE_VECTORED_INTERRUPTS)
+#if CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE
rtems_chain_append(
&ata_int_vec[IDE_Controller_Table[ctrl_minor].int_vec],
&int_st->link);
diff --git a/cpukit/rtems/src/clockgetsecondssinceepoch.c b/cpukit/rtems/src/clockgetsecondssinceepoch.c
index 040a4070e0..91ca553421 100644
--- a/cpukit/rtems/src/clockgetsecondssinceepoch.c
+++ b/cpukit/rtems/src/clockgetsecondssinceepoch.c
@@ -28,7 +28,7 @@ rtems_status_code rtems_clock_get_seconds_since_epoch(
if ( !the_interval )
return RTEMS_INVALID_ADDRESS;
- if ( !_TOD_Is_set )
+ if ( !_TOD.is_set )
return RTEMS_NOT_DEFINED;
*the_interval = _TOD_Seconds_since_epoch();
diff --git a/cpukit/rtems/src/clockgettod.c b/cpukit/rtems/src/clockgettod.c
index b94d0dc118..dd68ec578d 100644
--- a/cpukit/rtems/src/clockgettod.c
+++ b/cpukit/rtems/src/clockgettod.c
@@ -33,7 +33,7 @@ rtems_status_code rtems_clock_get_tod(
if ( !time_buffer )
return RTEMS_INVALID_ADDRESS;
- if ( !_TOD_Is_set )
+ if ( !_TOD.is_set )
return RTEMS_NOT_DEFINED;
/* Obtain the current time */
diff --git a/cpukit/rtems/src/clockgettodtimeval.c b/cpukit/rtems/src/clockgettodtimeval.c
index 66eab0b9f4..a3fb49d92e 100644
--- a/cpukit/rtems/src/clockgettodtimeval.c
+++ b/cpukit/rtems/src/clockgettodtimeval.c
@@ -28,7 +28,7 @@ rtems_status_code rtems_clock_get_tod_timeval(
if ( !time )
return RTEMS_INVALID_ADDRESS;
- if ( !_TOD_Is_set )
+ if ( !_TOD.is_set )
return RTEMS_NOT_DEFINED;
_TOD_Get_timeval( time );
diff --git a/cpukit/rtems/src/taskwakewhen.c b/cpukit/rtems/src/taskwakewhen.c
index 8043db548d..d181848c91 100644
--- a/cpukit/rtems/src/taskwakewhen.c
+++ b/cpukit/rtems/src/taskwakewhen.c
@@ -51,7 +51,7 @@ rtems_status_code rtems_task_wake_when(
{
Watchdog_Interval seconds;
- if ( !_TOD_Is_set )
+ if ( !_TOD.is_set )
return RTEMS_NOT_DEFINED;
if ( !time_buffer )
diff --git a/cpukit/rtems/src/timerfirewhen.c b/cpukit/rtems/src/timerfirewhen.c
index b3e1231ef0..df24e2aad3 100644
--- a/cpukit/rtems/src/timerfirewhen.c
+++ b/cpukit/rtems/src/timerfirewhen.c
@@ -50,7 +50,7 @@ rtems_status_code rtems_timer_fire_when(
Objects_Locations location;
rtems_interval seconds;
- if ( !_TOD_Is_set )
+ if ( !_TOD.is_set )
return RTEMS_NOT_DEFINED;
if ( !_TOD_Validate( wall_time ) )
diff --git a/cpukit/rtems/src/timerserverfirewhen.c b/cpukit/rtems/src/timerserverfirewhen.c
index 2a1172d420..5f029a0d35 100644
--- a/cpukit/rtems/src/timerserverfirewhen.c
+++ b/cpukit/rtems/src/timerserverfirewhen.c
@@ -55,7 +55,7 @@ rtems_status_code rtems_timer_server_fire_when(
if ( !timer_server )
return RTEMS_INCORRECT_STATE;
- if ( !_TOD_Is_set )
+ if ( !_TOD.is_set )
return RTEMS_NOT_DEFINED;
if ( !routine )
diff --git a/cpukit/sapi/include/confdefs.h b/cpukit/sapi/include/confdefs.h
index 0f804ee7cc..d4f21ca376 100644
--- a/cpukit/sapi/include/confdefs.h
+++ b/cpukit/sapi/include/confdefs.h
@@ -2323,6 +2323,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
CONFIGURE_STACK_SPACE_SIZE, /* required stack space */
CONFIGURE_MAXIMUM_USER_EXTENSIONS, /* maximum dynamic extensions */
CONFIGURE_MICROSECONDS_PER_TICK, /* microseconds per clock tick */
+ 1000 * CONFIGURE_MICROSECONDS_PER_TICK, /* nanoseconds per clock tick */
CONFIGURE_TICKS_PER_TIMESLICE, /* ticks per timeslice quantum */
CONFIGURE_IDLE_TASK_BODY, /* user's IDLE task */
CONFIGURE_IDLE_TASK_STACK_SIZE, /* IDLE task stack size */
diff --git a/cpukit/sapi/include/rtems/config.h b/cpukit/sapi/include/rtems/config.h
index 8bc5aea50c..58b350da76 100644
--- a/cpukit/sapi/include/rtems/config.h
+++ b/cpukit/sapi/include/rtems/config.h
@@ -146,6 +146,13 @@ typedef struct {
*/
uint32_t microseconds_per_tick;
+ /** This field specifies the number of nanoseconds which elapse
+ * between clock ticks. This value is derived from the
+ * microseconds_per_tick field and provided to avoid calculation at
+ * run-time.
+ */
+ uint32_t nanoseconds_per_tick;
+
/** This field specifies the number of ticks in each task's timeslice.
*/
uint32_t ticks_per_timeslice;
@@ -281,7 +288,13 @@ extern rtems_configuration_table Configuration;
#define rtems_configuration_get_milliseconds_per_tick() \
(Configuration.microseconds_per_tick / 1000)
#define rtems_configuration_get_nanoseconds_per_tick() \
- (Configuration.microseconds_per_tick * 1000)
+ (Configuration.nanoseconds_per_tick)
+#define rtems_configuration_set_microseconds_per_tick( _us ) \
+ do { \
+ Configuration.microseconds_per_tick = (_us); \
+ Configuration.nanoseconds_per_tick = \
+ 1000 * Configuration.microseconds_per_tick; \
+ } while (0)
#define rtems_configuration_get_ticks_per_timeslice() \
(Configuration.ticks_per_timeslice)
diff --git a/cpukit/score/cpu/v850/rtems/score/cpu.h b/cpukit/score/cpu/v850/rtems/score/cpu.h
index 591af00e36..875f1607c7 100644
--- a/cpukit/score/cpu/v850/rtems/score/cpu.h
+++ b/cpukit/score/cpu/v850/rtems/score/cpu.h
@@ -1154,10 +1154,23 @@ static inline uint32_t CPU_swap_u32(
uint32_t value
)
{
- unsigned int v, swapped;
+ unsigned int swapped;
- v = value;
- __asm__ __volatile__ ("bsw %0, %1" : "=r" (v), "=&r" (swapped) );
+ #if (V850_HAS_BYTE_SWAP_INSTRUCTION == 1)
+ unsigned int v;
+
+ v = value;
+ __asm__ __volatile__ ("bsw %0, %1" : "=r" (v), "=&r" (swapped) );
+ #else
+ uint32_t byte1, byte2, byte3, byte4;
+
+ byte4 = (value >> 24) & 0xff;
+ byte3 = (value >> 16) & 0xff;
+ byte2 = (value >> 8) & 0xff;
+ byte1 = value & 0xff;
+
+ swapped = (byte1 << 24) | (byte2 << 16) | (byte3 << 8) | byte4;
+ #endif
return swapped;
}
@@ -1174,10 +1187,16 @@ static inline uint32_t CPU_swap_u32(
*/
static inline uint16_t CPU_swap_u16( uint16_t value )
{
- unsigned int v, swapped;
+ unsigned int swapped;
+
+ #if (V850_HAS_BYTE_SWAP_INSTRUCTION == 1)
+ unsigned int v;
- v = value;
- __asm__ __volatile__ ("bsh %0, %1" : "=r" (v), "=&r" (swapped) );
+ v = value;
+ __asm__ __volatile__ ("bsh %0, %1" : "=r" (v), "=&r" (swapped) );
+ #else
+ swapped = ((value & 0xff) << 8) | ((value >> 8) & 0xff);
+ #endif
return swapped;
}
diff --git a/cpukit/score/cpu/v850/rtems/score/v850.h b/cpukit/score/cpu/v850/rtems/score/v850.h
index b76ddbcd0b..3e9bec56f3 100644
--- a/cpukit/score/cpu/v850/rtems/score/v850.h
+++ b/cpukit/score/cpu/v850/rtems/score/v850.h
@@ -40,30 +40,37 @@ extern "C" {
*/
#define CPU_MODEL_NAME "rtems_multilib"
#define V850_HAS_FPU 0
+#define V850_HAS_BYTE_SWAP_INSTRUCTION 0
#elif defined(__v850e2v3__)
#define CPU_MODEL_NAME "v850e2v3"
#define V850_HAS_FPU 1
+#define V850_HAS_BYTE_SWAP_INSTRUCTION 1
#elif defined(__v850e2__)
#define CPU_MODEL_NAME "v850e2"
#define V850_HAS_FPU 0
+#define V850_HAS_BYTE_SWAP_INSTRUCTION 1
#elif defined(__v850es__)
#define CPU_MODEL_NAME "v850es"
#define V850_HAS_FPU 0
+#define V850_HAS_BYTE_SWAP_INSTRUCTION 1
#elif defined(__v850e1__)
#define CPU_MODEL_NAME "v850e1"
#define V850_HAS_FPU 0
+#define V850_HAS_BYTE_SWAP_INSTRUCTION 1
#elif defined(__v850e__)
#define CPU_MODEL_NAME "v850e"
#define V850_HAS_FPU 0
+#define V850_HAS_BYTE_SWAP_INSTRUCTION 1
#else
#define CPU_MODEL_NAME "v850"
-#define V850_HAS_FPU 0
+#define V850_HAS_FPU 0
+#define V850_HAS_BYTE_SWAP_INSTRUCTION 0
#endif
diff --git a/cpukit/score/include/rtems/score/timestamp.h b/cpukit/score/include/rtems/score/timestamp.h
index b86090978e..83948b46e1 100644
--- a/cpukit/score/include/rtems/score/timestamp.h
+++ b/cpukit/score/include/rtems/score/timestamp.h
@@ -194,31 +194,6 @@ extern "C" {
#endif
/**
- * @brief Add to a Timestamp (At Clock Tick)
- *
- * This routine adds two timestamps. The second argument is added
- * to the first.
- *
- * @node This routine places a special requirement on the addition
- * operation. It must return the number of units that the
- * seconds field changed as the result of the addition. Since this
- * operation is ONLY used as part of processing a clock tick,
- * it is generally safe to assume that only one second changed.
- *
- * @param[in] _time points to the base time to be added to
- * @param[in] _add points to the timestamp to add to the first argument
- *
- * @return This method returns the number of seconds @a time increased by.
- */
-#if CPU_TIMESTAMP_USE_STRUCT_TIMESPEC == TRUE
- #define _Timestamp_Add_to_at_tick( _time, _add ) \
- _Timespec_Add_to( _time, _add )
-#else
- #define _Timestamp_Add_to_at_tick( _time, _add ) \
- _Timestamp64_Add_to_at_tick( _time, _add )
-#endif
-
-/**
* @brief Convert Timestamp to Number of Ticks
*
* This routine convert the @a time timestamp to the corresponding number
diff --git a/cpukit/score/include/rtems/score/timestamp64.h b/cpukit/score/include/rtems/score/timestamp64.h
index 08d3ac7ecd..1c1ea2c90c 100644
--- a/cpukit/score/include/rtems/score/timestamp64.h
+++ b/cpukit/score/include/rtems/score/timestamp64.h
@@ -209,36 +209,6 @@ static inline void _Timestamp64_implementation_Add_to(
#endif
/**
- * @brief Add to a Timestamp (At Clock Tick)
- *
- * This routine adds two timestamps. The second argument is added
- * to the first.
- *
- * @node This routine places a special requirement on the addition
- * operation. It must return the number of units that the
- * seconds field changed as the result of the addition. Since this
- * operation is ONLY used as part of processing a clock tick,
- * it is generally safe to assume that only one second changed.
- *
- * @param[in] _time points to the base time to be added to
- * @param[in] _add points to the timestamp to add to the first argument
- *
- * @return This method returns the number of seconds @a time increased by.
- */
-static inline uint32_t _Timestamp64_Add_to_at_tick(
- Timestamp64_Control *_time,
- const Timestamp64_Control *_add
-)
-{
- Timestamp64_Control _start = *_time / 1000000000L;
- *_time += *_add;
- if ( ((*_time) / 1000000000L) != _start ) {
- return 1;
- }
- return 0;
-}
-
-/**
* @brief Convert Timestamp to Number of Ticks
*
* This routine convert the @a time timestamp to the corresponding number
diff --git a/cpukit/score/include/rtems/score/tod.h b/cpukit/score/include/rtems/score/tod.h
index e9a2e84381..cfb0fe776d 100644
--- a/cpukit/score/include/rtems/score/tod.h
+++ b/cpukit/score/include/rtems/score/tod.h
@@ -123,26 +123,38 @@ extern "C" {
/**@{*/
/**
- * @brief Is the Time Of Day Set
- *
- * This is true if the application has set the current
- * time of day, and false otherwise.
- */
-SCORE_EXTERN bool _TOD_Is_set;
-
-/**
- * @brief Current Time of Day (Timespec)
- *
- * The following contains the current time of day.
- */
-SCORE_EXTERN Timestamp_Control _TOD_Now;
-
-/**
- * @brief Current Time of Day (Timespec)
- *
- * The following contains the running uptime.
- */
-SCORE_EXTERN Timestamp_Control _TOD_Uptime;
+ * @brief TOD control.
+ */
+typedef struct {
+ /**
+ * @brief Current time of day value.
+ */
+ Timestamp_Control now;
+
+ /**
+ * @brief System uptime.
+ */
+ Timestamp_Control uptime;
+
+ /**
+ * @brief Time of day seconds trigger.
+ *
+ * This value specifies the nanoseconds since the last time of day second.
+ * It is updated and evaluated in _TOD_Tickle_ticks(). It is set in
+ * _TOD_Set_with_timestamp().
+ */
+ uint32_t seconds_trigger;
+
+ /**
+ * @brief Indicates if the time of day is set.
+ *
+ * This is true if the application has set the current
+ * time of day, and false otherwise.
+ */
+ bool is_set;
+} TOD_Control;
+
+SCORE_EXTERN TOD_Control _TOD;
/**
* @brief Seconds Since RTEMS Epoch
@@ -151,7 +163,7 @@ SCORE_EXTERN Timestamp_Control _TOD_Uptime;
* January 1, TOD_BASE_YEAR until the current time of day.
*/
#define _TOD_Seconds_since_epoch() \
- _Timestamp_Get_seconds(&_TOD_Now)
+ _Timestamp_Get_seconds(&_TOD.now)
/**
* @brief _TOD_Handler_initialization
diff --git a/cpukit/score/src/coretod.c b/cpukit/score/src/coretod.c
index 30efa76d79..1784a897a4 100644
--- a/cpukit/score/src/coretod.c
+++ b/cpukit/score/src/coretod.c
@@ -33,12 +33,12 @@
void _TOD_Handler_initialization(void)
{
/* POSIX format TOD (timespec) */
- _Timestamp_Set( &_TOD_Now, TOD_SECONDS_1970_THROUGH_1988, 0 );
+ _Timestamp_Set( &_TOD.now, TOD_SECONDS_1970_THROUGH_1988, 0 );
/* Uptime (timespec) */
- _Timestamp_Set_to_zero( &_TOD_Uptime );
+ _Timestamp_Set_to_zero( &_TOD.uptime );
/* TOD has not been set */
- _TOD_Is_set = false;
+ _TOD.is_set = false;
_TOD_Activate();
}
diff --git a/cpukit/score/src/coretodget.c b/cpukit/score/src/coretodget.c
index 3e73a8daab..94517e5926 100644
--- a/cpukit/score/src/coretodget.c
+++ b/cpukit/score/src/coretodget.c
@@ -31,9 +31,9 @@ void _TOD_Get_as_timestamp(
/* assume time checked for NULL by caller */
- /* _TOD_Now is the native current time */
+ /* _TOD.now is the native current time */
_ISR_Disable( level );
- now = _TOD_Now;
+ now = _TOD.now;
nanoseconds = (*_Watchdog_Nanoseconds_since_tick_handler)();
_ISR_Enable( level );
diff --git a/cpukit/score/src/coretodgetuptime.c b/cpukit/score/src/coretodgetuptime.c
index 454252921e..c3c05aed3c 100644
--- a/cpukit/score/src/coretodgetuptime.c
+++ b/cpukit/score/src/coretodgetuptime.c
@@ -42,9 +42,9 @@ void _TOD_Get_uptime(
/* assume time checked for NULL by caller */
- /* _TOD_Uptime is in native timestamp format */
+ /* _TOD.uptime is in native timestamp format */
_ISR_Disable( level );
- up = _TOD_Uptime;
+ up = _TOD.uptime;
nanoseconds = (*_Watchdog_Nanoseconds_since_tick_handler)();
_ISR_Enable( level );
diff --git a/cpukit/score/src/coretodset.c b/cpukit/score/src/coretodset.c
index e1b86a3976..8b0928af60 100644
--- a/cpukit/score/src/coretodset.c
+++ b/cpukit/score/src/coretodset.c
@@ -25,6 +25,7 @@ void _TOD_Set_with_timestamp(
const Timestamp_Control *tod
)
{
+ uint32_t nanoseconds = _Timestamp_Get_nanoseconds( tod );
Watchdog_Interval seconds_next = _Timestamp_Get_seconds( tod );
Watchdog_Interval seconds_now;
@@ -38,8 +39,9 @@ void _TOD_Set_with_timestamp(
else
_Watchdog_Adjust_seconds( WATCHDOG_FORWARD, seconds_next - seconds_now );
- _TOD_Now = *tod;
- _TOD_Is_set = true;
+ _TOD.now = *tod;
+ _TOD.seconds_trigger = nanoseconds;
+ _TOD.is_set = true;
_TOD_Activate();
_Thread_Enable_dispatch();
diff --git a/cpukit/score/src/coretodtickle.c b/cpukit/score/src/coretodtickle.c
index 25ab6f3408..d0412f85d4 100644
--- a/cpukit/score/src/coretodtickle.c
+++ b/cpukit/score/src/coretodtickle.c
@@ -35,23 +35,27 @@
void _TOD_Tickle_ticks( void )
{
Timestamp_Control tick;
- uint32_t seconds;
+ uint32_t nanoseconds_per_tick;
+
+ nanoseconds_per_tick = rtems_configuration_get_nanoseconds_per_tick();
/* Convert the tick quantum to a timestamp */
- _Timestamp_Set( &tick, 0, rtems_configuration_get_nanoseconds_per_tick() );
+ _Timestamp_Set( &tick, 0, nanoseconds_per_tick );
/* Update the counter of ticks since boot */
_Watchdog_Ticks_since_boot += 1;
- /* Update the timespec format uptime */
- _Timestamp_Add_to( &_TOD_Uptime, &tick );
+ /* Update the uptime */
+ _Timestamp_Add_to( &_TOD.uptime, &tick );
/* we do not care how much the uptime changed */
- /* Update the timespec format TOD */
- seconds = _Timestamp_Add_to_at_tick( &_TOD_Now, &tick );
- while ( seconds ) {
+ /* Update the current TOD */
+ _Timestamp_Add_to( &_TOD.now, &tick );
+
+ _TOD.seconds_trigger += nanoseconds_per_tick;
+ if ( _TOD.seconds_trigger >= 1000000000UL ) {
+ _TOD.seconds_trigger -= 1000000000UL;
_Watchdog_Tickle_seconds();
- seconds--;
}
}
diff --git a/testsuites/sptests/spsize/size.c b/testsuites/sptests/spsize/size.c
index cc37288765..529cdd3049 100644
--- a/testsuites/sptests/spsize/size.c
+++ b/testsuites/sptests/spsize/size.c
@@ -406,8 +406,8 @@ uninitialized =
/*timer.h*/ (sizeof _Timer_Information) +
-/*tod.h*/ (sizeof _TOD_Now) +
- (sizeof _TOD_Uptime) +
+/*tod.h*/ (sizeof _TOD.now) +
+ (sizeof _TOD.uptime) +
/*tqdata.h*/ 0 +