Hi all,
I am again trying to run uClinux, I have got more external RAM
in the board.
I have got a own board design, closely to Atmel eb40a, the microcontroller
is a AT91FR40162s (2Mb internal flash connected to CS0) and 4Mb of external
RAM in two banks connected in CS1 and CS2, the clk are 50Mhz. I configure
the following memory map:
FLASH : 0x1000000 length: 0x100000
RAM1 : 0x2000000 length : 0x200000 (in a page of 4Mb)
RAM2 : 0x2400000 length : 0x200000 (in a page of 4Mb)
I run RedBoot without problems to boot the board.
RedBoot> +
RedBoot(tm) bootstrap and debug environment [ROM]
Non-certified release, version UNKNOWN - built 04:14:42, Feb 7 2007
Platform: Atmel AT91/EB40A (ARM7TDMI)
Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
Copyright (C) 2003, 2004, 2005, 2006 eCosCentric Limited
RAM: 0x00000000-0x00040000, [0x0000aac0-0x00040000] available
FLASH: 0x01000000 - 0x1200000, 32 blocks of 0x00010000 bytes each.
RedBoot>
In RedBoot I can access to the external RAM without problems in the range of
0x2200000 0x2600000 (4Mb) of a contiguously memory space (the
microcontroller mirrowed the first RAM1 0x2000000-0x2200000 to
0x2200000-0x2400000 addresses) and in the range 0x2400000-0x2600000 access
to the RAM2.
I compile uClinux-dist-20051110 with the following configurations:
ATMEL AT91
Linux kernel 2.4.x uClibc
System Type:
(S)DRAM base Address : 0x02200000
(S)DRAM Size: 0x0400000
FLASH base Address : 0x01000000
FLASH Size: 0x0200000
Kernel executes from RAM
CPU clock frequency 50000000
Serial Console YES
ATMEL CPU AT91x40
I changed the linux-2.4.x/arch/armnommu/Makefile in order to put the
TEXTADDR in the 0x02200000 address (RAM base address)
ifeq ($(CONFIG_ARCH_ATMEL),Y)
TEXTADDR = 0x2200000
MACHINE = atmel
endif
All the rest of parameters by default, I can load the image.bin in the flash
(with a JTAG cable) at the address 0x1010000 with a size of 0x19CDB7 bytes.
Then I start the board, boot RedBoot and I copy the image.bin located in
flash to RAM at 0x02200000 address.
RedBoot> help mcopy
Copy memory from one address to another
mcopy -s <location> -d <location> -l <length> [-1|-2|-4]
RedBoot> mcopy -s 0x01010000 -d 0x2200000 -l 0x19CDB7 -2
RedBoot>
At this point I place the image.bin in RAM memory at the address configured
in uClinux, then I can run uClinux with go command
RedBoot> go 0x02200000
But in the ARM ocuurs a Data Abort Exception.
¿Whats wrong? ¿ That other parameters I must change to run uClinux?
Thanks in Advance,
_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev