From: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] RFC: Xilinx Spartan3 relocation code
Date: Wed, 15 Aug 2007 16:24:59 +0200 [thread overview]
Message-ID: <200708151624.59770.matthias.fuchs@esd-electronics.com> (raw)
In-Reply-To: <OF58E7CA62.A163959B-ON88257337.0071A5C9-88257337.007329CC@selinc.com>
Hi Bruce,
I ran into the same issue a couple of weeks ago. Currently I implemented
dummy functions for things that I do not need. But I agree with you
that relocating NULL pointers makes no sense but fixing the FPGA code as
you suggested would be fine.
I can test your patch against the spartan2/3 serial slave code with my board.
Matthias
On Tuesday 14 August 2007 22:58, Bruce_Leonard at selinc.com wrote:
> Hi,
>
> Our custom board has a Spartan3 FPGA on it and we're using u-boot to
> program it. I've come across an item (I won't call it an issue since
> there's a fairly simple work around) in the function Spartan3_sp_reloc in
> .../common/spartan3.c. (Looks like the Spartan3_ss_reloc function has the
> same issue.)
>
> Some of the FPGA functions are optional. That is to say the higher level
> code checks to see if the custom function pointer is non-NULL before it
> gets used. The 'pre' function is a good example. I don't have any need
> for a 'pre' function in my particular setup, so in my
> Xilinx_Spartan3_Slave_Parallel_fns structure I set that pointer to NULL.
> The item comes up in the relocate functions mentioned above. They blindly
> add gd->reloc_offset to the function pointer values in the list, making
> the relocated 'pre' function pointer non-NULL. The 'fpga load' command
> then tries to execute the 'pre' function and causes the system to crash
> because it's trying to execute bogus code.
>
> The simple work around is to declare a function for 'pre' that does
> nothing. To me this defeats the purpose of the non-NULL checking that
> other code does and forces the user to add code that does nothing for
> them. I like the non-NULL checking because it's robust and allows you to
> only include the code you actually need.
>
> So, to the RFC: I think the code that does the relocation of the FPGA
> description structures should check for NULL before adding
> gd->reloc_offset to the function pointers. I think it keeps things in
> line with the original intent of the authors of the FPGA and makes the
> whole thing more robust. Comments?
>
> I'm happy to make the changes and submit a patch, but I can only test for
> one case: the Spartan 3 parallel load method.
>
> Bruce
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc.
> Still grepping through log files to find problems? Stop.
> Now Search log events and configuration files using AJAX and a browser.
> Download your FREE copy of Splunk now >> http://get.splunk.com/
> _______________________________________________
> U-Boot-Users mailing list
> U-Boot-Users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/u-boot-users
>
>
--
-----------------------------------------------------------------------
Dipl.-Ing. Matthias Fuchs esd electronic system design gmbh
http://www.esd-electronics.com Vahrenwalder Str. 207
phone: +49-511-37298-0, fax: -68 30165 Hannover, Germany
-----------------------------------------------------------------------
next prev parent reply other threads:[~2007-08-15 14:24 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-14 20:58 [U-Boot-Users] RFC: Xilinx Spartan3 relocation code Bruce_Leonard at selinc.com
2007-08-15 14:24 ` Matthias Fuchs [this message]
2007-08-15 17:25 ` Bruce_Leonard at selinc.com
2007-08-16 9:16 ` Matthias Fuchs
2007-08-16 16:37 ` Bruce_Leonard at selinc.com
2007-08-17 6:41 ` Stefan Roese
2007-08-20 17:46 ` Bruce_Leonard at selinc.com
2007-08-21 8:52 ` Matthias Fuchs
2007-08-21 9:04 ` Laurent Pinchart
2007-08-21 10:17 ` Matthias Fuchs
2007-08-21 19:47 ` Bruce_Leonard at selinc.com
2007-08-21 19:39 ` Bruce_Leonard at selinc.com
2007-08-22 6:53 ` Matthias Fuchs
2007-08-17 11:03 ` Matthias Fuchs
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=200708151624.59770.matthias.fuchs@esd-electronics.com \
--to=matthias.fuchs@esd-electronics.com \
--cc=u-boot@lists.denx.de \
/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.