Browse Source

* Header file cleanup for ARM

* Patch by Murray Jensen, 24 Jun 2003:
  - make sure to use only U-boot provided header files
  - fix problems with ".rodata.str1.4" section as used by GCC-3.x
wdenk 21 years ago
parent
commit
b783edaee8
100 changed files with 510 additions and 3 deletions
  1. 6 0
      CHANGELOG
  2. 1 1
      Makefile
  3. 1 0
      board/LEOX/elpt860/u-boot.lds
  4. 1 0
      board/MAI/AmigaOneG3SE/u-boot.lds
  5. 1 0
      board/RPXClassic/u-boot.lds
  6. 1 0
      board/RPXlite/u-boot.lds
  7. 1 0
      board/RRvision/u-boot.lds
  8. 1 0
      board/atc/u-boot.lds
  9. 1 0
      board/bmw/u-boot.lds
  10. 1 0
      board/bubinga405ep/u-boot.lds
  11. 1 0
      board/c2mon/u-boot.lds
  12. 1 0
      board/cmi/u-boot.lds
  13. 1 0
      board/cpc45/u-boot.lds
  14. 1 0
      board/cpu86/u-boot.lds
  15. 1 0
      board/cray/L1/u-boot.lds
  16. 1 0
      board/cu824/u-boot.lds
  17. 1 0
      board/ebony/u-boot.lds
  18. 1 0
      board/eltec/bab7xx/u-boot.lds
  19. 1 0
      board/eltec/elppc/u-boot.lds
  20. 1 0
      board/eltec/mhpc/u-boot.lds
  21. 1 0
      board/emk/top860/u-boot.lds
  22. 1 0
      board/ep8260/u-boot.lds
  23. 1 0
      board/eric/u-boot.lds
  24. 1 0
      board/esd/adciop/u-boot.lds
  25. 1 0
      board/esd/ar405/u-boot.lds
  26. 1 0
      board/esd/ash405/u-boot.lds
  27. 1 0
      board/esd/canbt/u-boot.lds
  28. 1 0
      board/esd/cpci405/u-boot.lds
  29. 1 0
      board/esd/cpci440/u-boot.lds
  30. 1 0
      board/esd/cpciiser4/u-boot.lds
  31. 1 0
      board/esd/dasa_sim/u-boot.lds
  32. 1 0
      board/esd/du405/u-boot.lds
  33. 1 0
      board/esd/ocrtc/u-boot.lds
  34. 1 0
      board/esd/pci405/u-boot.lds
  35. 1 0
      board/esd/pmc405/u-boot.lds
  36. 1 0
      board/esteem192e/u-boot.lds
  37. 1 0
      board/etx094/u-boot.lds
  38. 1 0
      board/evb64260/u-boot.lds
  39. 1 0
      board/fads/u-boot.lds
  40. 1 0
      board/flagadm/u-boot.lds
  41. 1 0
      board/gen860t/u-boot-flashenv.lds
  42. 1 0
      board/gen860t/u-boot.lds
  43. 1 0
      board/genietv/u-boot.lds
  44. 1 0
      board/gth/u-boot.lds
  45. 1 0
      board/gw8260/u-boot.lds
  46. 1 0
      board/hermes/u-boot.lds
  47. 1 0
      board/hymod/u-boot.lds
  48. 1 0
      board/icu862/u-boot.lds
  49. 1 0
      board/ip860/u-boot.lds
  50. 1 0
      board/iphase4539/u-boot.lds
  51. 1 0
      board/ivm/u-boot.lds
  52. 1 0
      board/kup4k/u-boot.lds
  53. 1 0
      board/lantec/u-boot.lds
  54. 1 0
      board/lwmon/u-boot.lds
  55. 1 0
      board/mbx8xx/u-boot.lds
  56. 1 0
      board/ml2/u-boot.lds
  57. 1 0
      board/mousse/u-boot.lds
  58. 1 0
      board/mpc8260ads/u-boot.lds
  59. 1 0
      board/mpc8266ads/u-boot.lds
  60. 1 0
      board/mpl/mip405/u-boot.lds
  61. 1 0
      board/mpl/pip405/u-boot.lds
  62. 1 0
      board/musenki/u-boot.lds
  63. 1 0
      board/mvs1/u-boot.lds
  64. 1 0
      board/netvia/u-boot.lds
  65. 1 0
      board/nx823/u-boot.lds
  66. 1 0
      board/oxc/u-boot.lds
  67. 1 0
      board/pcippc2/u-boot.lds
  68. 1 0
      board/pm826/u-boot.lds
  69. 1 0
      board/pn62/u-boot.lds
  70. 1 0
      board/ppmc8260/u-boot.lds
  71. 1 0
      board/r360mpi/u-boot.lds
  72. 1 0
      board/rbc823/u-boot.lds
  73. 1 0
      board/rmu/u-boot.lds
  74. 1 0
      board/rpxsuper/u-boot.lds
  75. 1 0
      board/rsdproto/u-boot.lds
  76. 1 0
      board/sacsng/u-boot.lds
  77. 1 0
      board/sandpoint/u-boot.lds
  78. 1 0
      board/sbc8260/u-boot.lds
  79. 1 0
      board/siemens/CCM/u-boot.lds
  80. 1 0
      board/siemens/IAD210/u-boot.lds
  81. 1 0
      board/siemens/SCM/u-boot.lds
  82. 1 0
      board/siemens/pcu_e/u-boot.lds
  83. 1 0
      board/sixnet/u-boot.lds
  84. 1 0
      board/spd8xx/u-boot.lds
  85. 1 0
      board/svm_sc8xx/u-boot.lds
  86. 1 0
      board/tqm8260/u-boot.lds
  87. 1 0
      board/tqm8xx/u-boot.lds
  88. 1 0
      board/utx8245/u-boot.lds
  89. 1 0
      board/v37/u-boot.lds
  90. 1 0
      board/w7o/u-boot.lds
  91. 1 0
      board/walnut405/u-boot.lds
  92. 1 0
      board/westel/amx860/u-boot.lds
  93. 3 1
      config.mk
  94. 1 0
      cpu/at91rm9200/cpu.c
  95. 2 1
      cpu/at91rm9200/interrupts.c
  96. 1 0
      cpu/at91rm9200/serial.c
  97. 162 0
      include/asm-arm/arch-arm920t/memory.h
  98. 113 0
      include/asm-arm/arch-sa1100/bitfield.h
  99. 113 0
      include/asm-arm/atomic.h
  100. 18 0
      include/asm-arm/hardware.h

+ 6 - 0
CHANGELOG

@@ -2,6 +2,12 @@
 Changes since U-Boot 0.3.1:
 ======================================================================
 
+* Header file cleanup for ARM
+
+* Patch by Murray Jensen, 24 Jun 2003:
+  - make sure to use only U-boot provided header files
+  - fix problems with ".rodata.str1.4" section as used by GCC-3.x
+
 * Patch by Stefan Roese, 24 Jun 2003:
   - Update esd ASH405 board files.
   - Update esd DASA_SIM config file.

+ 1 - 1
Makefile

@@ -802,7 +802,7 @@ clobber:	clean
 	rm -f u-boot u-boot.bin u-boot.srec u-boot.map System.map
 	rm -f tools/crc32.c tools/environment.c tools/env/crc32.c
 	rm -f tools/inca-swap-bytes cpu/mpc824x/bedbug_603e.c
-	rm -f include/asm/arch include/asm
+	rm -f include/asm/proc include/asm/arch include/asm
 
 mrproper \
 distclean:	clobber unconfig

+ 1 - 0
board/LEOX/elpt860/u-boot.lds

@@ -90,6 +90,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/MAI/AmigaOneG3SE/u-boot.lds

@@ -75,6 +75,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/RPXClassic/u-boot.lds

@@ -77,6 +77,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/RPXlite/u-boot.lds

@@ -77,6 +77,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/RRvision/u-boot.lds

@@ -79,6 +79,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/atc/u-boot.lds

@@ -61,6 +61,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/bmw/u-boot.lds

@@ -70,6 +70,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/bubinga405ep/u-boot.lds

@@ -88,6 +88,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/c2mon/u-boot.lds

@@ -76,6 +76,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/cmi/u-boot.lds

@@ -68,6 +68,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/cpc45/u-boot.lds

@@ -70,6 +70,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/cpu86/u-boot.lds

@@ -61,6 +61,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/cray/L1/u-boot.lds

@@ -88,6 +88,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/cu824/u-boot.lds

@@ -70,6 +70,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/ebony/u-boot.lds

@@ -93,6 +93,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/eltec/bab7xx/u-boot.lds

@@ -73,6 +73,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/eltec/elppc/u-boot.lds

@@ -73,6 +73,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/eltec/mhpc/u-boot.lds

@@ -66,6 +66,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/emk/top860/u-boot.lds

@@ -65,6 +65,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/ep8260/u-boot.lds

@@ -62,6 +62,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/eric/u-boot.lds

@@ -88,6 +88,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/esd/adciop/u-boot.lds

@@ -74,6 +74,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/esd/ar405/u-boot.lds

@@ -96,6 +96,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/esd/ash405/u-boot.lds

@@ -86,6 +86,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/esd/canbt/u-boot.lds

@@ -98,6 +98,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/esd/cpci405/u-boot.lds

@@ -86,6 +86,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/esd/cpci440/u-boot.lds

@@ -93,6 +93,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/esd/cpciiser4/u-boot.lds

@@ -86,6 +86,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/esd/dasa_sim/u-boot.lds

@@ -100,6 +100,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/esd/du405/u-boot.lds

@@ -86,6 +86,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/esd/ocrtc/u-boot.lds

@@ -86,6 +86,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/esd/pci405/u-boot.lds

@@ -86,6 +86,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/esd/pmc405/u-boot.lds

@@ -86,6 +86,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/esteem192e/u-boot.lds

@@ -76,6 +76,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/etx094/u-boot.lds

@@ -78,6 +78,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/evb64260/u-boot.lds

@@ -73,6 +73,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/fads/u-boot.lds

@@ -79,6 +79,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/flagadm/u-boot.lds

@@ -65,6 +65,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/gen860t/u-boot-flashenv.lds

@@ -67,6 +67,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/gen860t/u-boot.lds

@@ -66,6 +66,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/genietv/u-boot.lds

@@ -75,6 +75,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/gth/u-boot.lds

@@ -65,6 +65,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/gw8260/u-boot.lds

@@ -60,6 +60,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/hermes/u-boot.lds

@@ -76,6 +76,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/hymod/u-boot.lds

@@ -78,6 +78,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/icu862/u-boot.lds

@@ -79,6 +79,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/ip860/u-boot.lds

@@ -76,6 +76,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/iphase4539/u-boot.lds

@@ -60,6 +60,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/ivm/u-boot.lds

@@ -65,6 +65,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/kup4k/u-boot.lds

@@ -79,6 +79,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/lantec/u-boot.lds

@@ -76,6 +76,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/lwmon/u-boot.lds

@@ -65,6 +65,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/mbx8xx/u-boot.lds

@@ -65,6 +65,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/ml2/u-boot.lds

@@ -83,6 +83,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/mousse/u-boot.lds

@@ -65,6 +65,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/mpc8260ads/u-boot.lds

@@ -60,6 +60,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/mpc8266ads/u-boot.lds

@@ -60,6 +60,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/mpl/mip405/u-boot.lds

@@ -92,6 +92,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/mpl/pip405/u-boot.lds

@@ -88,6 +88,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/musenki/u-boot.lds

@@ -70,6 +70,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/mvs1/u-boot.lds

@@ -82,6 +82,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/netvia/u-boot.lds

@@ -76,6 +76,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/nx823/u-boot.lds

@@ -66,6 +66,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/oxc/u-boot.lds

@@ -67,6 +67,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/pcippc2/u-boot.lds

@@ -76,6 +76,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/pm826/u-boot.lds

@@ -61,6 +61,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/pn62/u-boot.lds

@@ -70,6 +70,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/ppmc8260/u-boot.lds

@@ -61,6 +61,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/r360mpi/u-boot.lds

@@ -74,6 +74,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/rbc823/u-boot.lds

@@ -76,6 +76,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/rmu/u-boot.lds

@@ -77,6 +77,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/rpxsuper/u-boot.lds

@@ -60,6 +60,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/rsdproto/u-boot.lds

@@ -65,6 +65,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/sacsng/u-boot.lds

@@ -60,6 +60,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/sandpoint/u-boot.lds

@@ -67,6 +67,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/sbc8260/u-boot.lds

@@ -60,6 +60,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/siemens/CCM/u-boot.lds

@@ -76,6 +76,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/siemens/IAD210/u-boot.lds

@@ -74,6 +74,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/siemens/SCM/u-boot.lds

@@ -61,6 +61,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/siemens/pcu_e/u-boot.lds

@@ -65,6 +65,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/sixnet/u-boot.lds

@@ -65,6 +65,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/spd8xx/u-boot.lds

@@ -65,6 +65,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/svm_sc8xx/u-boot.lds

@@ -79,6 +79,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/tqm8260/u-boot.lds

@@ -61,6 +61,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/tqm8xx/u-boot.lds

@@ -79,6 +79,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/utx8245/u-boot.lds

@@ -75,6 +75,7 @@ SECTIONS
     . = ALIGN(16);
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/v37/u-boot.lds

@@ -81,6 +81,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/w7o/u-boot.lds

@@ -70,6 +70,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/walnut405/u-boot.lds

@@ -88,6 +88,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 1 - 0
board/westel/amx860/u-boot.lds

@@ -76,6 +76,7 @@ SECTIONS
   {
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.4)
   }
   .fini      : { *(.fini)    } =0
   .ctors     : { *(.ctors)   }

+ 3 - 1
config.mk

@@ -107,10 +107,12 @@ LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds
 endif
 OBJCFLAGS += --gap-fill=0xff
 
+gccincdir := $(shell $(CC) -print-file-name=include)
+
 CPPFLAGS := $(DBGFLAGS) $(OPTFLAGS) $(RELFLAGS)		\
 	-D__KERNEL__ -DTEXT_BASE=$(TEXT_BASE)		\
 	-I$(TOPDIR)/include				\
-	-fno-builtin					\
+	-fno-builtin -nostdinc -isystem $(gccincdir)	\
 	-pipe $(PLATFORM_CPPFLAGS)
 
 ifdef BUILD_TAG

+ 1 - 0
cpu/at91rm9200/cpu.c

@@ -33,6 +33,7 @@
 #include <common.h>
 #include <command.h>
 #include <asm/io.h>
+#include <asm/arch/hardware.h>
 
 /* read co-processor 15, register #1 (control register) */
 static unsigned long read_p15_c1(void)

+ 2 - 1
cpu/at91rm9200/interrupts.c

@@ -32,7 +32,8 @@
 
 #include <common.h>
 #include <asm/io.h>
-#include <asm/proc-armv/ptrace.h>
+#include <asm/arch/hardware.h>
+#include <asm/proc/ptrace.h>
 
 extern void reset_cpu(ulong addr);
 

+ 1 - 0
cpu/at91rm9200/serial.c

@@ -31,6 +31,7 @@
 
 #include <common.h>
 #include <asm/io.h>
+#include <asm/arch/hardware.h>
 
 /* ggi thunder */
 AT91PS_USART us = (AT91PS_USART) AT91C_BASE_DBGU;

+ 162 - 0
include/asm-arm/arch-arm920t/memory.h

@@ -0,0 +1,162 @@
+/*
+ * linux/include/asm-arm/arch-s3c2400/memory.h by gj@denx.de
+ * based on
+ * linux/include/asm-arm/arch-sa1100/memory.h
+ *
+ * Copyright (c) 1999 Nicolas Pitre <nico@visuaide.com>
+ */
+
+#ifndef __ASM_ARCH_MEMORY_H
+#define __ASM_ARCH_MEMORY_H
+
+
+/*
+ * Task size: 3GB
+ */
+#define TASK_SIZE       (0xc0000000UL)
+#define TASK_SIZE_26	(0x04000000UL)
+
+/*
+ * This decides where the kernel will search for a free chunk of vm
+ * space during mmap's.
+ */
+#define TASK_UNMAPPED_BASE (TASK_SIZE / 3)
+
+/*
+ * Page offset: 3GB
+ */
+#define PAGE_OFFSET     (0xc0000000UL)
+
+/*
+ * Physical DRAM offset is 0x0c000000 on the S3C2400
+ */
+#define PHYS_OFFSET	(0x0c000000UL)
+
+#include <linux/config.h>
+
+
+/* Modified for S3C2400, by chc, 20010509 */
+#define RAM_IN_BANK_0  32*1024*1024
+#define RAM_IN_BANK_1  0
+#define RAM_IN_BANK_2  0
+#define RAM_IN_BANK_3  0
+
+#define MEM_SIZE  (RAM_IN_BANK_0+RAM_IN_BANK_1+RAM_IN_BANK_2+RAM_IN_BANK_3)
+
+
+/* translation macros */
+#define __virt_to_phys__is_a_macro
+#define __phys_to_virt__is_a_macro
+
+#if (RAM_IN_BANK_1 + RAM_IN_BANK_2 + RAM_IN_BANK_3 == 0)
+
+#define __virt_to_phys(x) ( (x) - PAGE_OFFSET + 0x0c000000 )
+#define __phys_to_virt(x) ( (x) - 0x0c000000 + PAGE_OFFSET )
+
+#elif (RAM_IN_BANK_0 == RAM_IN_BANK_1) && \
+      (RAM_IN_BANK_2 + RAM_IN_BANK_3 == 0)
+
+/* Two identical banks */
+#define __virt_to_phys(x) \
+	  ( ((x) < PAGE_OFFSET+RAM_IN_BANK_0) ? \
+	    ((x) - PAGE_OFFSET + _DRAMBnk0) : \
+	    ((x) - PAGE_OFFSET - RAM_IN_BANK_0 + _DRAMBnk1) )
+#define __phys_to_virt(x) \
+	  ( ((x)&0x07ffffff) + \
+	    (((x)&0x08000000) ? PAGE_OFFSET+RAM_IN_BANK_0 : PAGE_OFFSET) )
+#else
+
+/* It's more efficient for all other cases to use the function call */
+#undef __virt_to_phys__is_a_macro
+#undef __phys_to_virt__is_a_macro
+extern unsigned long __virt_to_phys(unsigned long vpage);
+extern unsigned long __phys_to_virt(unsigned long ppage);
+
+#endif
+
+/*
+ * Virtual view <-> DMA view memory address translations
+ * virt_to_bus: Used to translate the virtual address to an
+ *              address suitable to be passed to set_dma_addr
+ * bus_to_virt: Used to convert an address for DMA operations
+ *              to an address that the kernel can use.
+ *
+ * On the SA1100, bus addresses are equivalent to physical addresses.
+ */
+#define __virt_to_bus__is_a_macro
+#define __virt_to_bus(x)        __virt_to_phys(x)
+#define __bus_to_virt__is_a_macro
+#define __bus_to_virt(x)        __phys_to_virt(x)
+
+
+#ifdef CONFIG_DISCONTIGMEM
+#error "CONFIG_DISCONTIGMEM will not work on S3C2400"
+/*
+ * Because of the wide memory address space between physical RAM banks on the 
+ * SA1100, it's much more convenient to use Linux's NUMA support to implement
+ * our memory map representation.  Assuming all memory nodes have equal access 
+ * characteristics, we then have generic discontiguous memory support.
+ *
+ * Of course, all this isn't mandatory for SA1100 implementations with only
+ * one used memory bank.  For those, simply undefine CONFIG_DISCONTIGMEM.
+ *
+ * The nodes are matched with the physical memory bank addresses which are 
+ * incidentally the same as virtual addresses.
+ * 
+ * 	node 0:  0xc0000000 - 0xc7ffffff
+ * 	node 1:  0xc8000000 - 0xcfffffff
+ * 	node 2:  0xd0000000 - 0xd7ffffff
+ * 	node 3:  0xd8000000 - 0xdfffffff
+ */
+
+#define NR_NODES	4
+
+/*
+ * Given a kernel address, find the home node of the underlying memory.
+ */
+#define KVADDR_TO_NID(addr) \
+		(((unsigned long)(addr) - 0xc0000000) >> 27)
+
+/*
+ * Given a physical address, convert it to a node id.
+ */
+#define PHYS_TO_NID(addr) KVADDR_TO_NID(__phys_to_virt(addr))
+
+/*
+ * Given a kaddr, ADDR_TO_MAPBASE finds the owning node of the memory
+ * and returns the mem_map of that node.
+ */
+#define ADDR_TO_MAPBASE(kaddr) \
+			NODE_MEM_MAP(KVADDR_TO_NID((unsigned long)(kaddr)))
+
+/*
+ * Given a kaddr, LOCAL_MEM_MAP finds the owning node of the memory
+ * and returns the index corresponding to the appropriate page in the
+ * node's mem_map.
+ */
+#define LOCAL_MAP_NR(kvaddr) \
+	(((unsigned long)(kvaddr) & 0x07ffffff) >> PAGE_SHIFT)
+
+/*
+ * Given a kaddr, virt_to_page returns a pointer to the corresponding 
+ * mem_map entry.
+ */
+#define virt_to_page(kaddr) \
+	(ADDR_TO_MAPBASE(kaddr) + LOCAL_MAP_NR(kaddr))
+
+/*
+ * VALID_PAGE returns a non-zero value if given page pointer is valid.
+ * This assumes all node's mem_maps are stored within the node they refer to.
+ */
+#define VALID_PAGE(page) \
+({ unsigned int node = KVADDR_TO_NID(page); \
+   ( (node < NR_NODES) && \
+     ((unsigned)((page) - NODE_MEM_MAP(node)) < NODE_DATA(node)->node_size) ); \
+})
+
+#else
+
+#define PHYS_TO_NID(addr)	(0)
+
+#endif
+#endif /* __ASM_ARCH_MEMORY_H */

+ 113 - 0
include/asm-arm/arch-sa1100/bitfield.h

@@ -0,0 +1,113 @@
+/*
+ *	FILE    	bitfield.h
+ *
+ *	Version 	1.1
+ *	Author  	Copyright (c) Marc A. Viredaz, 1998
+ *	        	DEC Western Research Laboratory, Palo Alto, CA
+ *	Date    	April 1998 (April 1997)
+ *	System  	Advanced RISC Machine (ARM)
+ *	Language	C or ARM Assembly
+ *	Purpose 	Definition of macros to operate on bit fields.
+ */
+
+
+
+#ifndef __BITFIELD_H
+#define __BITFIELD_H
+
+#ifndef __ASSEMBLY__
+#define UData(Data)	((unsigned long) (Data))
+#else
+#define UData(Data)	(Data)
+#endif
+
+
+/*
+ * MACRO: Fld
+ *
+ * Purpose
+ *    The macro "Fld" encodes a bit field, given its size and its shift value
+ *    with respect to bit 0.
+ *
+ * Note
+ *    A more intuitive way to encode bit fields would have been to use their
+ *    mask. However, extracting size and shift value information from a bit
+ *    field's mask is cumbersome and might break the assembler (255-character
+ *    line-size limit).
+ *
+ * Input
+ *    Size      	Size of the bit field, in number of bits.
+ *    Shft      	Shift value of the bit field with respect to bit 0.
+ *
+ * Output
+ *    Fld       	Encoded bit field.
+ */
+
+#define Fld(Size, Shft)	(((Size) << 16) + (Shft))
+
+
+/*
+ * MACROS: FSize, FShft, FMsk, FAlnMsk, F1stBit
+ *
+ * Purpose
+ *    The macros "FSize", "FShft", "FMsk", "FAlnMsk", and "F1stBit" return
+ *    the size, shift value, mask, aligned mask, and first bit of a
+ *    bit field.
+ *
+ * Input
+ *    Field     	Encoded bit field (using the macro "Fld").
+ *
+ * Output
+ *    FSize     	Size of the bit field, in number of bits.
+ *    FShft     	Shift value of the bit field with respect to bit 0.
+ *    FMsk      	Mask for the bit field.
+ *    FAlnMsk   	Mask for the bit field, aligned on bit 0.
+ *    F1stBit   	First bit of the bit field.
+ */
+
+#define FSize(Field)	((Field) >> 16)
+#define FShft(Field)	((Field) & 0x0000FFFF)
+#define FMsk(Field)	(((UData (1) << FSize (Field)) - 1) << FShft (Field))
+#define FAlnMsk(Field)	((UData (1) << FSize (Field)) - 1)
+#define F1stBit(Field)	(UData (1) << FShft (Field))
+
+
+/*
+ * MACRO: FInsrt
+ *
+ * Purpose
+ *    The macro "FInsrt" inserts a value into a bit field by shifting the
+ *    former appropriately.
+ *
+ * Input
+ *    Value     	Bit-field value.
+ *    Field     	Encoded bit field (using the macro "Fld").
+ *
+ * Output
+ *    FInsrt    	Bit-field value positioned appropriately.
+ */
+
+#define FInsrt(Value, Field) \
+                	(UData (Value) << FShft (Field))
+
+
+/*
+ * MACRO: FExtr
+ *
+ * Purpose
+ *    The macro "FExtr" extracts the value of a bit field by masking and
+ *    shifting it appropriately.
+ *
+ * Input
+ *    Data      	Data containing the bit-field to be extracted.
+ *    Field     	Encoded bit field (using the macro "Fld").
+ *
+ * Output
+ *    FExtr     	Bit-field value.
+ */
+
+#define FExtr(Data, Field) \
+                	((UData (Data) >> FShft (Field)) & FAlnMsk (Field))
+
+
+#endif /* __BITFIELD_H */

+ 113 - 0
include/asm-arm/atomic.h

@@ -0,0 +1,113 @@
+/*
+ *  linux/include/asm-arm/atomic.h
+ *
+ *  Copyright (c) 1996 Russell King.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ *  Changelog:
+ *   27-06-1996	RMK	Created
+ *   13-04-1997	RMK	Made functions atomic!
+ *   07-12-1997	RMK	Upgraded for v2.1.
+ *   26-08-1998	PJB	Added #ifdef __KERNEL__
+ */
+#ifndef __ASM_ARM_ATOMIC_H
+#define __ASM_ARM_ATOMIC_H
+
+#include <linux/config.h>
+
+#ifdef CONFIG_SMP
+#error SMP not supported
+#endif
+
+typedef struct { volatile int counter; } atomic_t;
+
+#define ATOMIC_INIT(i)	{ (i) }
+
+#ifdef __KERNEL__
+#include <asm/proc/system.h>
+
+#define atomic_read(v)	((v)->counter)
+#define atomic_set(v,i)	(((v)->counter) = (i))
+
+static inline void atomic_add(int i, volatile atomic_t *v)
+{
+	unsigned long flags;
+
+	local_irq_save(flags);
+	v->counter += i;
+	local_irq_restore(flags);
+}
+
+static inline void atomic_sub(int i, volatile atomic_t *v)
+{
+	unsigned long flags;
+
+	local_irq_save(flags);
+	v->counter -= i;
+	local_irq_restore(flags);
+}
+
+static inline void atomic_inc(volatile atomic_t *v)
+{
+	unsigned long flags;
+
+	local_irq_save(flags);
+	v->counter += 1;
+	local_irq_restore(flags);
+}
+
+static inline void atomic_dec(volatile atomic_t *v)
+{
+	unsigned long flags;
+
+	local_irq_save(flags);
+	v->counter -= 1;
+	local_irq_restore(flags);
+}
+
+static inline int atomic_dec_and_test(volatile atomic_t *v)
+{
+	unsigned long flags;
+	int val;
+
+	local_irq_save(flags);
+	val = v->counter;
+	v->counter = val -= 1;
+	local_irq_restore(flags);
+
+	return val == 0;
+}
+
+static inline int atomic_add_negative(int i, volatile atomic_t *v)
+{
+	unsigned long flags;
+	int val;
+
+	local_irq_save(flags);
+	val = v->counter;
+	v->counter = val += i;
+	local_irq_restore(flags);
+
+	return val < 0;
+}
+
+static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
+{
+	unsigned long flags;
+
+	local_irq_save(flags);
+	*addr &= ~mask;
+	local_irq_restore(flags);
+}
+
+/* Atomic operations are already serializing on ARM */
+#define smp_mb__before_atomic_dec()	barrier()
+#define smp_mb__after_atomic_dec()	barrier()
+#define smp_mb__before_atomic_inc()	barrier()
+#define smp_mb__after_atomic_inc()	barrier()
+
+#endif
+#endif

+ 18 - 0
include/asm-arm/hardware.h

@@ -0,0 +1,18 @@
+/*
+ *  linux/include/asm-arm/hardware.h
+ *
+ *  Copyright (C) 1996 Russell King
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ *  Common hardware definitions
+ */
+
+#ifndef __ASM_HARDWARE_H
+#define __ASM_HARDWARE_H
+
+#include <asm/arch/hardware.h>
+
+#endif

Some files were not shown because too many files changed in this diff