Hi Pablo,
I think you should first check that the TFT IP works. Connect
the MPLB port to the PLB bus in order to read the
framebuffer memory, which must be within the DDR space
memory. To program the TFT configuration registers connect
the SPLB port to the PLB bus, and in this way EDK will
compile the TFT library for peripheral testing.
Regards,
Inaki
-----Mensaje original-----
De: owner-microblaze-uclinux@xxxxxxxxxxxxxx en nombre de
pcolodron@xxxxxxxx
Enviado el: mié 18/03/2009 16:41
Para: microblaze-uclinux@xxxxxxxxxxxxxx
Asunto: Re: [microblaze-uclinux] VGA controller in Microblaze
Hi Inaki,
I've tried to dump the file to /dev/fb0 (with cat /bin/busybox
/dev/fb0) but I got the next message: '/dev/fb0: cannot create".
Unfortunately I couldn't test the TFT peripheral because the only
tests which are available in my project in EDK are for uartlite, gpio,
iic and sysace. Do you know where I could find one?
I will tell you the steps that I have followed to create my system
such that you may see if there is something wrong:
- I have created a project for my Spartan3 Starter kit using the
tool Base System Builder in EDK.
- Then I have followed the Petalinux tutorial to add fs-boot, etc.
Moreover, I've added one PS/2 peripheral and one TFT peripheral.
Here I have some doubts. In the TFT IP Core, there is a parameter
called 'Base Address of PLB Attached Video Memory'. I supose that the
framebuffer should be in the DDR memory, so in that parameter I wrote
an address which is inside the DDR. I don't know if this is the
appropriate way of setting up the framebuffer. Another thing is
that in my TFT IP Core, the parameter 'Select Controller
Register Access Interface' is selected and 'Select TFT
Interface' is unselected. It is connected to PLB bus using
a SPLB interface.
Moreover, I am not sure about which is the suitable way of configuring
my DDR. In this IP Core, PORT0 is configured as PLBV46, and this is
the only thing that I have configured. However, I don't know if some
other port must ve activated in mode VFBC (Virtual Frame Buffer
Controller).
-Once I created EDK project, I compiled the kernel with
'xilinxfb', as you had told me (with framebuffer support and
so on). Then I loaded the kernel into the board and I got
the following boot log:
## Booting image at 858c0000 ...
Image Name: PetaLinux Kernel 2.6
Image Type: Microblaze Linux Kernel Image (uncompressed)
Data Size: 2379812 Bytes = 2.3 MB
Load Address: 88000000
Entry Point: 88000000
Verifying Checksum ... OK
OK
Linux version 2.6.20-uc0 (root@xxxxxxxxxxxxxxxxxxxxx) (gcc
version 3.4.1 ( PetaL
inux 0.20 Build -rc1 050607 )) #47 Wed Mar 18 15:59:38 CET 2009
setup_cpuinfo: initialising
setup_cpuinfo: No PVR support in CPU. Using static compile-time info
set_cpuinfo_static: Using static CPU info.
setup_memory: max_mapnr: 0x8ffff
setup_memory: min_low_pfn: 0x88000
setup_memory: max_low_pfn: 0x8000
On node 0 totalpages: 32768
DMA zone: 256 pages used for memmap
DMA zone: 0 pages reserved
DMA zone: 32512 pages, LIFO batch:7
Normal zone: 0 pages used for memmap
Built 1 zonelists. Total pages: 32512
Kernel command line:
mtdparts=physmap-flash.0:256K(boot),256K(bootenv),256K(conf
ig),5M(image),2M(spare) macaddr=00:0a:35:00:22:01 console=fb0
console=ttyS0,1152
00
OPB INTC #0 at 0x81800000
PID hash table entries: 512 (order: 9, 2048 bytes)
Console: colour dummy device 80x25
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 127388k/131072k available
Calibrating delay loop... 1.40 BogoMIPS (lpj=7040)
Mount-cache hash table entries: 512
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
xgpio0 #0 at 0x81420000 mapped to 0x81420000 device: 10,185 not using IRQ
xgpio1 #1 at 0x81400000 mapped to 0x81400000 device: 10,186 not using IRQ
uartlite.0: ttyS0 at MMIO 0x84000000 (irq = 1) is a uartlite
RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
uclinux[mtd]: RAM probe address=0x8816ed8c size=0xe9000
Creating 1 MTD partitions on "RAM":
0x00000000-0x000e9000 : "ROMfs"
uclinux[mtd]: set ROMfs to be root filesystem index=0
i8042.c: i8042 controller self test timeout.
mice: PS/2 mouse device common for all mice
VFS: Mounted root (cramfs filesystem) readonly.
Freeing unused kernel memory: 88k freed
Mounting proc:
Mounting var:
Populating /var:
Running local start scripts.
Mounting /etc/config:
Populating /etc/config:
flatfsd: Nonexistent or bad flatfs (-48), creating new one...
flatfsd: Failed to write flatfs (-48): No such device
flatfsd: Created 3 configuration files (117 bytes)
Mounting sysfs:
Setting hostname:
uclinux login:
As you can see, there are no references to fb0 or any
framebuffer parameter and I think that those kind of
parameters should be mentioned, shouldn't they?
Thanks a lot for your advices, they are being very helpful.
Kind regars,
Pablo Colodron
Val Inaki escribió:
Hi Pablo,
this xilinx framebuffer driver is just for Linux kernel, U-boot
uses its own framebuffer driver. So, having the device
/dev/fb0, could you try to dump something (dummy file) to
/dev/fb0?
cat /bin/busybox > /dev/fb0
you should see something in the screen.
Have you tried the TFT peripheral test from EDK to see if the
TFT IP works?
Regards,
Inaki
-----Mensaje original-----
De: owner-microblaze-uclinux@xxxxxxxxxxxxxx en nombre de
pcolodron@xxxxxxxx
Enviado el: mié 18/03/2009 13:07
Para: microblaze-uclinux@xxxxxxxxxxxxxx
Asunto: Re: [microblaze-uclinux] VGA controller in Microblaze
Hi Inaki,
In order to set up the framebuffer for my Spartan3 board, I've
done what you told me. I added xilinxfb.c and
xilinxfb.h to the petalinux tree. I've also modified
the 'Kconfig' and 'Makefile' files which are in
.../drivers/video. Then, in 'menuconfig' I have selected
the framebuffer such that the compiler uses xilinxfb.c
as framebuffer.
I've compiled the kernel and everything seemed to be ok.
However, my uClinux system doesn't recognize the
framebuffer. If I execute 'fbset --show' it says that
there are no devices (although in folder /dev I can see
'fb0'). I have also tried to check if U-boot recognized
the device using the command 'coninfo', but the list of
available devices was empty.
I think I am missing some steps when trying to set up the
framebuffer. Do you know if U-boot needs an extra
configuration to add the framebuffer? I've been tried
to figure this out for many days but I couldn't do it.
Please if anybody has any hint it would be very appreciated.
Thank you very much.
Regards,
Pablo Colodron
Val Inaki escribió:
Hi,
you also need the headers file 'xilinxfb.h' and modify the
'Kconfig' and 'Makefile' files from the /drivers/video
folder. There is another issue with this driver because
you need to add the code for registering the device
with its resources, which are the address space for
accesing the SPLB registers.
The graphical libraries can use the framebuffer driver, so
they will use '/dev/fb0'.
Best regards,
Inaki
-----Mensaje original-----
De: owner-microblaze-uclinux@xxxxxxxxxxxxxx en nombre de
pcolodron@xxxxxxxx
Enviado el: mar 20/01/2009 10:31
Para: microblaze-uclinux@xxxxxxxxxxxxxx
Asunto: RE: [microblaze-uclinux] VGA controller in Microblaze
Hi Inaki,
It is nice to have your help, thanks a lot. As you have
guessed, I am thinking of using a LDC display and I
have configured the IP core to 25MHz.
So, according to your mail, the only thing that I should do is
to copy the driver 'xilinxfb.c' in the directory
.../linux-2.6.x/drivers/video and after that rebuild the
kernel. Is that right?
Once the kernel is built, one should start with the graphical
library but in this step, which is the video device
that you use (I mean the device in romfs/dev/)? fb0?
console?
Thank you very much for your help Inaki.
Kind regards,
Pablo
Val Inaki escribió:
Hi,
We are also using the Xilinx TFT IP with a Spartan3A FPGA and
Petalinux/MicroblazeMMU. In our Petalinux distribution there
was not any
TFT driver, so we had to add it manually in the kernel tree:
http://tomoyo.sourceforge.jp/cgi-bin/lxr/source/drivers/video/xilinxfb.c
You also need to activate the framebuffer support in order to
access de
video memory. After everything is working you can use any graphical
library, in our case we have started working with the supplied version
of microwindows in the Petalinux distribution.
Remember that the Xilinx TFT IP is for a hardcoded 640x480 resolution,
but clocking the IP to 25MHz, you can connect a LCD display
through the
VGA connector.
I hope this information would be helpful.
Regards,
Inaki
-----Mensaje original-----
De: owner-microblaze-uclinux@xxxxxxxxxxxxxx
[mailto:owner-microblaze-uclinux@xxxxxxxxxxxxxx] En nombre de
pcolodron@xxxxxxxx
Enviado el: lunes, 19 de enero de 2009 9:57
Para: microblaze-uclinux@xxxxxxxxxxxxxx
Asunto: Re: [microblaze-uclinux] VGA controller in Microblaze
Hi John,
Thanks a lot for your answer. I am using the XPS TFT ip core
(which is available in IP Catalog -> IO Modules, in
EDK 10.1).
I will take a look to the framebuffer drivers that you told
me. Anyway, I think I will have to activate the
'framebuffer support' in the Petalinux configuration,
is that right?
In addition to this, I will try to figure out which is the
most suitable graphics engine for my system because I
am using fbcon and I don't know if it is very
common in embedded systems.
I could find this framebuffer in the directory
/linux-2.6.x/drivers/video/console/fbcon.c. However, when I
create the petalinux kernel and I explore the
directory /romfs/dev/, it seems that the only
frammebuffers that I have are '@console,c,5,1' and
'@fb0,c,29,0' (is the fbcon framebuffer really
activated?). I have not tested it yet, but, before
doing this, it would be great to know if my kernel
is properly configured.
Thank you very much for your help John.
Kind regards
Hi Pablo,
On Fri, Jan 9, 2009 at 8:22 PM, <pcolodron@xxxxxxxx> wrote:
I am actually trying to work with the latest version of
Petalinux in my >Xilinx Spartan3 development kit. I
am quite unexperienced in this sense but I >have
already solved some problems concerning EDK and
building the Petalinux
kernel.
What I would like to do now is to develop a graphical user
interface in >Petalinux (to do this, I will use a
graphic library called MiniGUI). This >software is
basically a C-written program which shows the GUI
by means of the
framebuffer fbcon. However, I have some doubts about how
to do it.
My problems are related to the EDK project. I don't really
know if >Petalinux will work with any type of VGA
IP Core. I mean, will petalinux >detect that I
have a VGA IP core? That will be enough if I want
to use a LCD >or a monitor? Because of my lack of
knowledge in this sense I don't really get >to
understand how to do this.
Please if you know any place where some cores are
avaliable (or some >information about how to build
a VGA controller which works in Petalinux) it
>would be nice of you to tell me.
You will require a framebuffer device driver - they are
quite simple to write, >with many examples in
linux-2.6.x/drivers/video
Which VGA IP core are you using?
Regards,
John
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page :
http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive :
http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page :
http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive :
http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive :
http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive :
http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive :
http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/