summaryrefslogtreecommitdiffstats
path: root/include/asm-arm
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-04-28 01:09:25 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-04-28 01:09:25 +0000
commitb9ba7aeb165cffecdffb60aec8c3fa8d590d9ca9 (patch)
tree42d07b0c7246ae2536a702e7c5de9e2732341116 /include/asm-arm
parent7406b0a326f2d70ade2671c37d1beef62249db97 (diff)
Merge with 2.3.99-pre6.
Diffstat (limited to 'include/asm-arm')
-rw-r--r--include/asm-arm/arch-arc/hardware.h6
-rw-r--r--include/asm-arm/arch-cl7500/hardware.h6
-rw-r--r--include/asm-arm/arch-cl7500/vmalloc.h2
-rw-r--r--include/asm-arm/arch-ebsa110/hardware.h5
-rw-r--r--include/asm-arm/arch-ebsa285/irq.h9
-rw-r--r--include/asm-arm/arch-ebsa285/time.h2
-rw-r--r--include/asm-arm/arch-ebsa285/timex.h2
-rw-r--r--include/asm-arm/arch-rpc/hardware.h6
-rw-r--r--include/asm-arm/arch-rpc/vmalloc.h2
-rw-r--r--include/asm-arm/atomic.h6
-rw-r--r--include/asm-arm/hardirq.h5
-rw-r--r--include/asm-arm/pci.h6
-rw-r--r--include/asm-arm/pgalloc.h4
-rw-r--r--include/asm-arm/pgtable.h17
-rw-r--r--include/asm-arm/proc-armo/elf.h3
-rw-r--r--include/asm-arm/proc-armo/system.h3
-rw-r--r--include/asm-arm/proc-armv/elf.h3
-rw-r--r--include/asm-arm/proc-armv/pgtable.h10
-rw-r--r--include/asm-arm/proc-armv/system.h4
-rw-r--r--include/asm-arm/setup.h1
-rw-r--r--include/asm-arm/smp.h4
-rw-r--r--include/asm-arm/string.h2
-rw-r--r--include/asm-arm/system.h138
23 files changed, 191 insertions, 55 deletions
diff --git a/include/asm-arm/arch-arc/hardware.h b/include/asm-arm/arch-arc/hardware.h
index 5a47717ab..9a9313fa4 100644
--- a/include/asm-arm/arch-arc/hardware.h
+++ b/include/asm-arm/arch-arc/hardware.h
@@ -43,10 +43,8 @@
* Screen mapping information
*/
#define SCREEN_START 0x02000000
-#define SCREEN2_END 0x02078000
-#define SCREEN2_BASE 0x02000000
-#define SCREEN1_END 0x02000000
-#define SCREEN1_BASE 0x01f88000
+#define SCREEN_END 0x02078000
+#define SCREEN_BASE 0x02000000
#ifndef __ASSEMBLY__
diff --git a/include/asm-arm/arch-cl7500/hardware.h b/include/asm-arm/arch-cl7500/hardware.h
index 69ce419cc..76978f79b 100644
--- a/include/asm-arm/arch-cl7500/hardware.h
+++ b/include/asm-arm/arch-cl7500/hardware.h
@@ -44,10 +44,8 @@
/* Let's define SCREEN_START for CL7500, even though it's a lie. */
#define SCREEN_START 0x02000000 /* VRAM */
-#define SCREEN2_END 0xe0000000
-#define SCREEN2_BASE 0xd8000000
-#define SCREEN1_END 0xd8000000
-#define SCREEN1_BASE 0xd0000000
+#define SCREEN_END 0xdfc00000
+#define SCREEN_BASE 0xdf800000
#define FLUSH_BASE 0xdf000000
diff --git a/include/asm-arm/arch-cl7500/vmalloc.h b/include/asm-arm/arch-cl7500/vmalloc.h
index 98f3604dd..1654e6c3f 100644
--- a/include/asm-arm/arch-cl7500/vmalloc.h
+++ b/include/asm-arm/arch-cl7500/vmalloc.h
@@ -13,4 +13,4 @@
#define VMALLOC_OFFSET (8*1024*1024)
#define VMALLOC_START (((unsigned long)high_memory + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1))
#define VMALLOC_VMADDR(x) ((unsigned long)(x))
-#define VMALLOC_END (PAGE_OFFSET + 0x10000000)
+#define VMALLOC_END (PAGE_OFFSET + 0x1c000000)
diff --git a/include/asm-arm/arch-ebsa110/hardware.h b/include/asm-arm/arch-ebsa110/hardware.h
index c8ebe67c3..08723718c 100644
--- a/include/asm-arm/arch-ebsa110/hardware.h
+++ b/include/asm-arm/arch-ebsa110/hardware.h
@@ -1,7 +1,7 @@
/*
* linux/include/asm-arm/arch-ebsa110/hardware.h
*
- * Copyright (C) 1996-1999 Russell King.
+ * Copyright (C) 1996-2000 Russell King.
*
* This file contains the hardware definitions of the EBSA-110.
*/
@@ -27,7 +27,6 @@
* RAM definitions
*/
#define FLUSH_BASE_PHYS 0x40000000
-#define UNCACHEABLE_ADDR 0xf3000000
#else /* __ASSEMBLY__ */
@@ -41,6 +40,8 @@
#define FLUSH_BASE 0xdf000000
#define PCIO_BASE 0xf0000000
+#define UNCACHEABLE_ADDR 0xf3000000
+
#define PARAMS_BASE (PAGE_OFFSET + 0x400)
#endif
diff --git a/include/asm-arm/arch-ebsa285/irq.h b/include/asm-arm/arch-ebsa285/irq.h
index 3a4faaf24..9dcfa9480 100644
--- a/include/asm-arm/arch-ebsa285/irq.h
+++ b/include/asm-arm/arch-ebsa285/irq.h
@@ -212,5 +212,14 @@ static __inline__ void irq_init_irq(void)
request_resource(&ioport_resource, &pic2_resource);
setup_arm_irq(IRQ_ISA_CASCADE, &irq_cascade);
setup_arm_irq(isa_irq, &irq_cascade);
+
+ /*
+ * On the NetWinder, don't automatically
+ * enable ISA IRQ11 when it is requested.
+ * There appears to be a missing pull-up
+ * resistor on this line.
+ */
+ if (machine_is_netwinder())
+ irq_desc[_ISA_IRQ(11)].noautoenable = 1;
}
}
diff --git a/include/asm-arm/arch-ebsa285/time.h b/include/asm-arm/arch-ebsa285/time.h
index a837d8b0f..cc28f3449 100644
--- a/include/asm-arm/arch-ebsa285/time.h
+++ b/include/asm-arm/arch-ebsa285/time.h
@@ -270,5 +270,5 @@ extern __inline__ void setup_timer(void)
timer_irq.handler = isa_timer_interrupt;
irq = IRQ_ISA_TIMER;
}
- setup_arm_irq(IRQ_ISA_TIMER, &timer_irq);
+ setup_arm_irq(irq, &timer_irq);
}
diff --git a/include/asm-arm/arch-ebsa285/timex.h b/include/asm-arm/arch-ebsa285/timex.h
index de5bffba8..f269d439b 100644
--- a/include/asm-arm/arch-ebsa285/timex.h
+++ b/include/asm-arm/arch-ebsa285/timex.h
@@ -11,4 +11,4 @@
* divided by a 4-bit prescaler. Other boards use an
* ISA derived timer, and this is unused.
*/
-#define CLOCK_TICK_RATE (50000000 / 16)
+#define CLOCK_TICK_RATE (mem_fclk_21285 / 16)
diff --git a/include/asm-arm/arch-rpc/hardware.h b/include/asm-arm/arch-rpc/hardware.h
index 80cca92e7..222419960 100644
--- a/include/asm-arm/arch-rpc/hardware.h
+++ b/include/asm-arm/arch-rpc/hardware.h
@@ -33,10 +33,8 @@
#define IO_BASE 0xe0000000
#define SCREEN_START 0x02000000 /* VRAM */
-#define SCREEN2_END 0xe0000000
-#define SCREEN2_BASE 0xd8000000
-#define SCREEN1_END 0xd8000000
-#define SCREEN1_BASE 0xd0000000
+#define SCREEN_END 0xdfc00000
+#define SCREEN_BASE 0xdf800000
#define FLUSH_BASE 0xdf000000
#define UNCACHEABLE_ADDR 0xdf010000
diff --git a/include/asm-arm/arch-rpc/vmalloc.h b/include/asm-arm/arch-rpc/vmalloc.h
index 828869fc7..60f72ec84 100644
--- a/include/asm-arm/arch-rpc/vmalloc.h
+++ b/include/asm-arm/arch-rpc/vmalloc.h
@@ -13,4 +13,4 @@
#define VMALLOC_OFFSET (8*1024*1024)
#define VMALLOC_START (((unsigned long)high_memory + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1))
#define VMALLOC_VMADDR(x) ((unsigned long)(x))
-#define VMALLOC_END (PAGE_OFFSET + 0x10000000)
+#define VMALLOC_END (PAGE_OFFSET + 0x1c000000)
diff --git a/include/asm-arm/atomic.h b/include/asm-arm/atomic.h
index e19eea07c..d5dfe4f91 100644
--- a/include/asm-arm/atomic.h
+++ b/include/asm-arm/atomic.h
@@ -12,12 +12,12 @@
#ifndef __ASM_ARM_ATOMIC_H
#define __ASM_ARM_ATOMIC_H
-#ifdef __SMP__
+#include <linux/config.h>
+
+#ifdef CONFIG_SMP
#error SMP not supported
#endif
-#include <linux/config.h>
-
#ifdef CONFIG_ARCH_CO285
typedef struct { volatile int counter; } atomic_t;
#else
diff --git a/include/asm-arm/hardirq.h b/include/asm-arm/hardirq.h
index 399ba566d..77a36a2a4 100644
--- a/include/asm-arm/hardirq.h
+++ b/include/asm-arm/hardirq.h
@@ -1,6 +1,7 @@
#ifndef __ASM_HARDIRQ_H
#define __ASM_HARDIRQ_H
+#include <linux/config.h>
#include <linux/threads.h>
extern unsigned int local_irq_count[NR_CPUS];
@@ -14,7 +15,7 @@ extern unsigned int local_irq_count[NR_CPUS];
#define in_irq() (local_irq_count[smp_processor_id()] != 0)
-#ifndef __SMP__
+#ifndef CONFIG_SMP
#define hardirq_trylock(cpu) (local_irq_count[cpu] == 0)
#define hardirq_endlock(cpu) do { } while (0)
@@ -26,6 +27,6 @@ extern unsigned int local_irq_count[NR_CPUS];
#else
#error SMP not supported
-#endif /* __SMP__ */
+#endif /* CONFIG_SMP */
#endif /* __ASM_HARDIRQ_H */
diff --git a/include/asm-arm/pci.h b/include/asm-arm/pci.h
index c835f4c17..8ed8ebf3c 100644
--- a/include/asm-arm/pci.h
+++ b/include/asm-arm/pci.h
@@ -51,7 +51,7 @@ pci_free_consistent(struct pci_dev *hwdev, size_t size, void *vaddr,
extern inline dma_addr_t
pci_map_single(struct pci_dev *hwdev, void *ptr, size_t size, int direction)
{
- consistent_sync(ptr, size, 3);
+ consistent_sync(ptr, size, direction);
return virt_to_bus(ptr);
}
@@ -89,7 +89,7 @@ pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sg, int nents, int directi
int i;
for (i = 0; i < nents; i++, sg++)
- consistent_sync(sg->address, sg->length, 3);
+ consistent_sync(sg->address, sg->length, direction);
return nents;
}
@@ -116,7 +116,7 @@ pci_unmap_sg(struct pci_dev *hwdev, struct scatterlist *sg, int nents, int direc
extern inline void
pci_dma_sync_single(struct pci_dev *hwdev, dma_addr_t dma_handle, size_t size, int direction)
{
- consistent_sync(bus_to_virt(dma_handle), size, 3);
+ consistent_sync(bus_to_virt(dma_handle), size, direction);
}
/* Make physical memory consistent for a set of streaming
diff --git a/include/asm-arm/pgalloc.h b/include/asm-arm/pgalloc.h
index 12b2f3390..c0548236b 100644
--- a/include/asm-arm/pgalloc.h
+++ b/include/asm-arm/pgalloc.h
@@ -25,9 +25,9 @@ extern __inline__ void flush_tlb_pgtables(struct mm_struct *mm,
*/
#ifndef CONFIG_NO_PGT_CACHE
-#ifdef __SMP__
+#ifdef CONFIG_SMP
#error Pgtable caches have to be per-CPU, so that no locking is needed.
-#endif /* __SMP__ */
+#endif /* CONFIG_SMP */
extern struct pgtable_cache_struct {
unsigned long *pgd_cache;
diff --git a/include/asm-arm/pgtable.h b/include/asm-arm/pgtable.h
index dad099ff9..5a05e2ef2 100644
--- a/include/asm-arm/pgtable.h
+++ b/include/asm-arm/pgtable.h
@@ -83,9 +83,9 @@ extern void __handle_bad_pmd_kernel(pmd_t *pmd);
#define pmd_clear(pmdp) set_pmd(pmdp, __pmd(0))
/*
- * Permanent address of a page.
+ * Permanent address of a page. We never have highmem, so this is trivial.
*/
-#define page_address(page) ({ if (!(page)->virtual) BUG(); (page)->virtual; })
+#define page_address(page) ((page)->virtual)
#define pages_to_mb(x) ((x) >> (20 - PAGE_SHIFT))
#define pte_page(x) (mem_map + pte_pagenr(x))
@@ -100,13 +100,12 @@ extern __inline__ pte_t mk_pte_phys(unsigned long physpage, pgprot_t pgprot)
return pte;
}
-#define mk_pte(page,pgprot) \
-({ \
- pte_t __pte; \
- pte_val(__pte) = PHYS_OFFSET + \
- (((page) - mem_map) << PAGE_SHIFT) + \
- pgprot_val(pgprot); \
- __pte; \
+#define mk_pte(page,pgprot) \
+({ \
+ pte_t __pte; \
+ pte_val(__pte) = __pa(page_address(page)) + \
+ pgprot_val(pgprot); \
+ __pte; \
})
/*
diff --git a/include/asm-arm/proc-armo/elf.h b/include/asm-arm/proc-armo/elf.h
index 1fc5e957e..b5901f767 100644
--- a/include/asm-arm/proc-armo/elf.h
+++ b/include/asm-arm/proc-armo/elf.h
@@ -10,7 +10,6 @@
#define ELF_PROC_OK(x) \
((x)->e_flags & EF_ARM_APCS26)
-#define SET_PERSONALITY(ex,ibcs2) \
- current->personality = PER_LINUX
+#define SET_PERSONALITY(ex,ibcs2) set_personality(PER_LINUX)
#endif
diff --git a/include/asm-arm/proc-armo/system.h b/include/asm-arm/proc-armo/system.h
index 1cc3fc606..bc113ae6e 100644
--- a/include/asm-arm/proc-armo/system.h
+++ b/include/asm-arm/proc-armo/system.h
@@ -9,6 +9,7 @@
extern const char xchg_str[];
+#include <linux/config.h>
#include <asm/proc-fns.h>
extern __inline__ unsigned long __xchg(unsigned long x, volatile void *ptr, int size)
@@ -113,7 +114,7 @@ extern __inline__ unsigned long __xchg(unsigned long x, volatile void *ptr, int
#define local_irq_disable() __cli()
#define local_irq_enable() __sti()
-#ifdef __SMP__
+#ifdef CONFIG_SMP
#error SMP not supported
#else
diff --git a/include/asm-arm/proc-armv/elf.h b/include/asm-arm/proc-armv/elf.h
index a865dce68..3c41d577b 100644
--- a/include/asm-arm/proc-armv/elf.h
+++ b/include/asm-arm/proc-armv/elf.h
@@ -17,7 +17,6 @@
there is no other ELF system currently supported by iBCS.
@@ Could print a warning message to encourage users to upgrade. */
#define SET_PERSONALITY(ex,ibcs2) \
- current->personality = (ex.e_flags & EF_ARM_APCS26) ? \
- PER_LINUX : PER_LINUX_32BIT
+ set_personality((ex).e_flags&EF_ARM_APCS26 ?PER_LINUX :PER_LINUX_32BIT)
#endif
diff --git a/include/asm-arm/proc-armv/pgtable.h b/include/asm-arm/proc-armv/pgtable.h
index d4a57d8a2..b5d53a59e 100644
--- a/include/asm-arm/proc-armv/pgtable.h
+++ b/include/asm-arm/proc-armv/pgtable.h
@@ -79,7 +79,7 @@ extern __inline__ unsigned long pmd_page(pmd_t pmd)
* PTE functions *
****************/
-/* PTE types (actially level 2 descriptor) */
+/* PTE types (actually level 2 descriptor) */
#define PTE_TYPE_MASK 0x0003
#define PTE_TYPE_FAULT 0x0000
#define PTE_TYPE_LARGE 0x0001
@@ -122,12 +122,12 @@ extern __inline__ unsigned long pmd_page(pmd_t pmd)
* The following macros handle the cache and bufferable bits...
*/
#define _L_PTE_DEFAULT L_PTE_PRESENT | L_PTE_YOUNG
-#define _L_PTE_READ L_PTE_USER | L_PTE_CACHEABLE
+#define _L_PTE_READ L_PTE_USER | L_PTE_CACHEABLE | L_PTE_BUFFERABLE
#define PAGE_NONE __pgprot(_L_PTE_DEFAULT)
-#define PAGE_COPY __pgprot(_L_PTE_DEFAULT | _L_PTE_READ | L_PTE_BUFFERABLE)
-#define PAGE_SHARED __pgprot(_L_PTE_DEFAULT | _L_PTE_READ | L_PTE_BUFFERABLE | L_PTE_WRITE)
-#define PAGE_READONLY __pgprot(_L_PTE_DEFAULT | _L_PTE_READ | L_PTE_BUFFERABLE)
+#define PAGE_COPY __pgprot(_L_PTE_DEFAULT | _L_PTE_READ)
+#define PAGE_SHARED __pgprot(_L_PTE_DEFAULT | _L_PTE_READ | L_PTE_WRITE)
+#define PAGE_READONLY __pgprot(_L_PTE_DEFAULT | _L_PTE_READ)
#define PAGE_KERNEL __pgprot(_L_PTE_DEFAULT | L_PTE_CACHEABLE | L_PTE_BUFFERABLE | L_PTE_DIRTY | L_PTE_WRITE)
#define _PAGE_CHG_MASK (PAGE_MASK | L_PTE_DIRTY | L_PTE_YOUNG)
diff --git a/include/asm-arm/proc-armv/system.h b/include/asm-arm/proc-armv/system.h
index d0e334813..3b35be309 100644
--- a/include/asm-arm/proc-armv/system.h
+++ b/include/asm-arm/proc-armv/system.h
@@ -7,6 +7,8 @@
#ifndef __ASM_PROC_SYSTEM_H
#define __ASM_PROC_SYSTEM_H
+#include <linux/config.h>
+
extern const char xchg_str[];
extern __inline__ unsigned long __xchg(unsigned long x, volatile void *ptr, int size)
@@ -106,7 +108,7 @@ extern unsigned long cr_alignment; /* defined in entry-armv.S */
#define local_irq_disable() __cli()
#define local_irq_enable() __sti()
-#ifdef __SMP__
+#ifdef CONFIG_SMP
#error SMP not supported
#else
diff --git a/include/asm-arm/setup.h b/include/asm-arm/setup.h
index 2fe6424b8..90e7f6efe 100644
--- a/include/asm-arm/setup.h
+++ b/include/asm-arm/setup.h
@@ -49,6 +49,7 @@ struct param_struct {
unsigned long system_rev; /* 76 */
unsigned long system_serial_low; /* 80 */
unsigned long system_serial_high; /* 84 */
+ unsigned long mem_fclk_21285; /* 88 */
} s;
char unused[256];
} u1;
diff --git a/include/asm-arm/smp.h b/include/asm-arm/smp.h
index 9776bf66d..5ca771631 100644
--- a/include/asm-arm/smp.h
+++ b/include/asm-arm/smp.h
@@ -1,7 +1,9 @@
#ifndef __ASM_SMP_H
#define __ASM_SMP_H
-#ifdef __SMP__
+#include <linux/config.h>
+
+#ifdef CONFIG_SMP
#error SMP not supported
#endif
diff --git a/include/asm-arm/string.h b/include/asm-arm/string.h
index 72b89fa70..dfe4cd9ac 100644
--- a/include/asm-arm/string.h
+++ b/include/asm-arm/string.h
@@ -15,6 +15,8 @@ extern char * strchr(const char * s, int c);
#define __HAVE_ARCH_MEMCPY
#define __HAVE_ARCH_MEMMOVE
#define __HAVE_ARCH_MEMCHR
+extern void * memchr(const void *cs, int c, size_t count);
+
#define __HAVE_ARCH_MEMZERO
#define __HAVE_ARCH_MEMSET
diff --git a/include/asm-arm/system.h b/include/asm-arm/system.h
index a33b9e08b..40ab75a29 100644
--- a/include/asm-arm/system.h
+++ b/include/asm-arm/system.h
@@ -11,11 +11,12 @@
extern unsigned int system_rev;
extern unsigned int system_serial_low;
extern unsigned int system_serial_high;
+extern unsigned int mem_fclk_21285;
/* The type of machine we're running on */
extern unsigned int __machine_arch_type;
-/* see arch/arm/kernel/setup.c for a description of these */
+/* see arch/arm/kernel/arch.c for a description of these */
#define MACH_TYPE_EBSA110 0
#define MACH_TYPE_RISCPC 1
#define MACH_TYPE_NEXUSPCI 3
@@ -31,8 +32,13 @@ extern unsigned int __machine_arch_type;
#define MACH_TYPE_LACIE_NAS 13
#define MACH_TYPE_CLPS7500 14
#define MACH_TYPE_SHARK 15
-#define MACH_TYPE_SA1100 16
+#define MACH_TYPE_BRUTUS 16
#define MACH_TYPE_PERSONAL_SERVER 17
+#define MACH_TYPE_BITSY 22
+#define MACH_TYPE_THINCLIENT 24
+#define MACH_TYPE_ASSABET 25
+#define MACH_TYPE_VICTOR 26
+#define MACH_TYPE_LART 27
/*
* Sort out a definition for machine_arch_type
@@ -168,16 +174,16 @@ extern unsigned int __machine_arch_type;
# define machine_is_shark() (0)
#endif
-#ifdef CONFIG_ARCH_SA1100
+#ifdef CONFIG_SA1100_BRUTUS
# ifdef machine_arch_type
# undef machine_arch_type
# define machine_arch_type __machine_arch_type
# else
-# define machine_arch_type MACH_TYPE_SA1100
+# define machine_arch_type MACH_TYPE_BRUTUS
# endif
-# define machine_is_sa1100() (machine_arch_type == MACH_TYPE_SA1100)
+# define machine_is_brutus() (machine_arch_type == MACH_TYPE_BRUTUS)
#else
-# define machine_is_sa1100() (0)
+# define machine_is_brutus() (0)
#endif
#ifdef CONFIG_ARCH_PERSONAL_SERVER
@@ -192,6 +198,126 @@ extern unsigned int __machine_arch_type;
# define machine_is_personal_server() (0)
#endif
+#ifdef CONFIG_SA1100_ITSY
+# ifdef machine_arch_type
+# undef machine_arch_type
+# define machine_arch_type __machine_arch_type
+# else
+# define machine_arch_type MACH_TYPE_ITSY
+# endif
+# define machine_is_itsy() (machine_arch_type == MACH_TYPE_ITSY)
+#else
+# define machine_is_itsy() (0)
+#endif
+
+#ifdef CONFIG_SA1100_EMPEG
+# ifdef machine_arch_type
+# undef machine_arch_type
+# define machine_arch_type __machine_arch_type
+# else
+# define machine_arch_type MACH_TYPE_EMPEG
+# endif
+# define machine_is_empeg() (machine_arch_type == MACH_TYPE_EMPEG)
+#else
+# define machine_is_empeg() (0)
+#endif
+
+#ifdef CONFIG_SA1100_ASSABET
+# ifdef machine_arch_type
+# undef machine_arch_type
+# define machine_arch_type __machine_arch_type
+# else
+# define machine_arch_type MACH_TYPE_ASSABET
+# endif
+# define machine_is_assabet() (machine_arch_type == MACH_TYPE_ASSABET)
+#else
+# define machine_is_assabet() (0)
+#endif
+
+#ifdef CONFIG_SA1100_VICTOR
+# ifdef machine_arch_type
+# undef machine_arch_type
+# define machine_arch_type __machine_arch_type
+# else
+# define machine_arch_type MACH_TYPE_VICTOR
+# endif
+# define machine_is_victor() (machine_arch_type == MACH_TYPE_VICTOR)
+#else
+# define machine_is_victor() (0)
+#endif
+
+#ifdef CONFIG_SA1100_LART
+# ifdef machine_arch_type
+# undef machine_arch_type
+# define machine_arch_type __machine_arch_type
+# else
+# define machine_arch_type MACH_TYPE_LART
+# endif
+# define machine_is_lart() (machine_arch_type == MACH_TYPE_LART)
+#else
+# define machine_is_lart() (0)
+#endif
+
+#ifdef CONFIG_SA1100_BITSY
+# ifdef machine_arch_type
+# undef machine_arch_type
+# define machine_arch_type __machine_arch_type
+# else
+# define machine_arch_type MACH_TYPE_BITSY
+# endif
+# define machine_is_bitsy() (machine_arch_type == MACH_TYPE_BITSY)
+#else
+# define machine_is_bitsy() (0)
+#endif
+
+#ifdef CONFIG_SA1100_TIFON
+# ifdef machine_arch_type
+# undef machine_arch_type
+# define machine_arch_type __machine_arch_type
+# else
+# define machine_arch_type MACH_TYPE_TIFON
+# endif
+# define machine_is_tifon() (machine_arch_type == MACH_TYPE_TIFON)
+#else
+# define machine_is_tifon() (0)
+#endif
+
+#ifdef CONFIG_SA1100_PLEB
+# ifdef machine_arch_type
+# undef machine_arch_type
+# define machine_arch_type __machine_arch_type
+# else
+# define machine_arch_type MACH_TYPE_PLEB
+# endif
+# define machine_is_pleb() (machine_arch_type == MACH_TYPE_PLEB)
+#else
+# define machine_is_pleb() (0)
+#endif
+
+#ifdef CONFIG_SA1100_THINCLIENT
+# ifdef machine_arch_type
+# undef machine_arch_type
+# define machine_arch_type __machine_arch_type
+# else
+# define machine_arch_type MACH_TYPE_THINCLIENT
+# endif
+# define machine_is_thinclient() (machine_arch_type == MACH_TYPE_THINCLIENT)
+#else
+# define machine_is_thinclient() (0)
+#endif
+
+#ifdef CONFIG_SA1100_PENNY
+# ifdef machine_arch_type
+# undef machine_arch_type
+# define machine_arch_type __machine_arch_type
+# else
+# define machine_arch_type MACH_TYPE_PENNY
+# endif
+# define machine_is_penny() (machine_arch_type == MACH_TYPE_PENNY)
+#else
+# define machine_is_penny() (0)
+#endif
+
#ifndef machine_arch_type
#define machine_arch_type __machine_arch_type
#endif