Pages

Friday, March 30, 2007

MicroBlaze Development Kit

I have a new toy - MicroBlaze Development Kit from Xilinx! :)



The main feature for me here is the USB download feature as my laptop doesn't have a serial port as most of XESS boards require. Hopefully I can do all my hardware emulation research tests with this board now :)

The Key Features are:
* Device Supported: XC3S1600E FG320-4CS1
* Clocks: 50 MHz Oscillator (soldered) , 66.67MHz Oscillator (socketed)
* Memory: 512Mb (32Mx16) DDR SDRAM, 128Mb (32Mx8) Parallel Flash, 16Mb SPI Flash, & Xilinx Platform Flash
* Connectors and Interfaces: Two RS-232 Serial Ports, 1 10/100 RJ45 Ethernet Port, DB 15 VGA Display, LCD Graphic Display, SPI Port, 1 PS2 Port, 4 channel DAC and 2 channel DAC, General Purpose I/O: Buttons, Switches, LEDs, Rotary Encoder, and 43 Bit User Expansion (16 Diff-Pairs) Connector, and three 4-bit I/O Connectors and 14 Input only I/O, 50MHz and socketed 66.67 OSC, and 1 SMA input.
* Display: 16 x2 Character LCD, RGB VGA

Friday, March 2, 2007

Compiling uClinux OpenRISC port

While compiling uClinux today I succeeded with some source modifications.

ERROR:
/home/ant/project/or1k/uclinux/uClinux-2.0.x/include/asm/board.h:63: Error: junk at end of line, first unrecognized character is `/'
SOLUTION:
include/asm/board.h: only /* */ comments are allowed. // comments should be removed

ERROR:
head.S:231: Error: junk at end of line, first unrecognized character is `,'
SOLUTION:
arch/or32/kernel/head.S: remove last coma from the line 231: .section .romvec, "ax",

ERROR:
/home/ant/project/or1k/uclinux/uClinux-2.0.x/include/linux/skbuff.h:424: error: label at end of compound statement
SOLUTION:
in include/linux/skbuff.h, at the lines 423 and 410, add ; after head

ERROR:
sched.c:440: error: label at end of compound statement:
SOLUTION:
in kernel/sched.c, at line 439 add ; after case TASK_RUNNING:

ERROR:
tcp_input.c:2349: error: label at end of compound statement
SOLUTION
in net/ipv4/tcp_input.c, at line 2347 add ; after default:

ERROR:
udp.c:202: error: label at end of compound statement
SOLUTION:
in net/ipv4/udp.c, at line 201 add ; after next:

ERROR:
filemap.c:775: error: label at end of compound statement
SOLUTION:
in mmnommu/filemap.c, at line 773 add ; after case 0:

ERROR:
or32-uclinux-ld -T arch/or32/board/rom.ld arch/or32/kernel/head.o init/main.o init/version.o \
arch/or32/kernel/kernel.o arch/or32/mm/mm.o arch/or32/board/board.o kernel/kernel.o fs/fs.o ipc/ipc.o net/network.a mmnommu/mm.o \
fs/filesystems.a \
drivers/block/block.a drivers/char/char.a drivers/net/net.a \
/home/ant/project/or1k/uclinux/uClinux-2.0.x/lib/lib.a arch/or32
/lib/lib.a /opt/or32-uclinux/lib/gcc/or32-uclinux/3.4.4/libgcc.a -o linuxor32-uclinux-ld: error: no memory region specified for loadable section `.rodata.str1.1'
make: *** [linux] Error 1
SOLUTION:

in arch/or32/board/rom.ld add entry for .rodata.str1.1 and .rodata.cst4 similar to that for .rodata. as follows:

.rodata.str1.1 :
{
*(.rodata.str1.1)
__etext = . ;
} > flash

.rodata.cst4 :
{
*(.rodata.cst4)
__etext = . ;
} > flash

With these modifications the application compiled and linked successfully.

Thursday, March 1, 2007

Building with GNU toolchain

I was trying to build OpenRISC architectural simulator today. Configure task passed fine, but on the make stage I've got the following error:

configure.in:11: version mismatch. This is Automake 1.9.6,
configure.in:11: but the definition used by this AM_INIT_AUTOMAKE
configure.in:11: comes from Automake 1.9.5. You should recreate
configure.in:11: aclocal.m4 with aclocal and run automake again.
WARNING: `automake-1.9' is needed, and you do not seem to have it handy on your
system. You might have modified some files without having the
proper tools for further handling them. Check the `README' file,
it often tells you about the needed prerequirements for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing `automake-1.9' program.
make[3]: *** [Makefile.in] Error 1
make[3]: Leaving directory `/home/ant/project/or1k/or1ksim/cpu/or32'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/ant/project/or1k/or1ksim/cpu'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/ant/project/or1k/or1ksim'

After issuing aclocal command the build succeeded. WTF?
I'm not very familiar with these tools, so I googled for 'aclocal'. Here's what I found:

The aclocal program creates the file `aclocal.m4' by combining stock installed macros, user defined macros and the contents of `acinclude.m4' to define all of the macros required by `configure.in' in a single file. aclocal was created as a fix for some missing functionality in Autoconf.

It seems to me that autoconf should include aclocal functionality. I might be missing something here but shouldn't the tool be more intelligent?

Disqus for Code Impossible