diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1998-05-07 03:14:42 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1998-05-07 03:14:42 +0000 |
commit | dca50cc150304946afb790f00ead222736146e3e (patch) | |
tree | bdab0fb75bde086403c66b8769c0333262cb0635 /arch | |
parent | dcec8a13bf565e47942a1751a9cec21bec5648fe (diff) |
Toxic waste.
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/boot/tools/build.c | 70 | ||||
-rw-r--r-- | arch/arm/lib/extractinfo.perl | 45 | ||||
-rw-r--r-- | arch/arm/lib/getconstants.c | 74 | ||||
-rw-r--r-- | arch/arm/lib/getconstants.h | 17 | ||||
-rw-r--r-- | arch/arm/mm/mm-a5k.c | 7 | ||||
-rw-r--r-- | arch/ppc/kernel/pci-bridge.c | 428 |
6 files changed, 0 insertions, 641 deletions
diff --git a/arch/arm/boot/tools/build.c b/arch/arm/boot/tools/build.c deleted file mode 100644 index ac1297564..000000000 --- a/arch/arm/boot/tools/build.c +++ /dev/null @@ -1,70 +0,0 @@ -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include <stdarg.h> -#include <a.out.h> - -typedef unsigned char byte; -typedef unsigned short word; -typedef unsigned long u32; - -void die(const char * str, ...) -{ - va_list args; - va_start(args, str); - vfprintf(stderr, str, args); - fputc('\n', stderr); - exit (1); -} - -int main(int argc, char **argv) -{ - void *data; - struct exec ex; - FILE *f; - int totlen; - - if (argc < 2) { - fprintf(stderr, "Usage: build kernel-name\n"); - exit(1); - } - - f = fopen(argv[1], "rb"); - if (!f) - die("Unable to open `%s': %m", argv[1]); - - fread(&ex, 1, sizeof(ex), f); - - if(N_MAGIC(ex) == ZMAGIC) { - fseek(f, 4096, SEEK_SET); - totlen = ex.a_text + ex.a_data; - } else - if(N_MAGIC(ex) == QMAGIC) { - unsigned long my_header; - - fseek(f, 4, SEEK_SET); - - my_header = 0xea000006; - - fwrite(&my_header, 4, 1, stdout); - - totlen = ex.a_text + ex.a_data - 4; - } else { - fprintf(stderr, "Unacceptable a.out header on kernel\n"); - fclose(f); - exit(1); - } - - fprintf(stderr, "Kernel is %dk (%dk text, %dk data, %dk bss)\n", - (ex.a_text + ex.a_data + ex.a_bss)/1024, - ex.a_text/1024, ex.a_data/1024, ex.a_bss/1024); - - data = malloc(totlen); - fread(data, 1, totlen, f); - fwrite(data, 1, totlen, stdout); - - free(data); - fclose(f); - fflush(stdout); - return 0; -} diff --git a/arch/arm/lib/extractinfo.perl b/arch/arm/lib/extractinfo.perl deleted file mode 100644 index d1f2efa8e..000000000 --- a/arch/arm/lib/extractinfo.perl +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/perl - -$OBJDUMP=$ARGV[0]; - -sub swapdata { - local ($num) = @_; - - return substr($num, 6, 2).substr($num, 4, 2).substr ($num, 2, 2).substr ($num, 0, 2); -} - -open (DATA, $OBJDUMP.' --full-contents --section=.data getconsdata.o | grep \'^ 00\' |') || - die ('Cant objdump!'); -while (<DATA>) { - ($addr, $data0, $data1, $data2, $data3) = split (' '); - $dat[hex($addr)] = hex(&swapdata($data0)); - $dat[hex($addr)+4] = hex(&swapdata($data1)); - $dat[hex($addr)+8] = hex(&swapdata($data2)); - $dat[hex($addr)+12] = hex(&swapdata($data3)); -} -close (DATA); - -open (DATA, $OBJDUMP.' --syms getconsdata.o |') || die ('Cant objdump!'); -while (<DATA>) { - /elf32/ && ( $elf = 1 ); - /a.out/ && ( $aout = 1 ); - next if ($aout && ! / 07 /); - next if ($elf && ! (/^00...... g/ && /.data/)); - next if (!$aout && !$elf); - - ($addr, $flags, $sect, $a1, $a2, $a3, $name) = split (' ') if $aout; - $nam[hex($addr)] = substr($name, 1) if $aout; - if ($elf) { - chomp; - $addr = substr ($_, 0, 8); - $name = substr ($_, 32); - $nam[hex($addr)] = $name; - } -} -close (DATA); - -print "/*\n * *** THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT! ***\n */\n"; -for ($i = 0; $i < hex($addr)+12; $i ++) { - print "unsigned long $nam[$i] = $dat[$i];\n" if $dat[$i]; - print "#define __HAS_$nam[$i]\n" if $dat[$i]; -} diff --git a/arch/arm/lib/getconstants.c b/arch/arm/lib/getconstants.c deleted file mode 100644 index edb67a5d3..000000000 --- a/arch/arm/lib/getconstants.c +++ /dev/null @@ -1,74 +0,0 @@ -/* - * linux/arch/arm/lib/getconstants.c - * - * Copyright (C) 1995, 1996 Russell King - */ - -#include <linux/mm.h> -#include <asm/pgtable.h> -#include <stdio.h> -#include <linux/unistd.h> - -void printdef(char *def, int no) -{ - printf("#define %s\t%d\n", def, no); -} - -#include "getconstants.h" - -int main() -{ - printf("/*\n * contants.h generated by getconstants\n * DO NOT EDIT!\n */\n"); - - printf("#define _current\t_%s\n", "current_set"); - -#ifdef _PAGE_PRESENT - printdef("PAGE_PRESENT", _PAGE_PRESENT); -#endif -#ifdef _PAGE_RW - printdef("PAGE_RW", _PAGE_RW); -#endif -#ifdef _PAGE_USER - printdef("PAGE_USER", _PAGE_USER); -#endif -#ifdef _PAGE_ACCESSED - printdef("PAGE_ACCESSED", _PAGE_ACCESSED); -#endif -#ifdef _PAGE_DIRTY - printdef("PAGE_DIRTY", _PAGE_DIRTY); -#endif -#ifdef _PAGE_READONLY - printdef("PAGE_READONLY", _PAGE_READONLY); -#endif -#ifdef _PAGE_NOT_USER - printdef("PAGE_NOT_USER", _PAGE_NOT_USER); -#endif -#ifdef _PAGE_OLD - printdef("PAGE_OLD", _PAGE_OLD); -#endif -#ifdef _PAGE_CLEAN - printdef("PAGE_CLEAN", _PAGE_CLEAN); -#endif - printdef("TSS_MEMMAP", (int)tss_memmap); - printdef("TSS_SAVE", (int)tss_save); -#ifdef __HAS_tss_memcmap - printdef("TSS_MEMCMAP", (int)tss_memcmap); -#endif -#ifdef __HAS_addr_limit - printdef("ADDR_LIMIT", (int)addr_limit); -#endif -#ifdef __HAS_kernel_domain - printdef("KERNEL_DOMAIN", kernel_domain); -#endif -#ifdef __HAS_user_domain - printdef("USER_DOMAIN", user_domain); -#endif - printdef("TSS_FPESAVE", (int)tss_fpesave); - printdef("MM", (int)mm); - printdef("PGD", (int)pgd); - - printf("#define KSWI_BASE 0x900000\n"); - printf("#define KSWI_SYS_BASE 0x9F0000\n"); - printf("#define SYS_ERROR0 0x9F0000\n"); - return 0; -} diff --git a/arch/arm/lib/getconstants.h b/arch/arm/lib/getconstants.h deleted file mode 100644 index ef9637781..000000000 --- a/arch/arm/lib/getconstants.h +++ /dev/null @@ -1,17 +0,0 @@ -/* - * *** THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT! *** - */ -unsigned long addr_limit = 56; -#define __HAS_addr_limit -unsigned long tss_memmap = 640; -#define __HAS_tss_memmap -unsigned long mm = 1676; -#define __HAS_mm -unsigned long pgd = 8; -#define __HAS_pgd -unsigned long tss_save = 636; -#define __HAS_tss_save -unsigned long tss_fpesave = 492; -#define __HAS_tss_fpesave -unsigned long tss_memcmap = 644; -#define __HAS_tss_memcmap diff --git a/arch/arm/mm/mm-a5k.c b/arch/arm/mm/mm-a5k.c deleted file mode 100644 index 3906a29ec..000000000 --- a/arch/arm/mm/mm-a5k.c +++ /dev/null @@ -1,7 +0,0 @@ -/* - * arch/arm/mm/mm-a5k.c - * - * Extra MM routines for the Archimedes architecture - * - * Copyright (C) 1998 Russell King - */ diff --git a/arch/ppc/kernel/pci-bridge.c b/arch/ppc/kernel/pci-bridge.c deleted file mode 100644 index 0e4420340..000000000 --- a/arch/ppc/kernel/pci-bridge.c +++ /dev/null @@ -1,428 +0,0 @@ -/* - * Support for PCI bridges found on Power Macintoshes. - * At present the "bandit" and "chaos" bridges are supported. - * Fortunately you access configuration space in the same - * way with either bridge. - * - * Copyright (C) 1997 Paul Mackerras (paulus@cs.anu.edu.au) - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version - * 2 of the License, or (at your option) any later version. - */ - -#include <linux/kernel.h> -#include <linux/pci.h> -#include <linux/bios32.h> -#include <linux/delay.h> -#include <linux/string.h> -#include <linux/init.h> -#include <asm/io.h> -#include <asm/prom.h> -#include <asm/pci-bridge.h> - -struct bridge_data { - volatile unsigned int *cfg_addr; - volatile unsigned char *cfg_data; - void *io_base; - int bus_number; - int max_bus; - struct bridge_data *next; - struct device_node *node; -}; - -static struct bridge_data **bridges, *bridge_list; -static int max_bus; - -static void add_bridges(struct device_node *dev, unsigned long *mem_ptr); - -/* - * Magic constants for enabling cache coherency in the bandit/PSX bridge. - */ -#define APPLE_VENDID 0x106b -#define BANDIT_DEVID 1 -#define BANDIT_REVID 3 - -#define BANDIT_DEVNUM 11 -#define BANDIT_MAGIC 0x50 -#define BANDIT_COHERENT 0x40 - -/* - * For a bandit bridge, turn on cache coherency if necessary. - * N.B. we can't use pcibios_*_config_* here because bridges[] - * is not initialized yet. - */ -static void init_bandit(struct bridge_data *bp) -{ - unsigned int vendev, magic; - int rev; - - /* read the word at offset 0 in config space for device 11 */ - out_le32(bp->cfg_addr, (1UL << BANDIT_DEVNUM) + PCI_VENDOR_ID); - udelay(2); - vendev = in_le32((volatile unsigned int *)bp->cfg_data); - if (vendev != (BANDIT_DEVID << 16) + APPLE_VENDID) { - printk(KERN_WARNING "bandit isn't? (%x)\n", vendev); - return; - } - - /* read the revision id */ - out_le32(bp->cfg_addr, (1UL << BANDIT_DEVNUM) + PCI_REVISION_ID); - udelay(2); - rev = in_8(bp->cfg_data); - if (rev != BANDIT_REVID) - printk(KERN_WARNING "Unknown revision %d for bandit at %p\n", - rev, bp->io_base); - - /* read the word at offset 0x50 */ - out_le32(bp->cfg_addr, (1UL << BANDIT_DEVNUM) + BANDIT_MAGIC); - udelay(2); - magic = in_le32((volatile unsigned int *)bp->cfg_data); - if ((magic & BANDIT_COHERENT) != 0) - return; - magic |= BANDIT_COHERENT; - udelay(2); - out_le32((volatile unsigned int *)bp->cfg_data, magic); - printk(KERN_INFO "Cache coherency enabled for bandit/PSX at %p\n", - bp->io_base); -} - -unsigned long pmac_find_bridges(unsigned long mem_start, unsigned long mem_end) -{ - int bus; - struct bridge_data *bridge; - - bridge_list = 0; - max_bus = 0; - add_bridges(find_devices("bandit"), &mem_start); - add_bridges(find_devices("chaos"), &mem_start); - bridges = (struct bridge_data **) mem_start; - mem_start += (max_bus + 1) * sizeof(struct bridge_data *); - memset(bridges, 0, (max_bus + 1) * sizeof(struct bridge_data *)); - for (bridge = bridge_list; bridge != NULL; bridge = bridge->next) - for (bus = bridge->bus_number; bus <= bridge->max_bus; ++bus) - bridges[bus] = bridge; - - return mem_start; -} - -static void add_bridges(struct device_node *dev, unsigned long *mem_ptr) -{ - int *bus_range; - int len; - struct bridge_data *bp; - - for (; dev != NULL; dev = dev->next) { - if (dev->n_addrs < 1) { - printk(KERN_WARNING "Can't use %s: no address\n", - dev->full_name); - continue; - } - bus_range = (int *) get_property(dev, "bus-range", &len); - if (bus_range == NULL || len < 2 * sizeof(int)) { - printk(KERN_WARNING "Can't get bus-range for %s\n", - dev->full_name); - continue; - } - if (bus_range[1] == bus_range[0]) - printk(KERN_INFO "PCI bus %d", bus_range[0]); - else - printk(KERN_INFO "PCI buses %d..%d", bus_range[0], - bus_range[1]); - printk(" controlled by %s at %x\n", - dev->name, dev->addrs[0].address); - bp = (struct bridge_data *) *mem_ptr; - *mem_ptr += sizeof(struct bridge_data); - bp->cfg_addr = (volatile unsigned int *) - (dev->addrs[0].address + 0x800000); - bp->cfg_data = (volatile unsigned char *) - (dev->addrs[0].address + 0xc00000); - bp->io_base = (void *) dev->addrs[0].address; - ioremap(dev->addrs[0].address, 0x800000); - bp->bus_number = bus_range[0]; - bp->max_bus = bus_range[1]; - bp->next = bridge_list; - bp->node = dev; - bridge_list = bp; - if (bp->max_bus > max_bus) - max_bus = bp->max_bus; - - if (strcmp(dev->name, "bandit") == 0) - init_bandit(bp); - } -} - -void *pci_io_base(unsigned int bus) -{ - struct bridge_data *bp; - - if (bus > max_bus || (bp = bridges[bus]) == 0) - return 0; - return bp->io_base; -} - -int pci_device_loc(struct device_node *dev, unsigned char *bus_ptr, - unsigned char *devfn_ptr) -{ - unsigned int *reg; - int len; - - reg = (unsigned int *) get_property(dev, "reg", &len); - if (reg == 0 || len < 5 * sizeof(unsigned int)) { - /* doesn't look like a PCI device */ - *bus_ptr = 0xff; - *devfn_ptr = 0xff; - return -1; - } - *bus_ptr = reg[0] >> 16; - *devfn_ptr = reg[0] >> 8; - return 0; -} - -int pmac_pcibios_read_config_byte(unsigned char bus, unsigned char dev_fn, - unsigned char offset, unsigned char *val) -{ - struct bridge_data *bp; - - *val = 0xff; - if (bus > max_bus || (bp = bridges[bus]) == 0) - return PCIBIOS_DEVICE_NOT_FOUND; - if (bus == bp->bus_number) { - if (dev_fn < (11 << 3)) - return PCIBIOS_DEVICE_NOT_FOUND; - out_le32(bp->cfg_addr, - (1UL << (dev_fn >> 3)) + ((dev_fn & 7) << 8) - + (offset & ~3)); - } else { - out_le32(bp->cfg_addr, (dev_fn << 8) + (offset & ~3) + 1); - } - udelay(2); - *val = in_8(bp->cfg_data + (offset & 3)); - - if (offset == PCI_INTERRUPT_LINE) { - /* - * Open Firmware often doesn't initialize this - * register properly, so we find the node and see - * if it has an AAPL,interrupts property. - */ - struct device_node *node; - unsigned int *reg; - - for (node = bp->node->child; node != 0; node = node->sibling) { - reg = (unsigned int *) get_property(node, "reg", 0); - if (reg == 0 || ((reg[0] >> 8) & 0xff) != dev_fn) - continue; - /* this is the node, see if it has interrupts */ - if (node->n_intrs > 0) - *val = node->intrs[0]; - break; - } - } - - return PCIBIOS_SUCCESSFUL; -} - -int pmac_pcibios_read_config_word(unsigned char bus, unsigned char dev_fn, - unsigned char offset, unsigned short *val) -{ - struct bridge_data *bp; - - *val = 0xffff; - if (bus > max_bus || (bp = bridges[bus]) == 0 || (offset & 1) != 0) - return PCIBIOS_DEVICE_NOT_FOUND; - if (bus == bp->bus_number) { - if (dev_fn < (11 << 3)) - return PCIBIOS_DEVICE_NOT_FOUND; - out_le32(bp->cfg_addr, - (1UL << (dev_fn >> 3)) + ((dev_fn & 7) << 8) - + (offset & ~3)); - } else { - out_le32(bp->cfg_addr, (dev_fn << 8) + (offset & ~3) + 1); - } - udelay(2); - *val = in_le16((volatile unsigned short *)(bp->cfg_data + (offset & 3))); - return PCIBIOS_SUCCESSFUL; -} - -int pmac_pcibios_read_config_dword(unsigned char bus, unsigned char dev_fn, - unsigned char offset, unsigned int *val) -{ - struct bridge_data *bp; - - *val = 0xffffffff; - if (bus > max_bus || (bp = bridges[bus]) == 0 || (offset & 3) != 0) - return PCIBIOS_DEVICE_NOT_FOUND; - if (bus == bp->bus_number) { - if (dev_fn < (11 << 3)) - return PCIBIOS_DEVICE_NOT_FOUND; - out_le32(bp->cfg_addr, - (1UL << (dev_fn >> 3)) + ((dev_fn & 7) << 8) - + offset); - } else { - out_le32(bp->cfg_addr, (dev_fn << 8) + offset + 1); - } - udelay(2); - *val = in_le32((volatile unsigned int *)bp->cfg_data); - return PCIBIOS_SUCCESSFUL; -} - -int pmac_pcibios_write_config_byte(unsigned char bus, unsigned char dev_fn, - unsigned char offset, unsigned char val) -{ - struct bridge_data *bp; - - if (bus > max_bus || (bp = bridges[bus]) == 0) - return PCIBIOS_DEVICE_NOT_FOUND; - if (bus == bp->bus_number) { - if (dev_fn < (11 << 3)) - return PCIBIOS_DEVICE_NOT_FOUND; - out_le32(bp->cfg_addr, - (1UL << (dev_fn >> 3)) + ((dev_fn & 7) << 8) - + (offset & ~3)); - } else { - out_le32(bp->cfg_addr, (dev_fn << 8) + (offset & ~3) + 1); - } - udelay(2); - out_8(bp->cfg_data + (offset & 3), val); - return PCIBIOS_SUCCESSFUL; -} - -int pmac_pcibios_write_config_word(unsigned char bus, unsigned char dev_fn, - unsigned char offset, unsigned short val) -{ - struct bridge_data *bp; - - if (bus > max_bus || (bp = bridges[bus]) == 0 || (offset & 1) != 0) - return PCIBIOS_DEVICE_NOT_FOUND; - if (bus == bp->bus_number) { - if (dev_fn < (11 << 3)) - return PCIBIOS_DEVICE_NOT_FOUND; - out_le32(bp->cfg_addr, - (1UL << (dev_fn >> 3)) + ((dev_fn & 7) << 8) - + (offset & ~3)); - } else { - out_le32(bp->cfg_addr, (dev_fn << 8) + (offset & ~3) + 1); - } - udelay(2); - out_le16((volatile unsigned short *)(bp->cfg_data + (offset & 3)), val); - return PCIBIOS_SUCCESSFUL; -} - -int pmac_pcibios_write_config_dword(unsigned char bus, unsigned char dev_fn, - unsigned char offset, unsigned int val) -{ - struct bridge_data *bp; - - if (bus > max_bus || (bp = bridges[bus]) == 0 || (offset & 3) != 0) - return PCIBIOS_DEVICE_NOT_FOUND; - if (bus == bp->bus_number) { - if (dev_fn < (11 << 3)) - return PCIBIOS_DEVICE_NOT_FOUND; - out_le32(bp->cfg_addr, - (1UL << (dev_fn >> 3)) + ((dev_fn & 7) << 8) - + offset); - } else { - out_le32(bp->cfg_addr, (dev_fn << 8) + offset + 1); - } - udelay(2); - out_le32((volatile unsigned int *)bp->cfg_data, val); - return PCIBIOS_SUCCESSFUL; -} - -int pmac_pcibios_find_device(unsigned short vendor, unsigned short dev_id, - unsigned short index, unsigned char *bus_ptr, - unsigned char *dev_fn_ptr) -{ - int bus, unit, fn, num, devfn; - unsigned int x, vendev; - unsigned char h; - - if (vendor == 0xffff) - return PCIBIOS_BAD_VENDOR_ID; - vendev = (dev_id << 16) + vendor; - num = 0; - for (bus = 0; bus <= max_bus; ++bus) { - if (bridges[bus] == 0) - continue; - unit = fn = 0; - if (bus == bridges[bus]->bus_number) - unit = 11; - while (unit < 32) { - devfn = PCI_DEVFN(unit, fn); - if (pcibios_read_config_dword(bus, devfn, - PCI_VENDOR_ID, &x) - == PCIBIOS_SUCCESSFUL && x == vendev) { - if (index == num) { - *bus_ptr = bus; - *dev_fn_ptr = devfn; - return PCIBIOS_SUCCESSFUL; - } - ++num; - } - if (fn != 0) { - if (++fn >= 8) { - ++unit; - fn = 0; - } - continue; - } - if (pcibios_read_config_byte(bus, devfn, - PCI_HEADER_TYPE, &h) - == PCIBIOS_SUCCESSFUL && (h & 0x80) != 0) - ++fn; - else - ++unit; - } - } - return PCIBIOS_DEVICE_NOT_FOUND; -} - -int pmac_pcibios_find_class(unsigned int class_code, unsigned short index, - unsigned char *bus_ptr, unsigned char *dev_fn_ptr) -{ - int bus, unit, fn, num, devfn; - unsigned int x; - unsigned char h; - - num = 0; - for (bus = 0; bus <= max_bus; ++bus) { - if (bridges[bus] == 0) - continue; - unit = fn = 0; - if (bus == bridges[bus]->bus_number) - unit = 11; - while (unit < 32) { - devfn = PCI_DEVFN(unit, fn); - if (pcibios_read_config_dword(bus, devfn, - PCI_CLASS_REVISION, &x) - == PCIBIOS_SUCCESSFUL && (x >> 8) == class_code) { - if (index == num) { - *bus_ptr = bus; - *dev_fn_ptr = devfn; - return PCIBIOS_SUCCESSFUL; - } - ++num; - } - if (fn != 0) { - if (++fn >= 8) { - ++unit; - fn = 0; - } - continue; - } - if (pcibios_read_config_byte(bus, devfn, - PCI_HEADER_TYPE, &h) - == PCIBIOS_SUCCESSFUL && (h & 0x80) != 0) - ++fn; - else - ++unit; - } - } - return PCIBIOS_DEVICE_NOT_FOUND; -} - -__initfunc(unsigned long route_pci_interrupts(void)) -{ - return 0; -} |