From: Johannes Dickgreber <tanzy@gmx.de>
To: Kumba <kumba@gentoo.org>
Cc: Linux MIPS List <linux-mips@linux-mips.org>
Subject: Re: [PATCH/RFC]: SGI Octane (IP30) Patches, Part two, Octane core
Date: Mon, 04 Aug 2008 23:26:52 +0200 [thread overview]
Message-ID: <4897741C.1090300@gmx.de> (raw)
In-Reply-To: <48914C74.6090309@gentoo.org>
Kumba schrieb:
>
> The second part is the actual IP30 Patch that makes these beasts boot.
> Assuming you've already lit incense candles and sacrificed a PC to the
> MIPS Gods above.
>
> Thanks!,
>
>
> --Kumba
>
> diff -Naurp linux-2.6.26.orig/arch/mips/kernel/cevt-r4k.c linux-2.6.26/arch/mips/kernel/cevt-r4k.c
> --- linux-2.6.26.orig/arch/mips/kernel/cevt-r4k.c 2008-07-13 17:51:29.000000000 -0400
> +++ linux-2.6.26/arch/mips/kernel/cevt-r4k.c 2008-07-25 03:14:40.000000000 -0400
> @@ -251,7 +251,6 @@ int __cpuinit mips_clockevent_init(void)
> irq = MIPS_CPU_IRQ_BASE + cp0_compare_irq;
> if (get_c0_compare_int)
> irq = get_c0_compare_int();
> -
> cd = &per_cpu(mips_clockevent_device, cpu);
>
> cd->name = "MIPS";
I dont think this is needed
> diff -Naurp linux-2.6.26.orig/arch/mips/kernel/setup.c linux-2.6.26/arch/mips/kernel/setup.c
> --- linux-2.6.26.orig/arch/mips/kernel/setup.c 2008-07-13 17:51:29.000000000 -0400
> +++ linux-2.6.26/arch/mips/kernel/setup.c 2008-07-25 03:14:40.000000000 -0400
> @@ -481,6 +481,10 @@ static void __init arch_mem_init(char **
> printk("Determined physical RAM map:\n");
> print_memory_map();
>
> +#ifdef CONFIG_CMDLINE
> + if (strlen(CONFIG_CMDLINE))
> + strlcpy(arcs_cmdline, CONFIG_CMDLINE, sizeof(command_line));
> +#endif
> strlcpy(command_line, arcs_cmdline, sizeof(command_line));
> strlcpy(boot_command_line, command_line, COMMAND_LINE_SIZE);
>
> @@ -575,7 +579,6 @@ void __init setup_arch(char **cmdline_p)
> #endif
>
> arch_mem_init(cmdline_p);
> -
> resource_init();
> plat_smp_setup();
> }
arcs_cmdline is initialisiert with CONFIG_CMDLINE earlier in this file,
so i think this is not needed.
> diff -Naurp linux-2.6.26.orig/arch/mips/mm/dma-default.c linux-2.6.26/arch/mips/mm/dma-default.c
> --- linux-2.6.26.orig/arch/mips/mm/dma-default.c 2008-07-13 17:51:29.000000000 -0400
> +++ linux-2.6.26/arch/mips/mm/dma-default.c 2008-07-25 03:14:40.000000000 -0400
> @@ -209,7 +209,7 @@ dma_addr_t dma_map_page(struct device *d
> dma_cache_wback_inv(addr, size);
> }
>
> - return plat_map_dma_mem_page(dev, page) + offset;
> + return plat_map_dma_mem_page(dev, page, size) + offset;
> }
>
> EXPORT_SYMBOL(dma_map_page);
see other mail
> diff -Naurp linux-2.6.26.orig/drivers/usb/host/pci-quirks.c linux-2.6.26/drivers/usb/host/pci-quirks.c
> --- linux-2.6.26.orig/drivers/usb/host/pci-quirks.c 2008-07-13 17:51:29.000000000 -0400
> +++ linux-2.6.26/drivers/usb/host/pci-quirks.c 2008-07-25 03:14:40.000000000 -0400
> @@ -147,6 +147,9 @@ static void __devinit quirk_usb_handoff_
> unsigned long base = 0;
> int i;
>
> + if (!pci_enable_device(pdev))
> + return;
> +
> if (!pio_enabled(pdev))
> return;
>
I am not using this, but i dont have any usb stuff at my Octane
> diff -Naurp linux-2.6.26.orig/include/asm-mips/addrspace.h linux-2.6.26/include/asm-mips/addrspace.h
> --- linux-2.6.26.orig/include/asm-mips/addrspace.h 2008-07-13 17:51:29.000000000 -0400
> +++ linux-2.6.26/include/asm-mips/addrspace.h 2008-07-25 03:14:40.000000000 -0400
> @@ -54,6 +54,14 @@
> #define XPHYSADDR(a) ((_ACAST64_(a)) & \
> _CONST64_(0x000000ffffffffff))
>
> +#ifndef __ASSEMBLY__
> +#ifdef CONFIG_64BIT
> +unsigned long kernel_physaddr(unsigned long);
> +#else
> +#define kernel_physaddr CPHYSADDR
> +#endif
> +#endif
> +
> #ifdef CONFIG_64BIT
>
> /*
is this used anyware, i dont have it in my kernel.
> diff -Naurp linux-2.6.26.orig/include/asm-mips/mach-ip30/dma-coherence.h linux-2.6.26/include/asm-mips/mach-ip30/dma-coherence.h
> --- linux-2.6.26.orig/include/asm-mips/mach-ip30/dma-coherence.h 1969-12-31 19:00:00.000000000 -0500
> +++ linux-2.6.26/include/asm-mips/mach-ip30/dma-coherence.h 2008-07-25 03:14:40.000000000 -0400
> @@ -0,0 +1,90 @@
> +/*
> + * This file is subject to the terms and conditions of the GNU General Public
> + * License. See the file "COPYING" in the main directory of this archive
> + * for more details.
> + *
> + * Copyright (C) 2006 Ralf Baechle <ralf@linux-mips.org>
> + * 2007 Joshua Kinard <kumba@gentoo.org>
> + *
> + * derived from include/asm-mips/mach-ip27/dma-coherence.h
> + * and based on code found in the old dma-ip30.c, which is
> + * Copyright (C) 2004-2007 Stanislaw Skowronek <skylark@linux-mips.org>
> + */
> +#ifndef __ASM_MACH_IP30_DMA_COHERENCE_H
> +#define __ASM_MACH_IP30_DMA_COHERENCE_H
> +
> +#include <asm/mach-ip30/addrs.h>
> +#include <asm/pci/bridge.h>
> +
> +#include <linux/dma-mapping.h>
> +
> +static inline dma_addr_t pdev_to_baddr(struct pci_dev *dev, dma_addr_t addr,
> + int virt, int size)
> +{
> + if(dev->dma_mask == DMA_64BIT_MASK) {
> + if(virt)
> + return (BRIDGE_CONTROLLER(dev->bus)->baddr + addr) |
> + PCI64_ATTR_VIRTUAL;
> +
> + if(size >= 0x200)
> + return (BRIDGE_CONTROLLER(dev->bus)->baddr + addr) |
> + PCI64_ATTR_PREF;
> +
> + if(addr >= 0x20000000 || addr < 0xA0000000)
> + return (PCI32_DIRECT_BASE + addr - 0x20000000);
> +
> + return (BRIDGE_CONTROLLER(dev->bus)->baddr + addr);
> + }
> +
> + if(addr < 0x20000000 || addr >= 0xA0000000) {
> + printk(KERN_ERR
> + "BRIDGE: Mapping can't be realized in direct DMA.\n");
> + return -1;
> + }
> +
> + return (PCI32_DIRECT_BASE + addr - 0x20000000);
> +}
> +
> +static inline dma_addr_t dev_to_baddr(struct device *dev, dma_addr_t addr,
> + int virt, int size)
> +{
> + if(dev)
> + return pdev_to_baddr(to_pci_dev(dev), addr, virt, size);
> + return addr;
> +}
> +
> +struct device;
> +
> +static inline dma_addr_t plat_map_dma_mem(struct device *dev, void *addr,
> + size_t size)
> +{
> + dma_addr_t pa = dev_to_baddr(dev, virt_to_phys(addr), 1, size);
> +
> + return pa;
> +}
> +
> +static dma_addr_t plat_map_dma_mem_page(struct device *dev, struct page *page,
> + size_t size)
> +{
> + dma_addr_t pa = dev_to_baddr(dev, page_to_phys(page), 0, size);
> +
> + return pa;
> +}
> +
> +static unsigned long plat_dma_addr_to_phys(dma_addr_t dma_addr)
> +{
> + return dma_addr & (0xffUL << 56);
> +}
> +
> +static inline void plat_unmap_dma_mem(dma_addr_t dma_addr)
> +{
> + /* Empty */
> +}
> +
> +static inline int plat_device_is_coherent(struct device *dev)
> +{
> + return 1; /* IP30 non-cohernet mode is unsupported
> + * (does it even have one?) */
> +}
> +
> +#endif /* __ASM_MACH_IP30_DMA_COHERENCE_H */
see other mail for the size in plat_map_dma_mem_page wich IMHO schould be PAGE_SIZE
bye tanzy
prev parent reply other threads:[~2008-08-04 21:27 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-31 5:24 [PATCH/RFC]: SGI Octane (IP30) Patches, Part two, Octane core Kumba
2008-08-04 20:29 ` Johannes Dickgreber
2008-08-04 20:54 ` Johannes Dickgreber
2008-08-04 21:26 ` Johannes Dickgreber [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4897741C.1090300@gmx.de \
--to=tanzy@gmx.de \
--cc=kumba@gentoo.org \
--cc=linux-mips@linux-mips.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.