All of lore.kernel.org
 help / color / mirror / Atom feed
From: plagnioj@jcrosoft.com (Jean-Christophe PLAGNIOL-VILLARD)
To: linux-arm-kernel@lists.infradead.org
Subject: Atmel at91x40 ("EB01" eval board) resurected
Date: Sat, 7 Jan 2012 13:07:34 +0100	[thread overview]
Message-ID: <20120107120734.GF2854@game.jcrosoft.org> (raw)
In-Reply-To: <4EFD107A.4010902@snapgear.com>

On 11:14 Fri 30 Dec     , Greg Ungerer wrote:
> Hi Phil,
> 
> On 23/12/11 13:18, Phil Budne wrote:
> >I'm new here, so please excuse any protocol violations!
> >
> >I decided to see if I could bring up current kernel sources under
> >skyeye  (at91x40 simulation).
> >I've also been working on a port to the more modern AT91SAM7SE using QEMU.
> >
> >Attached are:
> >
> >diffs from sources from git://github.com/at91linux/linux-at91.git
> >  master branch (current as of 12/21/11)
> >  many of the changes are in generic arch/arm files.
> >
> >Tested on Simulated at91x40xxx "EB01" board
> >kernel built using attached defconfig file.
> 
> There is an at91x40 defconfig in arch/arm/configs/at91x40_defconfig.
> Did you start with that?
> 
> I notice that the processor ID you have in your defconfig is quite
> different to the one in there...
> 
> 
> >4M of RAM at 0x1000000
> >XIP kernel loaded in 4M (of "flash") at 0x1400000
> >root filesystem is a compiled in initramfs
> >   too much pain to build ROMfs and map;
> >    (drivers/mtd/maps/uclinux.c requires rootfs appended after kernel
> >     "uClinux" 11/11/11 dist uclinux.c allows rootfs image at fixed location)
> >
> >
> >new file attached: mach/arm/mach-at91/at91x40_devices.c
> >
> >Runs on locally modified skyeye
> >  based on skyeye-v1.2_Rel.tar (had trouble building latest release)
> >  adds interrupt driven UART output
> >  tweaked for programmed I/O UART input
> >  fix for loading XIP data section (load at physical, not virtual address)
> >
> >Problems:
> >  repeated "free" commands show loss of 12K each time (see atached typescript)
> >  same sh binary (from skyeye test suite)
> >    does not exhibit this on 2.6 and 2.4 kernels (from the skyeye test suite).
> >  breakpointing sys_munmap shows len==0 (could it be an ABI issue?)
> 
> Some comments on the changes below. Ultimately though you need to break this
> single diff up into well defined logical changes. In other words make a patch
> series out of it.
> 
> 
> >diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h
> >index a8997d7..fcb5757 100644
> >--- a/arch/arm/include/asm/memory.h
> >+++ b/arch/arm/include/asm/memory.h
> >@@ -116,6 +116,8 @@
> > #define MODULES_END		(END_MEM)
> > #define MODULES_VADDR		(PHYS_OFFSET)
> >
> >+#define XIP_VIRT_ADDR(physaddr)  (physaddr)
> >+
> > #endif /* !CONFIG_MMU */
> >
> > /*
> >diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
> >index 3448a3f..a63102b 100644
> >--- a/arch/arm/kernel/setup.c
> >+++ b/arch/arm/kernel/setup.c
> >@@ -60,8 +60,12 @@
> > #include "tcm.h"
> >
> > #ifndef MEM_SIZE
> >+#ifdef CONFIG_DRAM_SIZE
> >+#define MEM_SIZE	CONFIG_DRAM_SIZE
> >+#else
> > #define MEM_SIZE	(16*1024*1024)
> > #endif
> >+#endif
> >
> > #if defined(CONFIG_FPE_NWFPE) || defined(CONFIG_FPE_FASTFPE)
> > char fpe_type[8];
> >diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
> >index 20b3041..26c7411 100644
> >--- a/arch/arm/kernel/vmlinux.lds.S
> >+++ b/arch/arm/kernel/vmlinux.lds.S
> >@@ -288,6 +288,7 @@ SECTIONS
> > 	NOTES
> >
> > 	BSS_SECTION(0, 0, 0)
> >+	_ebss = .;			/* uClinux MTD */
> 
> You don't need this if you are not using the MTD/uclinux.o driver.
> And your defconfig doesn't have this enabled.
> 
> 
> > 	_end = .;
> >
> > 	STABS_DEBUG
> >diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
> >index 242174f..babb6c6 100644
> >--- a/arch/arm/mach-at91/Makefile
> >+++ b/arch/arm/mach-at91/Makefile
> >@@ -19,7 +19,7 @@ obj-$(CONFIG_ARCH_AT91SAM9RL)	+= at91sam9rl.o at91sam926x_time.o at91sam9rl_devi
> > obj-$(CONFIG_ARCH_AT91SAM9G20)	+= at91sam9260.o at91sam926x_time.o at91sam9260_devices.o sam9_smc.o at91sam9_alt_reset.o
> > obj-$(CONFIG_ARCH_AT91SAM9G45)	+= at91sam9g45.o at91sam926x_time.o at91sam9g45_devices.o sam9_smc.o
> > obj-$(CONFIG_ARCH_AT91CAP9)	+= at91cap9.o at91sam926x_time.o at91cap9_devices.o sam9_smc.o
> >-obj-$(CONFIG_ARCH_AT91X40)	+= at91x40.o at91x40_time.o
> >+obj-$(CONFIG_ARCH_AT91X40)	+= at91x40.o at91x40_time.o at91x40_devices.o
> >
> > # AT91RM9200 board-specific support
> > obj-$(CONFIG_MACH_ONEARM)	+= board-1arm.o
> >diff --git a/arch/arm/mach-at91/at91x40.c b/arch/arm/mach-at91/at91x40.c
> >index 56ba3bd..4d5a475 100644
> >--- a/arch/arm/mach-at91/at91x40.c
> >+++ b/arch/arm/mach-at91/at91x40.c
> >@@ -73,6 +73,6 @@ void __init at91x40_init_interrupts(unsigned int priority[NR_AIC_IRQS])
> > 	if (!priority)
> > 		priority = at91x40_default_irq_priority;
> >
> >-	at91_aic_init(priority);
> >+	at91_init_interrupts(priority);
> > }
> >
> >diff --git a/arch/arm/mach-at91/board-eb01.c b/arch/arm/mach-at91/board-eb01.c
> >index d2023f2..902ade9 100644
> >--- a/arch/arm/mach-at91/board-eb01.c
> >+++ b/arch/arm/mach-at91/board-eb01.c
> >@@ -38,6 +38,21 @@ static void __init at91eb01_init_irq(void)
> > static void __init at91eb01_init_early(void)
> > {
> > 	at91x40_initialize(40000000);
> >+
> >+	/* USART0 ttyS0. (Rx & Tx only) */
> >+	at91_register_uart(AT91X40_ID_USART0, 0, 0);
> >+
> >+	/* USART1 ttyS1. (Rx & Tx only) */
> >+	at91_register_uart(AT91X40_ID_USART1, 1, 0);
> >+
> >+	/* set serial console to ttyS0 (USART0) */
> >+	at91_set_serial_console(0);
> >+}
> >+
> >+static void __init at91eb01_init_machine(void)
> >+{
> >+	/* Serial */
> >+	at91_add_device_serial();
> > }
> >
> > MACHINE_START(AT91EB01, "Atmel AT91 EB01")
> >@@ -45,5 +60,5 @@ MACHINE_START(AT91EB01, "Atmel AT91 EB01")
> > 	.timer		= &at91x40_timer,
> > 	.init_early	= at91eb01_init_early,
> > 	.init_irq	= at91eb01_init_irq,
> >+	.init_machine	= at91eb01_init_machine,
> > MACHINE_END
> >-
> >diff --git a/arch/arm/mach-at91/include/mach/at91x40.h b/arch/arm/mach-at91/include/mach/at91x40.h
> >index a152ff8..8d3c57c 100644
> >--- a/arch/arm/mach-at91/include/mach/at91x40.h
> >+++ b/arch/arm/mach-at91/include/mach/at91x40.h
> >@@ -34,8 +34,8 @@
> >
> > #define AT91_EBI	(0xffe00000 - AT91_BASE_SYS)	/* External Bus Interface */
> > #define AT91_SF		(0xfff00000 - AT91_BASE_SYS)	/* Special Function */
> >-#define AT91_USART1	(0xfffcc000 - AT91_BASE_SYS)	/* USART 1 */
> >-#define AT91_USART0	(0xfffd0000 - AT91_BASE_SYS)	/* USART 0 */
> >+#define AT91_USART1	0xfffcc000			/* USART 1 */
> >+#define AT91_USART0	0xfffd0000			/* USART 0 */
> 
> You probably want to leave these as they were. Modify your resource defines
> in at91x40_devices.c and add AT91_BASE_SYS to the AT91_USARTx values. That
> is more consistent with all other users of these defines.
drop AT91_BASE_SYS

I'm dropping it an AT91

don't use at91_sys_read/write too

Best Regards,
J.

  reply	other threads:[~2012-01-07 12:07 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-23  3:18 Atmel at91x40 ("EB01" eval board) resurected Phil Budne
2011-12-30  1:14 ` Greg Ungerer
2012-01-07 12:07   ` Jean-Christophe PLAGNIOL-VILLARD [this message]
2012-03-17 15:43 ` Thomas Petazzoni
2012-03-19  5:01   ` Greg Ungerer

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=20120107120734.GF2854@game.jcrosoft.org \
    --to=plagnioj@jcrosoft.com \
    --cc=linux-arm-kernel@lists.infradead.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.