LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Sponsors
  • Mirrors
  • Logos
  • Contact us
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Cvs-checkins > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: cvs at opencores.org<cvs@o...>
    Date: Tue Dec 20 12:28:14 CET 2005
    Subject: [cvs-checkins] MODIFIED: or1k ...
    Top
    Date: 00/05/12 20:12:28

    Added: or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc
    a.out.h dma.h hardware.h io.h irq.h irqs.h mmap.h
    mmu.h oldlatches.h processor.h serial.h shmparam.h
    system.h time.h uncompress.h
    Log:
    First Import of RC20x uClinux


    Revision Changes Path
    1.1 or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/a.out.h

    http://www.opencores.org/cvsweb.shtml/or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/a.out.h?rev=1.1&content-type=text/x-cvsweb-markup

    Index: a.out.h
    ===================================================================
    /*
    * linux/include/asm-arm/arch-rpc/a.out.h
    *
    * Copyright (C) 1996 Russell King
    */

    #ifndef __ASM_ARCH_A_OUT_H
    #define __ASM_ARCH_A_OUT_H

    #ifdef __KERNEL__
    #define STACK_TOP ((current->personality==PER_LINUX_32BIT)? 0xc0000000 : 0x04000000)
    #define LIBRARY_START_TEXT (0x00c00000)
    #endif

    #endif




    1.1 or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/dma.h

    http://www.opencores.org/cvsweb.shtml/or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/dma.h?rev=1.1&content-type=text/x-cvsweb-markup

    Index: dma.h
    ===================================================================
    #ifndef __ASM_ARCH_DMA_H
    #define __ASM_ARCH_DMA_H

    /*
    * This is the maximum DMA address that can be DMAd to.
    * There should not be more than (0xd0000000 - 0xc0000000)
    * bytes of RAM.
    */
    #define MAX_DMA_ADDRESS 0xd0000000

    /*
    * DMA modes - we have two, IN and OUT
    */
    typedef enum {
    DMA_MODE_READ,
    DMA_MODE_WRITE
    } dmamode_t;

    #define MAX_DMA_CHANNELS 8

    #define DMA_0 0
    #define DMA_1 1
    #define DMA_2 2
    #define DMA_3 3
    #define DMA_S0 4
    #define DMA_S1 5
    #define DMA_VIRTUAL_FLOPPY 6
    #define DMA_VIRTUAL_SOUND 7

    #define DMA_FLOPPY DMA_VIRTUAL_FLOPPY

    #endif /* _ASM_ARCH_DMA_H */




    1.1 or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/hardware.h

    http://www.opencores.org/cvsweb.shtml/or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/hardware.h?rev=1.1&content-type=text/x-cvsweb-markup

    Index: hardware.h
    ===================================================================
    /*
    * linux/include/asm-arm/arch-rpc/hardware.h
    *
    * Copyright (C) 1996 Russell King.
    *
    * This file contains the hardware definitions of the RiscPC series machines.
    */

    #ifndef __ASM_ARCH_HARDWARE_H
    #define __ASM_ARCH_HARDWARE_H

    /*
    * What hardware must be present
    */
    #define HAS_IOMD
    #define HAS_VIDC20

    /* Hardware addresses of major areas.
    * *_START is the physical address * *_SIZE is the size of the region * *_BASE is the virtual address */ #define RAM_SIZE 0x10000000 #define RAM_START 0x10000000 #define EASI_SIZE 0x08000000 /* EASI I/O */ #define EASI_START 0x08000000 #define EASI_BASE 0xe5000000 #define IO_START 0x03000000 /* I/O */ #define IO_SIZE 0x01000000 #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 #ifndef __ASSEMBLER__ /* * for use with inb/outb */ #define IO_VIDC_AUDIO_BASE 0x80140000 #define IO_VIDC_BASE 0x80100000 #define IO_IOMD_BASE 0x80080000 #define IO_EC_EASI_BASE 0x81400000 #define IO_EC_IOC4_BASE 0x8009c000 #define IO_EC_IOC_BASE 0x80090000 #define IO_EC_MEMC8_BASE 0x8000ac00 #define IO_EC_MEMC_BASE 0x80000000 /* * IO definitions */ #define EXPMASK_BASE ((volatile unsigned char *)0xe0360000) #define IOEB_BASE ((volatile unsigned char *)0xe0350050) #define IOC_BASE ((volatile unsigned char *)0xe0200000) #define PCIO_FLOPPYDMABASE ((volatile unsigned char *)0xe002a000) #define PCIO_BASE 0xe0010000 /* * Offsets from RAM base */ #define PARAMS_OFFSET 0x0100 #define KERNEL_OFFSET 0x8000 /* * RAM definitions */ #define MAPTOPHYS(x) (x) #define KERNTOPHYS(x) ((unsigned long)(&x)) #define GET_MEMORY_END(p) (PAGE_OFFSET + p->u1.s.page_size * \ (p->u1.s.pages_in_bank[0] + \ p->u1.s.pages_in_bank[1] + \ p->u1.s.pages_in_bank[2] + \ p->u1.s.pages_in_bank[3])) #define KERNEL_BASE (PAGE_OFFSET + KERNEL_OFFSET) #define PARAMS_BASE (PAGE_OFFSET + PARAMS_OFFSET) #define Z_PARAMS_BASE (RAM_START + PARAMS_OFFSET) #define SAFE_ADDR 0x00000000 /* ROM */ #else #define VIDC_SND_BASE 0xe0500000 #define VIDC_BASE 0xe0400000 #define IOMD_BASE 0xe0200000 #define IOC_BASE 0xe0200000 #define PCIO_FLOPPYDMABASE 0xe002a000 #define PCIO_BASE 0xe0010000 #define IO_BASE 0xe0000000 #endif #endif 1.1 or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/io.h http://www.opencores.org/cvsweb.shtml/or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/io.h?rev=1.1&content-type=text/x-cvsweb-markup Index: io.h =================================================================== /* * linux/include/asm-arm/arch-rpc/io.h * * Copyright (C) 1997 Russell King * * Modifications: * 06-Dec-1997 RMK Created. */ #ifndef __ASM_ARM_ARCH_IO_H #define __ASM_ARM_ARCH_IO_H /* * This architecture does not require any delayed IO, and * has the constant-optimised IO */ #undef ARCH_IO_DELAY /* * We use two different types of addressing - PC style addresses, and ARM * addresses. PC style accesses the PC hardware with the normal PC IO * addresses, eg 0x3f8 for serial#1. ARM addresses are 0x80000000+ * and are translated to the start of IO. Note that all addresses are * shifted left! */ #define __PORT_PCIO(x) (!((x) & 0x80000000)) /* * Dynamic IO functions - let the compiler * optimize the expressions */ extern __inline__ void __outb (unsigned int value, unsigned int port) { unsigned long temp; __asm__ __volatile__( "tst %2, #0x80000000\n\t" "mov %0, %4\n\t" "addeq %0, %0, %3\n\t" "strb %1, [%0, %2, lsl #2]" : "=&r" (temp) : "r" (value), "r" (port), "Ir" (PCIO_BASE - IO_BASE), "Ir" (IO_BASE) : "cc"); } extern __inline__ void __outw (unsigned int value, unsigned int port) { unsigned long temp; __asm__ __volatile__( "tst %2, #0x80000000\n\t" "mov %0, %4\n\t" "addeq %0, %0, %3\n\t" "str %1, [%0, %2, lsl #2]" : "=&r" (temp) : "r" (value|value<<16), "r" (port), "Ir" (PCIO_BASE - IO_BASE), "Ir" (IO_BASE) : "cc"); } extern __inline__ void __outl (unsigned int value, unsigned int port) { unsigned long temp; __asm__ __volatile__( "tst %2, #0x80000000\n\t" "mov %0, %4\n\t" "addeq %0, %0, %3\n\t" "str %1, [%0, %2, lsl #2]" : "=&r" (temp) : "r" (value), "r" (port), "Ir" (PCIO_BASE - IO_BASE), "Ir" (IO_BASE) : "cc"); } #define DECLARE_DYN_IN(sz,fnsuffix,instr) \ extern __inline__ unsigned sz __in##fnsuffix (unsigned int port) \ { \ unsigned long temp, value; \ __asm__ __volatile__( \ "tst %2, #0x80000000\n\t" \ "mov %0, %4\n\t" \ "addeq %0, %0, %3\n\t" \ "ldr" ##instr## " %1, [%0, %2, lsl #2]" \ : "=&r" (temp), "=r" (value) \ : "r" (port), "Ir" (PCIO_BASE - IO_BASE), "Ir" (IO_BASE) \ : "cc"); \ return (unsigned sz)value; \ } extern __inline__ unsigned int __ioaddr (unsigned int port) \ { \ if (__PORT_PCIO(port)) \ return (unsigned int)(PCIO_BASE + (port << 2)); \ else \ return (unsigned int)(IO_BASE + (port << 2)); \ } DECLARE_DYN_IN(char,b,"b") DECLARE_DYN_IN(short,w,"") DECLARE_DYN_IN(long,l,"") #undef DECLARE_DYN_IN /* * Constant address IO functions * * These have to be macros for the 'J' constraint to work - * +/-4096 immediate operand. */ #define __outbc(value,port) \ ({ \ if (__PORT_PCIO((port))) \ __asm__ __volatile__( \ "strb %0, [%1, %2]" \ : : "r" (value), "r" (PCIO_BASE), "Jr" ((port) << 2)); \ else \ __asm__ __volatile__( \ "strb %0, [%1, %2]" \ : : "r" (value), "r" (IO_BASE), "r" ((port) << 2)); \ }) #define __inbc(port) \ ({ \ unsigned char result; \ if (__PORT_PCIO((port))) \ __asm__ __volatile__( \ "ldrb %0, [%1, %2]" \ : "=r" (result) : "r" (PCIO_BASE), "Jr" ((port) << 2)); \ else \ __asm__ __volatile__( \ "ldrb %0, [%1, %2]" \ : "=r" (result) : "r" (IO_BASE), "r" ((port) << 2)); \ result; \ }) #define __outwc(value,port) \ ({ \ unsigned long v = value; \ if (__PORT_PCIO((port))) \ __asm__ __volatile__( \ "str %0, [%1, %2]" \ : : "r" (v|v<<16), "r" (PCIO_BASE), "Jr" ((port) << 2)); \ else \ __asm__ __volatile__( \ "str %0, [%1, %2]" \ : : "r" (v|v<<16), "r" (IO_BASE), "r" ((port) << 2)); \ }) #define __inwc(port) \ ({ \ unsigned short result; \ if (__PORT_PCIO((port))) \ __asm__ __volatile__( \ "ldr %0, [%1, %2]" \ : "=r" (result) : "r" (PCIO_BASE), "Jr" ((port) << 2)); \ else \ __asm__ __volatile__( \ "ldr %0, [%1, %2]" \ : "=r" (result) : "r" (IO_BASE), "r" ((port) << 2)); \ result & 0xffff; \ }) #define __outlc(value,port) \ ({ \ unsigned long v = value; \ if (__PORT_PCIO((port))) \ __asm__ __volatile__( \ "str %0, [%1, %2]" \ : : "r" (v), "r" (PCIO_BASE), "Jr" ((port) << 2)); \ else \ __asm__ __volatile__( \ "str %0, [%1, %2]" \ : : "r" (v), "r" (IO_BASE), "r" ((port) << 2)); \ }) #define __inlc(port) \ ({ \ unsigned long result; \ if (__PORT_PCIO((port))) \ __asm__ __volatile__( \ "ldr %0, [%1, %2]" \ : "=r" (result) : "r" (PCIO_BASE), "Jr" ((port) << 2)); \ else \ __asm__ __volatile__( \ "ldr %0, [%1, %2]" \ : "=r" (result) : "r" (IO_BASE), "r" ((port) << 2)); \ result; \ }) #define __ioaddrc(port) \ ({ \ unsigned long addr; \ if (__PORT_PCIO((port))) \ addr = PCIO_BASE + ((port) << 2); \ else \ addr = IO_BASE + ((port) << 2); \ addr; \ }) /* * Translated address IO functions * * IO address has already been translated to a virtual address */ #define outb_t(v,p) \ (*(volatile unsigned char *)(p) = (v)) #define inb_t(p) \ (*(volatile unsigned char *)(p)) #define outl_t(v,p) \ (*(volatile unsigned long *)(p) = (v)) #define inl_t(p) \ (*(volatile unsigned long *)(p)) #endif 1.1 or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/irq.h http://www.opencores.org/cvsweb.shtml/or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/irq.h?rev=1.1&content-type=text/x-cvsweb-markup Index: irq.h =================================================================== /* * include/asm-arm/arch-rpc/irq.h * * Copyright (C) 1996 Russell King * * Changelog: * 10-10-1996 RMK Brought up to date with arch-sa110eval */ #define BUILD_IRQ(s,n,m) \ void IRQ##n##_interrupt(void); \ void fast_IRQ##n##_interrupt(void); \ void bad_IRQ##n##_interrupt(void); \ void probe_IRQ##n##_interrupt(void); /* * The timer is a special interrupt */ #define IRQ5_interrupt timer_IRQ_interrupt #define IRQ_INTERRUPT(n) IRQ##n##_interrupt #define FAST_INTERRUPT(n) fast_IRQ##n##_interrupt #define BAD_INTERRUPT(n) bad_IRQ##n##_interrupt #define PROBE_INTERRUPT(n) probe_IRQ##n##_interrupt static __inline__ void mask_irq(unsigned int irq) { extern void ecard_disableirq (unsigned int); extern void ecard_disablefiq (unsigned int); unsigned char mask = 1 << (irq & 7); switch (irq >> 3) { case 0: outb(inb(IOMD_IRQMASKA) & ~mask, IOMD_IRQMASKA); break; case 1: outb(inb(IOMD_IRQMASKB) & ~mask, IOMD_IRQMASKB); break; case 2: outb(inb(IOMD_DMAMASK) & ~mask, IOMD_DMAMASK); break; case 4: ecard_disableirq (irq & 7); break; case 8: outb(inb(IOMD_FIQMASK) & ~mask, IOMD_FIQMASK); break; case 12: ecard_disablefiq (irq & 7); } } static __inline__ void unmask_irq(unsigned int irq) { extern void ecard_enableirq (unsigned int); extern void ecard_enablefiq (unsigned int); unsigned char mask = 1 << (irq & 7); switch (irq >> 3) { case 0: outb(inb(IOMD_IRQMASKA) | mask, IOMD_IRQMASKA); break; case 1: outb(inb(IOMD_IRQMASKB) | mask, IOMD_IRQMASKB); break; case 2: outb(inb(IOMD_DMAMASK) | mask, IOMD_DMAMASK); break; case 4: ecard_enableirq (irq & 7); break; case 8: outb(inb(IOMD_FIQMASK) | mask, IOMD_FIQMASK); break; case 12: ecard_enablefiq (irq & 7); } } static __inline__ unsigned long get_enabled_irqs(void) { return inb(IOMD_IRQMASKA) | inb(IOMD_IRQMASKB) << 8 | inb(IOMD_DMAMASK) << 16; } static __inline__ void irq_init_irq(void) { outb(0, IOMD_IRQMASKA); outb(0, IOMD_IRQMASKB); outb(0, IOMD_FIQMASK); outb(0, IOMD_DMAMASK); outb(0, IOMD_IO0CR); outb(0, IOMD_IO1CR); outb(0, IOMD_IO2CR); outb(0, IOMD_IO3CR); } 1.1 or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/irqs.h http://www.opencores.org/cvsweb.shtml/or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/irqs.h?rev=1.1&content-type=text/x-cvsweb-markup Index: irqs.h =================================================================== /* * linux/include/asm-arm/arch-a5k/irqs.h * * Copyright (C) 1996 Russell King */ #define IRQ_PRINTER 0 #define IRQ_BATLOW 1 #define IRQ_FLOPPYINDEX 2 #define IRQ_VSYNCPULSE 3 #define IRQ_POWERON 4 #define IRQ_TIMER0 5 #define IRQ_TIMER1 6 #define IRQ_IMMEDIATE 7 #define IRQ_EXPCARDFIQ 8 #define IRQ_SOUNDCHANGE 9 #define IRQ_SERIALPORT 10 #define IRQ_HARDDISK 11 #define IRQ_FLOPPYDISK 12 #define IRQ_EXPANSIONCARD 13 #define IRQ_KEYBOARDTX 14 #define IRQ_KEYBOARDRX 15 #define IRQ_DMA0 16 #define IRQ_DMA1 17 #define IRQ_DMA2 18 #define IRQ_DMA3 19 #define IRQ_DMAS0 20 #define IRQ_DMAS1 21 #define FIQ_FLOPPYDATA 0 #define FIQ_ECONET 2 #define FIQ_SERIALPORT 4 #define FIQ_EXPANSIONCARD 6 #define FIQ_FORCE 7 1.1 or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/mmap.h http://www.opencores.org/cvsweb.shtml/or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/mmap.h?rev=1.1&content-type=text/x-cvsweb-markup Index: mmap.h =================================================================== /* * linux/include/asm-arm/arch-rpc/mmap.h * * Copyright (C) 1996 Russell King */ #define HAVE_MAP_VID_MEM #define SAFE_ADDR 0x00000000 /* ROM */ unsigned long map_screen_mem(unsigned long log_start, unsigned long kmem, int update) { static int updated = 0; unsigned long address; pgd_t *pgd; if (updated) return 0; updated = update; address = SCREEN_START | PMD_TYPE_SECT | PMD_DOMAIN(DOMAIN_KERNEL) | PMD_SECT_AP_WRITE; pgd = swapper_pg_dir + (SCREEN2_BASE >> PGDIR_SHIFT); pgd_val(pgd[0]) = address; pgd_val(pgd[1]) = address + (1 << PGDIR_SHIFT); if (update) { unsigned long pgtable = PAGE_ALIGN(kmem), *p; int i; memzero ((void *)pgtable, 4096); pgd_val(pgd[-2]) = __virt_to_phys(pgtable) | PMD_TYPE_TABLE | PMD_DOMAIN(DOMAIN_KERNEL); pgd_val(pgd[-1]) = __virt_to_phys(pgtable + PTRS_PER_PTE*4) | PMD_TYPE_TABLE | PMD_DOMAIN(DOMAIN_KERNEL); p = (unsigned long *)pgtable; i = PTRS_PER_PTE * 2 - ((SCREEN1_END - log_start) >> PAGE_SHIFT); address = SCREEN_START | PTE_TYPE_SMALL | PTE_AP_WRITE; while (i < PTRS_PER_PTE * 2) { p[i++] = address; address += PAGE_SIZE; } flush_page_to_ram(pgtable); kmem = pgtable + PAGE_SIZE; } return kmem; } 1.1 or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/mmu.h http://www.opencores.org/cvsweb.shtml/or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/mmu.h?rev=1.1&content-type=text/x-cvsweb-markup Index: mmu.h =================================================================== /* * linux/include/asm-arm/arch-rpc/mmu.h * * Copyright (c) 1996,1997,1998 Russell King. * * Changelog: * 20-10-1996 RMK Created * 31-12-1997 RMK Fixed definitions to reduce warnings * 11-01-1998 RMK Uninlined to reduce hits on cache * 08-02-1998 RMK Added __virt_to_bus and __bus_to_virt */ #ifndef __ASM_ARCH_MMU_H #define __ASM_ARCH_MMU_H extern unsigned long __virt_to_phys(unsigned long vpage); extern unsigned long __phys_to_virt(unsigned long ppage); /* * These are exactly the same on the RiscPC as the * physical memory view. */ #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) #endif 1.1 or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/oldlatches.h http://www.opencores.org/cvsweb.shtml/or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/oldlatches.h?rev=1.1&content-type=text/x-cvsweb-markup Index: oldlatches.h =================================================================== /* * Dummy oldlatches.h * * Copyright (C) 1996 Russell King */ #ifdef __need_oldlatches #error "Old latches not present in this (rpc) machine" #endif 1.1 or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/processor.h http://www.opencores.org/cvsweb.shtml/or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/processor.h?rev=1.1&content-type=text/x-cvsweb-markup Index: processor.h =================================================================== /* * linux/include/asm-arm/arch-rpc/processor.h * * Copyright (c) 1996 Russell King. * * Changelog: * 10-09-1996 RMK Created */ #ifndef __ASM_ARCH_PROCESSOR_H #define __ASM_ARCH_PROCESSOR_H /* * Bus types */ #define EISA_bus 0 #define EISA_bus__is_a_macro /* for versions in ksyms.c */ #define MCA_bus 0 #define MCA_bus__is_a_macro /* for versions in ksyms.c */ /* * User space: 3GB */ #define TASK_SIZE (0xc0000000UL) #define INIT_MMAP { &init_mm, 0xc0000000, 0xc2000000, PAGE_SHARED, VM_READ | VM_WRITE | VM_EXEC } #endif 1.1 or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/serial.h http://www.opencores.org/cvsweb.shtml/or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/serial.h?rev=1.1&content-type=text/x-cvsweb-markup Index: serial.h =================================================================== /* * linux/include/asm-arm/arch-rpc/serial.h * * Copyright (c) 1996 Russell King. * * Changelog: * 15-10-1996 RMK Created */ #ifndef __ASM_ARCH_SERIAL_H #define __ASM_ARCH_SERIAL_H /* * This assumes you have a 1.8432 MHz clock for your UART. * * It'd be nice if someone built a serial card with a 24.576 MHz * clock, since the 16550A is capable of handling a top speed of 1.5 * megabits/second; but this requires the faster clock. */ #define BASE_BAUD (1843200 / 16) #define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST) /* UART CLK PORT IRQ FLAGS */ #define RS_UARTS \ { 0, BASE_BAUD, 0x3F8, 10, STD_COM_FLAGS }, /* ttyS0 */ \ { 0, BASE_BAUD, 0x2F8, 10, STD_COM_FLAGS }, /* ttyS1 */ \ { 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS }, /* ttyS2 */ \ { 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS }, /* ttyS3 */ \ { 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS }, /* ttyS4 */ \ { 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS }, /* ttyS5 */ \ { 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS }, /* ttyS6 */ \ { 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS }, /* ttyS7 */ \ { 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS }, /* ttyS8 */ \ { 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS }, /* ttyS9 */ \ { 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS }, /* ttyS10 */ \ { 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS }, /* ttyS11 */ \ { 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS }, /* ttyS12 */ \ { 0, BASE_BAUD, 0 , 0, STD_COM_FLAGS }, /* ttyS13 */ #endif 1.1 or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/shmparam.h http://www.opencores.org/cvsweb.shtml/or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/shmparam.h?rev=1.1&content-type=text/x-cvsweb-markup Index: shmparam.h =================================================================== /* * linux/include/asm-arm/arch-rpc/shmparam.h * * Copyright (c) 1996 Russell King. */ 1.1 or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/system.h http://www.opencores.org/cvsweb.shtml/or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/system.h?rev=1.1&content-type=text/x-cvsweb-markup Index: system.h =================================================================== /* * linux/include/asm-arm/arch-rpc/system.h * * Copyright (c) 1996 Russell King */ #ifndef __ASM_ARCH_SYSTEM_H #define __ASM_ARCH_SYSTEM_H #include <asm/proc-fns.h> #define arch_hard_reset() { \ extern void ecard_reset (int card); \ outb (0, IOMD_ROMCR0); \ ecard_reset (-1); \ cli(); \ __asm__ __volatile__("msr spsr, r1;" \ "mcr p15, 0, %0, c1, c0, 0;" \ "movs pc, #0" \ : \ : "r" (processor.u.armv3v4.reset())); \ } #endif 1.1 or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/time.h http://www.opencores.org/cvsweb.shtml/or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/time.h?rev=1.1&content-type=text/x-cvsweb-markup Index: time.h =================================================================== /* * linux/include/asm-arm/arch-rpc/time.h * * Copyright (c) 1996 Russell King. * * Changelog: * 24-Sep-1996 RMK Created * 10-Oct-1996 RMK Brought up to date with arch-sa110eval * 04-Dec-1997 RMK Updated for new arch/arm/time.c */ extern __inline__ unsigned long gettimeoffset (void) { unsigned long offset = 0; unsigned int count1, count2, status1, status2; status1 = IOMD_IRQREQA; barrier (); outb(0, IOMD_T0LATCH); barrier (); count1 = inb(IOMD_T0CNTL) | (inb(IOMD_T0CNTH) << 8); barrier (); status2 = inb(IOMD_IRQREQA); barrier (); outb(0, IOMD_T0LATCH); barrier (); count2 = inb(IOMD_T0CNTL) | (inb(IOMD_T0CNTH) << 8); if (count2 < count1) { /* * This means that we haven't just had an interrupt * while reading into status2. */ if (status2 & (1 << 5)) offset = tick; count1 = count2; } else if (count2 > count1) { /* * We have just had another interrupt while reading * status2. */ offset += tick; count1 = count2; } count1 = LATCH - count1; /* * count1 = number of clock ticks since last interrupt */ offset += count1 * tick / LATCH; return offset; } /* * No need to reset the timer at every irq */ #define reset_timer() 1 /* * Updating of the RTC. We don't currently write the time to the * CMOS clock. */ #define update_rtc() /* * Set up timer interrupt, and return the current time in seconds. */ extern __inline__ unsigned long setup_timer (void) { extern int iic_control (unsigned char, int, char *, int); unsigned int year, mon, day, hour, min, sec; char buf[8]; outb(LATCH & 255, IOMD_T0LTCHL); outb(LATCH >> 8, IOMD_T0LTCHH); outb(0, IOMD_T0GO); iic_control (0xa0, 0xc0, buf, 1); year = buf[0]; if ((year += 1900) < 1970) year += 100; iic_control (0xa0, 2, buf, 5); mon = buf[4] & 0x1f; day = buf[3] & 0x3f; hour = buf[2]; min = buf[1]; sec = buf[0]; BCD_TO_BIN(mon); BCD_TO_BIN(day); BCD_TO_BIN(hour); BCD_TO_BIN(min); BCD_TO_BIN(sec); return mktime(year, mon, day, hour, min, sec); } 1.1 or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/uncompress.h http://www.opencores.org/cvsweb.shtml/or1k/rc203soc/sw/uClinux/include/asm-armnommu/arch-rpc/uncompress.h?rev=1.1&content-type=text/x-cvsweb-markup Index: uncompress.h =================================================================== /* * linux/include/asm-arm/arch-a5k/uncompress.h * * Copyright (C) 1996 Russell King */ #define VIDMEM ((char *)SCREEN_START) #include "../arch/arm/drivers/char/font.h" #include <asm/hardware.h> #include <asm/io.h> int video_num_columns, video_num_lines, video_size_row; int white, bytes_per_char_h; extern unsigned long con_charconvtable[256]; struct param_struct { unsigned long page_size; unsigned long nr_pages; unsigned long ramdisk_size; unsigned long mountrootrdonly; unsigned long rootdev; unsigned long video_num_cols; unsigned long video_num_rows; unsigned long video_x; unsigned long video_y; unsigned long memc_control_reg; unsigned char sounddefault; unsigned char adfsdrives; unsigned char bytes_per_char_h; unsigned char bytes_per_char_v; unsigned long unused[256/4-11]; }; static const unsigned long palette_4[16] = { 0x00000000, 0x000000cc, 0x0000cc00, /* Green */ 0x0000cccc, /* Yellow */ 0x00cc0000, /* Blue */ 0x00cc00cc, /* Magenta */ 0x00cccc00, /* Cyan */ 0x00cccccc, /* White */ 0x00000000, 0x000000ff, 0x0000ff00, 0x0000ffff, 0x00ff0000, 0x00ff00ff, 0x00ffff00, 0x00ffffff }; #define palette_setpixel(p) *(unsigned long *)(IO_START+0x00400000) = 0x10000000|((p) & 255) #define palette_write(v) *(unsigned long *)(IO_START+0x00400000) = 0x00000000|((v) & 0x00ffffff) static struct param_struct * const params = (struct param_struct *)Z_PARAMS_BASE; /* * This does not append a newline */ static void puts(const char *s) { extern void ll_write_char(char *, unsigned long); int x,y; unsigned char c; char *ptr; x = params->video_x; y = params->video_y; while ( ( c = *(unsigned char *)s++ ) != '\0' ) { if ( c == '\n' ) { x = 0; if ( ++y >= video_num_lines ) { y--; } } else { ptr = VIDMEM + ((y*video_num_columns*params->bytes_per_char_v+x)*bytes_per_char_h); ll_write_char(ptr, c|(white<<8)); if ( ++x >= video_num_columns ) { x = 0; if ( ++y >= video_num_lines ) { y--; } } } } params->video_x = x; params->video_y = y; } static void error(char *x); /* * Setup for decompression */ static void arch_decomp_setup(void) { int i; video_num_lines = params->video_num_rows; video_num_columns = params->video_num_cols; bytes_per_char_h = params->bytes_per_char_h; video_size_row = video_num_columns * bytes_per_char_h; if (bytes_per_char_h == 4) for (i = 0; i < 256; i++) con_charconvtable[i] = (i & 128 ? 1 << 0 : 0) | (i & 64 ? 1 << 4 : 0) | (i & 32 ? 1 << 8 : 0) | (i & 16 ? 1 << 12 : 0) | (i & 8 ? 1 << 16 : 0) | (i & 4 ? 1 << 20 : 0) | (i & 2 ? 1 << 24 : 0) | (i & 1 ? 1 << 28 : 0); else for (i = 0; i < 16; i++) con_charconvtable[i] = (i & 8 ? 1 << 0 : 0) | (i & 4 ? 1 << 8 : 0) | (i & 2 ? 1 << 16 : 0) | (i & 1 ? 1 << 24 : 0); palette_setpixel(0); if (bytes_per_char_h == 1) { palette_write (0); palette_write (0x00ffffff); for (i = 2; i < 256; i++) palette_write (0); white = 1; } else { for (i = 0; i < 256; i++) palette_write (i < 16 ? palette_4[i] : 0); white = 7; } if (params->nr_pages * params->page_size < 4096*1024) error("<4M of mem\n"); }

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.