Graeme Smecher | 17 Apr 00:10

[microblaze-linux] eglibc / nptl-based MicroBlaze toolchain

Hi all,

For some time, I've been butting heads with Microblaze's 
linuxthreads-based toolchain. A nptl-based libc would be an exciting 
development. For me, the chief benefit is futex-based semaphores, which 
allows sem_init with pshared=1 (and makes it go fast too!)

So, I'm really excited to see Michal's message to lkml about a month ago:

http://lkml.indiana.edu/hypermail/linux/kernel/1203.1/04188.html

First off: congratulations. Linux on MicroBlaze has come a tremendous 
distance in the past few years, and this is one of the few remaining 
things on my wish list.

Do you have any hints about when and how we'll see the next toolchain 
upgrade?

best,
Graeme
_______________________________________________
microblaze-linux mailing list
microblaze-linux@...
https://lists.eait.uq.edu.au/mailman/listinfo/microblaze-linux

Graeme Smecher | 4 Apr 01:52

[microblaze-linux] [PATCH] Fix device name assignment for SystemACE (from "xs`" to "xsa").

This fixes a bug introduced in 5d10302f46d, where device trees that don't
provide the "port-number" attribute are mistakenly assigned the device "xs`".
The error check that's supposed to assign a default letter can't succeed,
since it tests an unsigned type against a negative return code.

Signed-off-by: Graeme Smecher <gsmecher@...>
---
 drivers/block/xsysace.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/drivers/block/xsysace.c b/drivers/block/xsysace.c
index 307e098..ab30495 100644
--- a/drivers/block/xsysace.c
+++ b/drivers/block/xsysace.c
@@ -1166,8 +1166,7 @@ static int __devinit ace_probe(struct platform_device *dev)
 	dev_dbg(&dev->dev, "ace_probe(%p)\n", dev);

 	/* device id and bus width */
-	of_property_read_u32(dev->dev.of_node, "port-number", &id);
-	if (id < 0)
+	if(of_property_read_u32(dev->dev.of_node, "port-number", &id))
 		id = 0;
 	if (of_find_property(dev->dev.of_node, "8-bit", NULL))
 		bus_width = ACE_BUS_WIDTH_8;
--

-- 
1.7.9.1

_______________________________________________
microblaze-linux mailing list
microblaze-linux@...
(Continue reading)

Graeme Smecher | 8 Mar 00:56

[microblaze-linux] Conflict between xsysace driver and JTAG access?

Hi all,

I'm using Linux 2.6.38 on a ML40x-like platform. We're booting off the 
SystemACE, with a FAT partition for bitstreams and an EXT2 partition for 
the filesystem. All very standard stuff.

We're also using the SystemACE's JTAG port (TSTJTAG) to perform active 
readback and verification on the FPGA's bitstream.

This works perfectly while the CF card is inactive (e.g. with the kernel 
running either from a RAMdisk, or once everything's cached in RAM.) 
However, as soon as bitstream readback and CF accesses overlap, the 
kernel and/or readback fail in one of several ways:

     * data read from the CompactFlash is corrupt (and since it gets 
cached in the kernel, Linux sees a consistently corrupt file until the 
VM is flushed via /proc/sys/vm/drop_caches), and/or
     * the readback returns bogus data, and/or
     * the FPGA freaks out and enters a high-impedance state.

It seems like the JTAG and CF portions of the system are wrestling over 
the SystemACE. My questions are:

     * Has anyone else experienced a conflict between JTAG and CF ports 
on the SysACE?
     * Are there any known problems/hangups with the xsysace driver I 
should start with?

thanks,
Graeme
(Continue reading)

Oliver Punk | 1 Mar 19:38
Picon
Favicon

[microblaze-linux] Access physical addresses from Linux

Hello

I probably have a very trivial problem:

I have a custom core which has three registers. In the first register I
put a physical memory address, in the second I put a count. The I put a
flag in the third, and the core writes some stuff on the address from reg
1. Standalone, It works perfect.

Now I want to access the core by Linux about a kernel module. I call this
module by an application and give the count and an address, which I have
"calloct" in user space. Unfortunately the adress (virtual ?) dosnt mach
with the physical address. __pa doesnt work.

Is there a conversion as a function? Or did I think a huge mistake?
Probably I need to studying intensively with the memory handling. But
eventually someone has a quick answer or a good link.

Thanks a lot.

Oli

_______________________________________________
microblaze-linux mailing list
microblaze-linux@...
https://lists.eait.uq.edu.au/mailman/listinfo/microblaze-linux

John Williams | 24 Feb 01:04
Picon
Picon
Favicon

[microblaze-linux] 2nd Embed with Linux Workshop - submissions closing soon

CALL FOR PAPERS

The 2nd Embed With Linux (EWiLi) Workshop
Submission deadline: 4 March  2012
7 June 2012, Cité de la voile, Lorient, France

http://www.sigops-france.fr/EWiLi

Workshop news:
-          10 days left for submission.
-          Very attractive registration costs (approximately ~50€ for
authors) / free for PhD students
-          A showroom session for Industrial Exhibition and posters
will also take place during the workshop (the web site will soon be
updated for industrial exhibition registration)

Workshop Presentation
During the few last years, the Linux operating system has
progressively positioned as a strong alternative to proprietary and/or
commercial solutions in embedded systems, whether it is deeply
embedded or not, and this for many application domains, such as
multimedia, telephony, transports, automotive …

The purpose of this workshop is to present research projects,
experimentations, significant and original realizations that lie upon
the implementation of an embedded Linux operating system both in
academic and industrial worlds. The workshop objective is also to be a
meeting place for industrial and academic actors.

Expected contributions include but are not limited to the following topics:
(Continue reading)

danborkmann | 18 Jan 14:25
Gravatar

[microblaze-linux] [PATCH] microblaze: generic atomic64 support

This tiny patch adds generic atomic64 support for the Microblaze  
architecture. The patch
is against the latest linux-2.6-microblaze tree. It also fixes the  
kernel build for microblaze:

   CC      kernel/trace/trace_clock.o
kernel/trace/trace_clock.c:117: error: expected '=', ',', ';', 'asm'  
or '__attribute__' before 'trace_counter'
kernel/trace/trace_clock.c: In function 'trace_clock_counter':
kernel/trace/trace_clock.c:126: error: implicit declaration of  
function 'atomic64_add_return'
kernel/trace/trace_clock.c:126: error: 'trace_counter' undeclared  
(first use in this function)
kernel/trace/trace_clock.c:126: error: (Each undeclared identifier is  
reported only once
kernel/trace/trace_clock.c:126: error: for each function it appears in.)
make[2]: *** [kernel/trace/trace_clock.o] Error 1
make[1]: *** [kernel/trace] Error 2
make: *** [kernel] Error 2

Signed-off-by: Ariane Keller <ariane.keller@...>
Signed-off-by: Daniel Borkmann <daniel.borkmann@...>

diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig
index 74f23a4..c8d6efb 100644
--- a/arch/microblaze/Kconfig
+++ b/arch/microblaze/Kconfig
@@ -19,6 +19,7 @@ config MICROBLAZE
  	select GENERIC_IRQ_SHOW
  	select GENERIC_PCI_IOMAP
(Continue reading)

Jalil Boukhobza | 14 Dec 11:29
Picon
Favicon

[microblaze-linux] CFP EWiLi 2 Embed With Linux

xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

 

 

*******************************************************************************************

                                                                                                              Call For Papers

                                                                              The 2nd Embed With Linux (EWiLi) Workshop

                                                                                              Submission deadline: 4 March  2012

                                                                              7 June 2012, Cité de la voile, Lorient, France

*******************************************************************************************

 

 

Workshop Presentation

During the few last years, the Linux operating system has progressively positioned as a strong alternative to proprietary and/or commercial solutions in embedded systems, whether it is deeply embedded or not, and this for many application domains, such as multimedia, telephony, transports, automotive …

The purpose of this workshop is to present research projects, experimentations, significant and original realizations that lie upon the implementation of an embedded Linux operating system both in academic and industrial worlds. The workshop objective is also to be a meeting place for industrial and academic actors.

 

Expected contributions include but are not limited to the following topics:

                - Embedded Linux and education

                - Methods, software and tool chains

                - Data management and memory hierarchy optimization

                - Real time, scheduling and temporal performance

                - File systems and I/Os in embedded Linux

                - Embedded Linux and reconfigurable architectures

                - Linux and MPSOC

                - Linux and sensor networks

                - Energy and power optimization in embedded Linux

                - Debug and profiling

                - Case studies and application projects

                - Performance evaluation and optimization

               

Submissions

Papers should not exceed 5 pages in ACM SIG format (see http://sigbed.seas.upenn.edu/submit.html ) and should be written in English.

Submission can be made on the Easychair link that will be provided soon. 

 

All accepted papers will be published in the ACM SIGBED Review (ISSN: 1551-3688) Special Interest Group on Embedded Systems.

 

Website:

http://www.sigops-france.fr/EWiLi

 

Important dates:

Submission deadline:                    4 March 2012

Notifications to authors:              13 April 2012

Camera ready versions:               4 May 2012        

 

Organizing committee:

 

Jalil BOUKHOBZA                                            (Associate professor, Lab-STICC/ University of Occidental Brittany, France) -chairman- 

Jean Philippe DIGUET                                   (DR CNRS, Lab-STICC/University of South Brittany, France)

Pierre FICHEUX                                               (CTO, Open Wide / OS4I, France)

Frank SINGHOFF                                             (Professor, LISyC/University of Occidental Brittany, France)

 

Contact: boukhobza-Fhm7MynKb006YMhF8+XATQ@public.gmane.org     

 

Progam committee:

 

Sébastien BILAVARN     (LEAT/Univ. Nice, France)          

Steve BENNETT                (Workware, Australia) 

Julien BOIBESSOT            (Armadeus, France)      

Alexandre COURBOT     (NVIDIA, Japan)                                             

Olivier DAUDEL                (Univ. Paris X, France)                 

Lorenzo DOZIO                (Polytech Milano, Italy)               

Patrice KADIONIK           (ENSEIRB, France)                                         

Erwan LE GUILLOU         (Windriver, France)                      

Paolo MANTEGAZZA     (Polytech Milano, Italy)               

Manolis MARAZAKIS     (ICS FORTH, Greece)                                   

Thomas PETAZZONI       (Free Electrons, France)                             

Loïc PLASSART                  (ALTRAN, France)                                                                      

Eric SENN                            (Lab-STICC/Univ. of South Brittany, France)                                                     

John WILLIAMS                (Petalogix, Australia)    

Karim YAGHMOUR         (OpenSyS, Canada)                                     

 

--

Jalil Boukhobza

Associate Professor

Lab-STICC Lab./ Dept. of Computer Science

University of Occidental Brittany, 20 Av. Le Gorgeu - CS 93837

29238 Brest Cedex 3

Tel:  +33 2 98 01 69 73

Fax: +33 2 98 01 80 11

 

_______________________________________________
microblaze-linux mailing list
microblaze-linux@...
https://lists.eait.uq.edu.au/mailman/listinfo/microblaze-linux
Alejandro Cabrera | 6 Oct 16:13
Picon

Re: [microblaze-linux] About toolchain built against 2.6.33 or greater kernel headers

Hi John

Indeed, I'm using the Petalinux SDK donation v1.3 (2.6.31) with the 
toolchain inside it. I was working with kernel version 2.6.35 and did 
all posix named semaphore (PNS) tests against it. After your comments I 
rollback the kernel version to the 2.6.31 (sdk v1.3) and after config 
the kernel and mount the filesystem (/dev/shm, as Edgar said)  the 
problem still happen.

I'm linking a sem_test application with pthread library that contains 
(at least it must) the posix named semaphore implementation. I 
disassamble this library with objdump and look for sem_open code and it 
has only 21 instructions, for example the x86 sem_open implementation 
has 241 instructions. The rest of PNS functions (sem_close), sem_unlik 
have a code very similar to sem_open. Another clue that tell me that the 
libpthread.so doesn't contain a functional sem_open implementation is 
the fact that the __sem_search function is not implemented, this 
function is called from sem_open to obtain the mount point of shm 
filesystem (mounted in /dev/shm as default).

What I can do ?
Can I know the kernel version against the toolchain was built ?

Best regards and thanks for your attention
Alejandro

On 10/5/2011 8:14 PM, John Williams wrote:
> Hi Alejandro,
>
> You are using a PetaLinux SDK donation, correct?  SysV IPC works, but
> as Edgar said you do have to enable a few kernel options (we have made
> these defaults for future releases).
>
> The main Kconfig options you need are
>
> CONFIG_SYSVIPC=y
> CONFIG_SHMEM=y
> CONFIG_TMPFS=y
>
> About building the toolchain, we are currently working on updating the
> mainline GCC and binutils projects so that MicroBlaze is properly
> supported and buildable.  However, the SysV issue you are seeing is
> not related to your toolchain (at least I am confident that is the
> case).
>
> Regards,
>
> John
>
>
> On Thu, Oct 6, 2011 at 5:53 AM, Alejandro Cabrera
> <acabrera@...>  wrote:
>> Hi Edgar
>>
>>> IIRC, you need to enable TMPFS in your kernel and mount /dev/shm as tmpfs
>>> before using sysv ipc calls. Otherwise you'll always see ENOSYS.
>>>
>>> Check that you have both CONFIG_SHMEM=y CONFIG_TMPFS=y enabled in your
>>> kernel and /etc/fstab: none /dev/shm tmpfs defaults,noexec,nodev,nosuid 0 0
>>> mounted.
>>>
>> I get the same error :(.
>>
>> I want to rebuild the toolchain from scratch but I dont have a clue
>> about how to do it. I notice the usage of crosstool-ng in the web for
>> others architectures....but, microblaze is not supported by crosstool-ng
>> yet.
>>
>> What is the crosstool-ng located at petalogix git server ??
>> How I can build the toolchain with it ??
>>
>> Best regards
>> Alejandro
>>
>>
>>
>> Participe en Universidad 2012, del 13 al 17 de febrero de 2012.
>> Habana, Cuba: http://www.congresouniversidad.cu
>> Consulte la enciclopedia colaborativa cubana. http://www.ecured.cu
>>
>> Participe en el Segundo Congreso Medio Ambiente Construido y
>> Desarrollo Sustentable (MACDES 2011) del 6 al 9 de diciembre de 2011,
>> Hotel Nacional, Habana, Cuba: http://macdes.cujae.edu.cu
>> _______________________________________________
>> microblaze-linux mailing list
>> microblaze-linux@...
>> https://lists.eait.uq.edu.au/mailman/listinfo/microblaze-linux
>>
>
>

Participe en Universidad 2012, del 13 al 17 de febrero de 2012.
Habana, Cuba: http://www.congresouniversidad.cu
Consulte la enciclopedia colaborativa cubana. http://www.ecured.cu

Participe en el Segundo Congreso Medio Ambiente Construido y 
Desarrollo Sustentable (MACDES 2011) del 6 al 9 de diciembre de 2011, 
Hotel Nacional, Habana, Cuba: http://macdes.cujae.edu.cu
_______________________________________________
microblaze-linux mailing list
microblaze-linux@...
https://lists.eait.uq.edu.au/mailman/listinfo/microblaze-linux

Graeme Smecher | 12 Jul 17:39

[microblaze-linux] Linker bug with -O2 on sqlite

Hi all,

I mentioned this bug to John some time back, but here's a complete 
report. I'm using the stock xldk 2.0 big-endian release 
(git://git.xilinx.com/xldk/microblaze_v2.0.git) from earlier this year.

Symptoms:

     * running sqlite3 produces segmentation fault. With LD_DEBUG=all, 
the last lines are e.g.:

         143:     relocation processing: /tmp/libsqlite3.so.0.8.6
         Segmentation fault

To reproduce:

     * download and unpack 
http://www.sqlite.org/sqlite-autoconf-3070701.tar.gz
     * ./configure --prefix=/usr CC=microblaze-unknown-linux-gnu-gcc 
LD=microblaze-unknown-linux-gnu-ld CFLAGS="-O0 -mxl-barrel-shift 
-mno-xl-soft-mul -mno-xl-soft-div -msmall-divides -mxl-multiply-high 
-mxl-pattern-compare -mcpu=v8.00.b" --build=x86_64-linux-gnu 
--host=microblaze-unknown-linux-gnu
     * make
     * run ./sqlite3 on the board. If it gets to a "sqlite>" prompt 
without segfaulting, it worked.

To generate a working build:

     * replace -O2 with -O0 in the ./configure step. (-O1 fails too.)

Notes:

     * This package (sqlite3) is notable for a huge, single source file 
-- sqlite3.c is 4.5mb.
     * With sqlite3.so.0.8.6 compiled -O0 and sqlite3 compiled -O2, the 
build works (i.e. the problem occurs when the .so is optimized)
     * the CPU flags really aren't relevant; I've changed them recently 
but the bug has been around for longer.
     * libsqlite3.so.0.8.6 isn't the last "relocation processing" that 
occurs when the build works, suggesting it's a gcc/ld/ld.so bug.

Does anyone have suggestions for (a) how to get this bug report to the 
right person, and (b) how to provide more useful information than this?

thanks,
Graeme Smecher
_______________________________________________
microblaze-linux mailing list
microblaze-linux@...
https://lists.eait.uq.edu.au/mailman/listinfo/microblaze-linux

Giulio Mazzoleni | 7 Jul 15:31
Favicon

Re: [microblaze-linux] MICROBLAZE APP WITH WEB SERVER

On Thu, 2011-07-07 at 11:22 +0100, Paulo Ferreira wrote:
> On 2011/07/07, at 10:30, Giulio Mazzoleni wrote:
> 
> > Hi Paulo.
> > Thanks for your suggestion.
> > I already used SHM pools in NTP, even if I did not dig much into the
> > details.. Are you referring to it?
> > I'll give a try and let you know.
> > Many thanks and best regards,
> > Giulio
> 
> Yes. 
> 
> The #include <sys/shm.h>   stuff. 
> 
> Best regards
> 
> Paulo Ferreira 
> 

Hi Paulo (and everybody).
Many thanks for your pointers, but I think there are some situations in
which this approach is not enough.

There are two problems:
1) cgi-lib stores values in a list of structs, so that it is all
pointers to different memory areas
2) by only feeding the input on the shared memory area (and reading it
back from the remote process) we are losing environment variables passed
to the cgi program (like REQUEST_METHOD, CONTENT_LENGTH, ...)

Basically this was cool in mmu-less system because pointers were shared
between the whole system.
Now I think the only way to go is to recode the cgi library.

I do not want to move the whole processing of the http requests in a
standalone cgi file, because I want it to stay closed to the main
program (it is quire reasonable for embedded processing).

Anybody of you also tried something similar?

Best regards,
Giulio

_______________________________________________
microblaze-linux mailing list
microblaze-linux@...
https://lists.eait.uq.edu.au/mailman/listinfo/microblaze-linux

Giulio Mazzoleni | 7 Jul 10:28
Favicon

[microblaze-linux] MICROBLAZE APP WITH WEB SERVER

Dear microblaze uclinux mailing list,

I am soon switching from a MMU-less microblaze architecture to a
MMU-enabled one and I would like some suggestions on how to handle a
particular problem about servicing dynamic web pages.

In the embedded world I have been used to control dynamic page creation
directly from a single application (the main application that would run
on the board).

I could do this by using the thttpd web server and passing all the cgi
data from the web server to my application by making use of the cgi-lib
libraries and taking advantage of the intrinsic shared memory space of a
no-MMU system.

I created a cgi-page that would collect every user request. Then it
would store such a request in a struct placed in RAM (as defined by the
cgi-lib library). Then it would notify the main app via a socket
connection telling it the address of the struct and reading back from
the socket the data to be sent to the user.

It worked quite well, but now I won't be able to do such a thing because
of the different memory pools allocated to the various processes in a
MMU system.

Can you suggest me something to try?
- I could pass the whole struct via socket (instead of passing just the
pointer)
- I could allocate a shared memory area
- ...

Has anybody else handled a similar problem in the past?
I would really like to know your suggestions.

An hopefully my solution will be of any help to somebody else, too.

Best regards,
Giulio
Attachment (actions.c): text/x-csrc, 1279 bytes
Attachment (cgi_handler.c): text/x-csrc, 2853 bytes
_______________________________________________
microblaze-linux mailing list
microblaze-linux@...
https://lists.eait.uq.edu.au/mailman/listinfo/microblaze-linux

Gmane