diff -urN 2.4.8pre6/Documentation/Configure.help dsl20/Documentation/Configure.help --- 2.4.8pre6/Documentation/Configure.help Wed Aug 8 00:03:05 2001 +++ dsl20/Documentation/Configure.help Wed Aug 8 01:40:04 2001 @@ -2323,6 +2323,7 @@ Ruffian RPX164-2, AlphaPC164-UX, AlphaPC164-BX SX164 AlphaPC164-SX Sable AS 2000, AS 2100 + Shark DS 20L Takara Takara Titan Privateer Wildfire AlphaServer GS 40/80/160/320 diff -urN 2.4.8pre6/arch/alpha/config.in dsl20/arch/alpha/config.in --- 2.4.8pre6/arch/alpha/config.in Sat Jul 21 00:04:03 2001 +++ dsl20/arch/alpha/config.in Wed Aug 8 01:40:04 2001 @@ -54,12 +54,13 @@ RX164 CONFIG_ALPHA_RX164 \ SX164 CONFIG_ALPHA_SX164 \ Sable CONFIG_ALPHA_SABLE \ + Shark CONFIG_ALPHA_SHARK \ Takara CONFIG_ALPHA_TAKARA \ Titan CONFIG_ALPHA_TITAN \ Wildfire CONFIG_ALPHA_WILDFIRE" Generic # clear all implied options (don't want default values for those): -unset CONFIG_ALPHA_EV4 CONFIG_ALPHA_EV5 CONFIG_ALPHA_EV6 +unset CONFIG_ALPHA_EV4 CONFIG_ALPHA_EV5 CONFIG_ALPHA_EV6 CONFIG_ALPHA_EV67 unset CONFIG_ALPHA_EISA unset CONFIG_ALPHA_LCA CONFIG_ALPHA_APECS CONFIG_ALPHA_CIA unset CONFIG_ALPHA_T2 CONFIG_ALPHA_PYXIS CONFIG_ALPHA_POLARIS @@ -142,6 +143,11 @@ define_bool CONFIG_ALPHA_EV6 y define_bool CONFIG_ALPHA_TSUNAMI y fi +if [ "$CONFIG_ALPHA_SHARK" = "y" ] +then + define_bool CONFIG_ALPHA_EV67 y + define_bool CONFIG_ALPHA_TSUNAMI y +fi if [ "$CONFIG_ALPHA_WILDFIRE" = "y" -o "$CONFIG_ALPHA_TITAN" = "y" ] then define_bool CONFIG_ALPHA_EV6 y @@ -170,7 +176,7 @@ -o "$CONFIG_ALPHA_SABLE" = "y" -o "$CONFIG_ALPHA_NORITAKE" = "y" \ -o "$CONFIG_ALPHA_DP264" = "y" -o "$CONFIG_ALPHA_RAWHIDE" = "y" \ -o "$CONFIG_ALPHA_EIGER" = "y" -o "$CONFIG_ALPHA_WILDFIRE" = "y" \ - -o "$CONFIG_ALPHA_TITAN" = "y" ] + -o "$CONFIG_ALPHA_TITAN" = "y" -o "$CONFIG_ALPHA_SHARK" = "y" ] then define_bool CONFIG_ALPHA_SRM y fi @@ -201,7 +207,8 @@ if [ "$CONFIG_ALPHA_SABLE" = "y" -o "$CONFIG_ALPHA_RAWHIDE" = "y" \ -o "$CONFIG_ALPHA_DP264" = "y" -o "$CONFIG_ALPHA_WILDFIRE" = "y" \ - -o "$CONFIG_ALPHA_TITAN" = "y" -o "$CONFIG_ALPHA_GENERIC" = "y" ] + -o "$CONFIG_ALPHA_TITAN" = "y" -o "$CONFIG_ALPHA_GENERIC" = "y" \ + -o "$CONFIG_ALPHA_SHARK" = "y" ] then bool 'Symmetric multi-processing support' CONFIG_SMP fi diff -urN 2.4.8pre6/arch/alpha/defconfig dsl20/arch/alpha/defconfig --- 2.4.8pre6/arch/alpha/defconfig Sat May 26 04:03:35 2001 +++ dsl20/arch/alpha/defconfig Wed Aug 8 01:40:04 2001 @@ -44,6 +44,7 @@ # CONFIG_ALPHA_RX164 is not set # CONFIG_ALPHA_SX164 is not set # CONFIG_ALPHA_SABLE is not set +# CONFIG_ALPHA_SHARK is not set # CONFIG_ALPHA_TAKARA is not set # CONFIG_ALPHA_TITAN is not set # CONFIG_ALPHA_WILDFIRE is not set diff -urN 2.4.8pre6/arch/alpha/kernel/Makefile dsl20/arch/alpha/kernel/Makefile --- 2.4.8pre6/arch/alpha/kernel/Makefile Thu Feb 22 03:44:53 2001 +++ dsl20/arch/alpha/kernel/Makefile Wed Aug 8 01:40:04 2001 @@ -67,6 +67,7 @@ endif obj-$(CONFIG_ALPHA_DP264) += sys_dp264.o +obj-$(CONFIG_ALPHA_SHARK) += sys_dp264.o obj-$(CONFIG_ALPHA_TITAN) += sys_titan.o ifneq ($(CONFIG_ALPHA_EB64P)$(CONFIG_ALPHA_EB66),) diff -urN 2.4.8pre6/arch/alpha/kernel/setup.c dsl20/arch/alpha/kernel/setup.c --- 2.4.8pre6/arch/alpha/kernel/setup.c Sat May 26 04:03:35 2001 +++ dsl20/arch/alpha/kernel/setup.c Wed Aug 8 01:40:04 2001 @@ -154,6 +154,7 @@ WEAK(rx164_mv); WEAK(sable_mv); WEAK(sable_gamma_mv); +WEAK(shark_mv); WEAK(sx164_mv); WEAK(takara_mv); WEAK(webbrick_mv); @@ -665,9 +666,10 @@ static char tsunami_names[][16] = { "0", "DP264", "Warhol", "Windjammer", "Monet", "Clipper", - "Goldrush", "Webbrick", "Catamaran" + "Goldrush", "Webbrick", "Catamaran", "Brisbane", "Melbourne", + "Flying Clipper", "Shark" }; -static int tsunami_indices[] = {0,1,2,3,4,5,6,7,8}; +static int tsunami_indices[] = {0,1,2,3,4,5,6,7,8,9,10,11,12}; static struct alpha_machine_vector * __init get_sysvec(long type, long variation, long cpu) @@ -767,6 +769,10 @@ &dp264_mv, /* goldrush */ &webbrick_mv, /* webbrick */ &dp264_mv, /* catamaran */ + NULL, /* brisbane? */ + NULL, /* melbourne? */ + NULL, /* flying clipper? */ + &shark_mv, /* shark */ }; /* ??? Do we need to distinguish between Rawhides? */ @@ -880,6 +886,7 @@ &rx164_mv, &sable_mv, &sable_gamma_mv, + &shark_mv, &sx164_mv, &takara_mv, &webbrick_mv, diff -urN 2.4.8pre6/arch/alpha/kernel/sys_dp264.c dsl20/arch/alpha/kernel/sys_dp264.c --- 2.4.8pre6/arch/alpha/kernel/sys_dp264.c Wed Jul 4 04:03:45 2001 +++ dsl20/arch/alpha/kernel/sys_dp264.c Wed Aug 8 01:40:04 2001 @@ -5,6 +5,10 @@ * Copyright (C) 1996, 1999 Jay A Estabrook * Copyright (C) 1998, 1999 Richard Henderson * + * Modified by Christopher C. Chimelis, 2001 to + * add support for the addition of Shark to the + * Tsunami family. + * * Code supporting the DP264 (EV6+TSUNAMI). */ @@ -632,6 +636,34 @@ struct alpha_machine_vector clipper_mv __initmv = { vector_name: "Clipper", + DO_EV6_MMU, + DO_DEFAULT_RTC, + DO_TSUNAMI_IO, + DO_TSUNAMI_BUS, + machine_check: tsunami_machine_check, + max_dma_address: ALPHA_MAX_DMA_ADDRESS, + min_io_address: DEFAULT_IO_BASE, + min_mem_address: DEFAULT_MEM_BASE, + + nr_irqs: 64, + device_interrupt: dp264_device_interrupt, + + init_arch: tsunami_init_arch, + init_irq: clipper_init_irq, + init_rtc: common_init_rtc, + init_pci: common_init_pci, + kill_arch: tsunami_kill_arch, + pci_map_irq: clipper_map_irq, + pci_swizzle: common_swizzle, +}; + +/* Sharks strongly resemble Clipper, at least as far + * as interrupt routing, etc, so we're using the + * same functions as Clipper does + */ + +struct alpha_machine_vector shark_mv __initmv = { + vector_name: "Shark", DO_EV6_MMU, DO_DEFAULT_RTC, DO_TSUNAMI_IO, diff -urN 2.4.8pre6/include/asm-alpha/cache.h dsl20/include/asm-alpha/cache.h --- 2.4.8pre6/include/asm-alpha/cache.h Sun Apr 1 20:11:13 2001 +++ dsl20/include/asm-alpha/cache.h Wed Aug 8 01:40:04 2001 @@ -7,7 +7,7 @@ #include /* Bytes per L1 (data) cache line. */ -#if defined(CONFIG_ALPHA_GENERIC) || defined(CONFIG_ALPHA_EV6) +#if defined(CONFIG_ALPHA_GENERIC) || defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67) # define L1_CACHE_BYTES 64 # define L1_CACHE_SHIFT 6 #else diff -urN 2.4.8pre6/include/asm-alpha/irq.h dsl20/include/asm-alpha/irq.h --- 2.4.8pre6/include/asm-alpha/irq.h Sun Apr 1 20:11:14 2001 +++ dsl20/include/asm-alpha/irq.h Wed Aug 8 01:40:04 2001 @@ -43,6 +43,7 @@ # define NR_IRQS 40 #elif defined(CONFIG_ALPHA_DP264) || \ + defined(CONFIG_ALPHA_SHARK) || \ defined(CONFIG_ALPHA_EIGER) # define NR_IRQS 64 diff -urN 2.4.8pre6/include/asm-alpha/pgtable.h dsl20/include/asm-alpha/pgtable.h --- 2.4.8pre6/include/asm-alpha/pgtable.h Sat May 26 04:03:47 2001 +++ dsl20/include/asm-alpha/pgtable.h Wed Aug 8 01:40:04 2001 @@ -178,7 +178,8 @@ #error "EV6-only feature in a generic kernel" #endif #if defined(CONFIG_ALPHA_GENERIC) || \ - (defined(CONFIG_ALPHA_EV6) && !defined(USE_48_BIT_KSEG)) + ((defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67)) && \ + !defined(USE_48_BIT_KSEG)) #define PHYS_TWIDDLE(phys) \ ((((phys) & 0xc0000000000UL) == 0x40000000000UL) \ ? ((phys) ^= 0xc0000000000UL) : (phys)) diff -urN 2.4.8pre6/include/asm-alpha/system.h dsl20/include/asm-alpha/system.h --- 2.4.8pre6/include/asm-alpha/system.h Sat May 26 04:03:47 2001 +++ dsl20/include/asm-alpha/system.h Wed Aug 8 01:40:04 2001 @@ -192,7 +192,7 @@ #ifdef CONFIG_ALPHA_EV5 #define implver() IMPLVER_EV5 #endif -#ifdef CONFIG_ALPHA_EV6 +#if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67) #define implver() IMPLVER_EV6 #endif #endif