[PATCH 1/2] Add Altera Nios2 arch support
Franck JULLIEN
franck.jullien at gmail.com
Thu Mar 17 12:50:09 EDT 2011
Hi Sascha,
2011/3/16 Sascha Hauer <s.hauer at pengutronix.de>
> Hi Julien,
>
>
Well....it's Franck ;) I know that's a bit confusing......
> The patch looks mostly ok. Only a few comments inline and some coding
> style nitpicks:
>
> - several trailing whitespaces
> - return is not a function (should be return 0 instead of return (0)
> - there should be no braces between a function and its arguments
>
> I think the included checkpatch script should catch most of them.
>
>
> > +
> > diff --git a/nios2/configs/generic_defconfig
> b/nios2/configs/generic_defconfig
> > new file mode 100644
> > index 0000000..76b69da
> > --- /dev/null
> > +++ b/nios2/configs/generic_defconfig
>
> Please generate the config with make savedefconfig
>
> > diff --git a/nios2/include/asm/barebox.h b/nios2/include/asm/barebox.h
> > new file mode 100644
> > index 0000000..2fcf31c
> > --- /dev/null
> > +++ b/nios2/include/asm/barebox.h
> > @@ -0,0 +1,47 @@
> > +/*
> > + * barebox - barebox.h Structure declarations for board specific data
> > + *
> > + * Copyright (c) 2005 blackfin.uclinux.org
> > + *
> > + * (C) Copyright 2000-2004
> > + * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
> > + *
> > + * See file CREDITS for list of people who contributed to this
> > + * project.
> > + *
> > + * 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.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> > + * GNU General Public License for more details.
> > + *
> > + * You should have received a copy of the GNU General Public License
> > + * along with this program; if not, write to the Free Software
> > + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
> > + * MA 02111-1307 USA
> > + */
> > +
> > +#ifndef _BAREBOX_H_
> > +#define _BAREBOX_H_ 1
> > +
> > +typedef struct bd_info {
> > + int bi_baudrate; /* serial console baudrate */
> > + unsigned long bi_ip_addr; /* IP Address */
> > + unsigned char bi_enetaddr[6]; /* Ethernet adress */
> > + unsigned long bi_arch_number; /* unique id for this board */
> > + unsigned long bi_boot_params; /* where this board expects params
> */
> > + unsigned long bi_memstart; /* start of DRAM memory */
> > + unsigned long bi_memsize; /* size of DRAM memory in bytes */
> > + unsigned long bi_flashstart; /* start of FLASH memory */
> > + unsigned long bi_flashsize; /* size of FLASH memory */
> > + unsigned long bi_flashoffset; /* reserved area for startup
> monitor */
> > +} bd_t;
>
> This isn't used anywhere in this patch. Is it needed for passing data to
> Linux? If yes, ok, otherwise please remove it.
>
This file is included bu include/common.h
Should I provide an empty file ?
>
> > diff --git a/nios2/include/asm/io.h b/nios2/include/asm/io.h
> > new file mode 100644
> > index 0000000..121405c
> > --- /dev/null
> > +++ b/nios2/include/asm/io.h
> > @@ -0,0 +1,130 @@
> > +/*
> > + * (C) Copyright 2004, Psyent Corporation <www.psyent.com>
> > + * Scott McNutt <smcnutt at psyent.com>
> > + *
> > + * See file CREDITS for list of people who contributed to this
> > + * project.
> > + *
> > + * 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.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> > + * GNU General Public License for more details.
> > + *
> > + * You should have received a copy of the GNU General Public License
> > + * along with this program; if not, write to the Free Software
> > + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
> > + * MA 02111-1307 USA
> > + */
> > +
> > +#ifndef __ASM_NIOS2_IO_H_
> > +#define __ASM_NIOS2_IO_H_
> > +
> > +static inline void sync(void)
> > +{
> > + __asm__ __volatile__ ("sync" : : : "memory");
> > +}
> > +
> > +/*
> > + * Given a physical address and a length, return a virtual address
> > + * that can be used to access the memory range with the caching
> > + * properties specified by "flags".
> > + */
> > +#define MAP_NOCACHE (0)
> > +#define MAP_WRCOMBINE (0)
> > +#define MAP_WRBACK (0)
> > +#define MAP_WRTHROUGH (0)
> > +
> > +static inline void *
> > +map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags)
> > +{
> > + return (void *)paddr;
> > +}
> > +
> > +/*
> > + * Take down a mapping set up by map_physmem().
> > + */
> > +static inline void unmap_physmem(void *vaddr, unsigned long flags)
> > +{
> > +
> > +}
> > +
> > +static inline phys_addr_t virt_to_phys(void * vaddr)
> > +{
> > + return (phys_addr_t)(vaddr);
> > +}
> > +
> > +extern unsigned char inb (unsigned char *port);
> > +extern unsigned short inw (unsigned short *port);
> > +extern unsigned inl (unsigned port);
> > +
> > +#define __raw_writeb(v,a) (*(volatile unsigned char *)(a) = (v))
> > +#define __raw_writew(v,a) (*(volatile unsigned short *)(a) = (v))
> > +#define __raw_writel(v,a) (*(volatile unsigned int *)(a) = (v))
> > +
> > +#define __raw_readb(a) (*(volatile unsigned char *)(a))
> > +#define __raw_readw(a) (*(volatile unsigned short *)(a))
> > +#define __raw_readl(a) (*(volatile unsigned int *)(a))
> > +
> > +#define readb(addr)\
> > + ({unsigned char val;\
> > + asm volatile( "ldbio %0, 0(%1)" :"=r"(val) : "r" (addr)); val;})
> > +#define readw(addr)\
> > + ({unsigned short val;\
> > + asm volatile( "ldhio %0, 0(%1)" :"=r"(val) : "r" (addr)); val;})
> > +#define readl(addr)\
> > + ({unsigned long val;\
> > + asm volatile( "ldwio %0, 0(%1)" :"=r"(val) : "r" (addr)); val;})
> > +
> > +#define writeb(val,addr)\
> > + asm volatile ("stbio %0, 0(%1)" : : "r" (val), "r" (addr))
> > +#define writew(val,addr)\
> > + asm volatile ("sthio %0, 0(%1)" : : "r" (val), "r" (addr))
> > +#define writel(val,addr)\
> > + asm volatile ("stwio %0, 0(%1)" : : "r" (val), "r" (addr))
> > +
> > +#define inb(addr) readb(addr)
> > +#define inw(addr) readw(addr)
> > +#define inl(addr) readl(addr)
> > +#define outb(val, addr) writeb(val,addr)
> > +#define outw(val, addr) writew(val,addr)
> > +#define outl(val, addr) writel(val,addr)
>
> We won't need this in barebox environment. We should just stick to
> read*/write*
>
done.
>
> > diff --git a/nios2/include/asm/nios2-io.h b/nios2/include/asm/nios2-io.h
> > new file mode 100644
> > index 0000000..c20885b
> > --- /dev/null
> > +++ b/nios2/include/asm/nios2-io.h
> > @@ -0,0 +1,182 @@
> > +/*
> > + * (C) Copyright 2004, Psyent Corporation <www.psyent.com>
> > + * Scott McNutt <smcnutt at psyent.com>
> > + *
> > + * See file CREDITS for list of people who contributed to this
> > + * project.
> > + *
> > + * 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.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> > + * GNU General Public License for more details.
> > + *
> > + * You should have received a copy of the GNU General Public License
> > + * along with this program; if not, write to the Free Software
> > + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
> > + * MA 02111-1307 USA
> > + */
> > +
> >
> +/*************************************************************************
> > + * Altera Nios2 Standard Peripherals
> > +
> ************************************************************************/
> > +
> > +#ifndef __NIOS2IO_H__
> > +#define __NIOS2IO_H__
> > +
> >
> +/*------------------------------------------------------------------------
> > + * UART (http://www.altera.com/literature/ds/ds_nios_uart.pdf)
> > +
> *----------------------------------------------------------------------*/
> > +typedef volatile struct nios_uart_t {
> > + unsigned rxdata; /* Rx data reg */
> > + unsigned txdata; /* Tx data reg */
> > + unsigned status; /* Status reg */
> > + unsigned control; /* Control reg */
> > + unsigned divisor; /* Baud rate divisor reg */
> > + unsigned endofpacket; /* End-of-packet reg */
> > +}nios_uart_t;
>
> Please do not typedef struct types. Also, the volatile is unnecessary.
>
>
done.
> --
> Pengutronix e.K. | |
> Industrial Linux Solutions | http://www.pengutronix.de/ |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
> Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
>
Franck.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/barebox/attachments/20110317/8426e5b9/attachment.html>
More information about the barebox
mailing list