]> git.hungrycats.org Git - linux/commitdiff
Merge flint.arm.linux.org.uk:/usr/src/bk/linux-2.6-sharp
authorRussell King <rmk@flint.arm.linux.org.uk>
Sun, 9 May 2004 16:57:13 +0000 (17:57 +0100)
committerRussell King <rmk@flint.arm.linux.org.uk>
Sun, 9 May 2004 16:57:13 +0000 (17:57 +0100)
into flint.arm.linux.org.uk:/usr/src/bk/linux-2.6-rmk

1  2 
arch/arm/Kconfig
arch/arm/Makefile
arch/arm/boot/Makefile
arch/arm/kernel/debug.S
arch/arm/kernel/entry-armv.S
arch/arm/mm/Kconfig

index d7788028514bc485aa020865e614b00503a54918,ef6f321ab31a20c7b7a32cb2c19b2636c2d2197f..588fd8b7c359e458110cb5717650a8d7f0eea9d2
@@@ -145,11 -145,14 +145,19 @@@ config ARCH_S3C241
  config ARCH_OMAP
        bool "TI OMAP"
  
+ config ARCH_LH7A40X
+       bool "Sharp LH7A40X"
+       help
+         Say Y here for systems based on one of the Sharp LH7A40X
+         System on a Chip processors.  These CPUs include an ARM922T
+         core with a wide array of integrated devices for
+         hand-held and low-power applications.
 +config ARCH_VERSATILE_PB
 +      bool "Versatile PB"
 +      help
 +        This enables support for ARM Ltd Versatile PB board.
 +
  endchoice
  
  source "arch/arm/mach-clps711x/Kconfig"
index 0dea4d3f5b4a0626a573ec88344ea589937a2bef,c35fc71282f450c01bb9330771bd20a75a200c29..fb88490c57c69488f5f8f78462c5ba3fcfcc83b6
@@@ -94,7 -94,7 +94,8 @@@ textaddr-$(CONFIG_ARCH_FORTUNET)   := 0
   machine-$(CONFIG_ARCH_ADIFCC)           := adifcc
   machine-$(CONFIG_ARCH_OMAP)     := omap
   machine-$(CONFIG_ARCH_S3C2410)          := s3c2410
+  machine-$(CONFIG_ARCH_LH7A40X)          := lh7a40x
 + machine-$(CONFIG_ARCH_VERSATILE_PB) := versatile
  
  TEXTADDR := $(textaddr-y)
  ifeq ($(incdir-y),)
index 65ba5bf38ae6b84ba14548904b564e798f568aca,e30e6473820a6e8e533fd826106247a49d4e526c..602b8a68e9c0bf4e9f6a39cd108846e6a5e6bbd6
@@@ -54,11 -54,13 +54,14 @@@ params_phys-$(CONFIG_ARCH_ADIFCC)  := 0x
     zreladdr-$(CONFIG_ARCH_OMAP)               := 0x10008000
  params_phys-$(CONFIG_ARCH_OMAP)               := 0x10000100
  initrd_phys-$(CONFIG_ARCH_OMAP)               := 0x10800000
 -
 -   zreladdr-$(CONFIG_ARCH_S3C2410)      := 0x30008000
 -params_phys-$(CONFIG_ARCH_S3C2410)      := 0x30000100
 -
+    zreladdr-$(CONFIG_ARCH_LH7A40X)    := 0xc0008000
+ params_phys-$(CONFIG_ARCH_LH7A40X)    := 0xc0000100
+ initrd_phys-$(CONFIG_ARCH_LH7A40X)    := 0xc4000000
 +   zreladdr-$(CONFIG_ARCH_S3C2410)    := 0x30008000
 +params_phys-$(CONFIG_ARCH_S3C2410)    := 0x30000100
 +   zreladdr-$(CONFIG_ARCH_VERSATILE_PB)       := 0x00008000
 +params_phys-$(CONFIG_ARCH_VERSATILE_PB)       := 0x00000100
 +initrd_phys-$(CONFIG_ARCH_VERSATILE_PB)       := 0x00800000
  
  ZRELADDR    := $(zreladdr-y)
  ZTEXTADDR   := $(ztextaddr-y)
index 319b21e4fc78247b4718be507f99a0a06bd6a864,1da9f7038c14bddf74a0c5a1af985eafa9445b0e..9c0acea28224717d1e959d0bcdac681f69d963f4
  1002:         @ exit busyuart
                .endm
  
+ #elif defined(CONFIG_ARCH_LH7A40X)
+       @ It isn't known if this will be appropriate for every 40x
+       @ board.
+               .macro  addruart,rx
+               mrc     p15, 0, \rx, c1, c0
+               tst     \rx, #1                 @ MMU enabled?
+               ldr     \rx, =0x80000700        @ physical base address
+               orrne   \rx, \rx, #0xf8000000   @ virtual base
+               .endm
+               .macro  senduart,rd,rx
+               strb    \rd, [\rx]              @ DATA
+               .endm
+               .macro  busyuart,rd,rx          @ spin while busy
+ 1001:         ldr     \rd, [\rx, #0x10]       @ STATUS
+               tst     \rd, #1 << 3            @ BUSY (TX FIFO not empty)
+               bne     1001b                   @ yes, spin
+               .endm
+               .macro  waituart,rd,rx          @ wait for Tx FIFO room
+ 1001:         ldrb    \rd, [\rx, #0x10]       @ STATUS
+               tst     \rd, #1 << 5            @ TXFF (TX FIFO full)
+               bne     1001b                   @ yes, spin
+               .endm
 +
 +#elif defined(CONFIG_ARCH_VERSATILE_PB)
 +
 +#include <asm/hardware/amba_serial.h>
 +
 +              .macro  addruart,rx
 +              mrc     p15, 0, \rx, c1, c0
 +              tst     \rx, #1                 @ MMU enabled?
 +              moveq   \rx,      #0x10000000
 +              movne   \rx,      #0xf1000000   @ virtual base
 +              orr     \rx, \rx, #0x001F0000
 +              orr     \rx, \rx, #0x00001000
 +              .endm
 +
 +              .macro  senduart,rd,rx
 +              strb    \rd, [\rx, #UART01x_DR]
 +              .endm
 +
 +              .macro  waituart,rd,rx
 +1001:         ldr     \rd, [\rx, #0x18]       @ UARTFLG
 +              tst     \rd, #1 << 5            @ UARTFLGUTXFF - 1 when full
 +              bne     1001b
 +              .endm
 +
 +              .macro  busyuart,rd,rx
 +1001:         ldr     \rd, [\rx, #0x18]       @ UARTFLG
 +              tst     \rd, #1 << 3            @ UARTFLGUBUSY - 1 when busy
 +              bne     1001b
 +              .endm
  #else
  #error Unknown architecture
  #endif
Simple merge
Simple merge