Hello Darius,
On 2024-06-27 13:31, Matthew J Fletcher wrote:
Hi Darius,
The if_atsam driver is used extensively on industrial / custom ATSAME71
boards with external SDRAM with LibBSD. The reliability has been very
good, you can see in the LibBSD change log for if_atsam some changes a
couple of years back that resolved the last issues.
regards, Matthew.
On Thu, 27 Jun 2024, 05:22 Dariusz Sabała, <dariusz.sab...@creotech.pl
<mailto:dariusz.sab...@creotech.pl>> wrote:
Hi
I am working on RTEMS LibBSD Ethernet networking POC on ATSAMV71 and
on ATSAMRH71
Please note that the SAMRH71 and the SAMV71 are two quite different
chips with different peripherals (like a different SDRAM controller).
The V71 (and family) is a bit buggy (see notes below). But I don't think
that you will see any of the problems of the V71 on the RH71. But at the
moment, there is no public BSP for the RH71 in the repositories.
My tries on ATSAMV71 were limited due to very small amount of SDRAM
memory on evaluation board - its only 2MB.
On the ATSAMV71 (and similar ones like the SAME70), you can only really
use libBSD with an external SDRAM. If you create a really small
configuration, you might can use libBSD with 4MB of RAM. But I would
recommend planning at least 16MB if you build a new hardware. For
smaller systems, you should consider lwIP. I'm not sure whether we have
a driver for the SAMV71 for that.
We had that atsamv BSP running on an SAMV71XPlained evaluation board
which had an SDRAM on board when we used it and as far as I remember,
Ethernet worked on that board together with libBSD, but it was a tight
fit. It works better on custom boards with the SAMv71/E70 with more SDRAM.
But please be aware that the SAMV71/E70 has some serious problems with
the SDRAM controller. Using it adds jitter to the PLLs. Therefore, you
can't use the USB controller and the SDRAM at the same time. Most other
parts seemed to work stable most of the time. But the problems were
severe enough that Microchip now tells you in the Chip Errata not to use
the SDRAM at all. There are some other bugs, so I would recommend
reading the Errata thoroughly if you plan to use the controller in a new
project.
I managed to do the most on SAMRH71F20-EK (CQFP package) evaluation
board:
evaluation board is connected to my workstation and I can both ping
RH71 from PC and ping PC from RH71 RTEMS Shell console, it works
very well until random microcontroller freeze. Sometimes program
freezes after 20 ping requests + replies, sometimes after 250, but
it always freezes and then debugging session is broken too, I have
to disconnect and attach to see the microcontroller state and it is
trapped in endless loop I put in bootloader startup code to give me
a time to inspect the microcontroller state.
It might be a misleading clue, but changing GMAC interrupt priority
to be numerically bigger than Systick interrupt makes this stress
test to endure more ping requests.
Also an AHB Bus Matrix peripheral of SAMRH71 reports some errors,
but I lack knowledge and documentation on how this certain MCU
peripheral (AHB matrix controller) works.
I doubt it, but SAMRH71F20-EK evaluation board could be a source of
problem too, since it seems they completely ignored hardware design
recommendations of KSZ8061 PHY.
In order to make if_atsam driver work on ATSAMRH71 I had to:
* copy and mass sed GMAC driver files, since they changed name of
registers macros a bit
* change pins configuration to reflect which pins are used on my
evalboard
* change "rtems_bsd_if_atsam_get_if_media_props" to return
is_fixed=true and duplex=IFM_FDX
* change SYSINIT_DRIVER_REFERENCE(ukphy, miibus); to
SYSINIT_DRIVER_REFERENCE(ksz8091rnb, miibus); leaving ukhpy
lead to crashesh after printing long "sssss" strings
Please tell me about a maturity and status of ATSAMV71 if_atsam
driver, is it tested on any atsamv71 board? Then how, since there is
so little memory on Xplained Ultra?
I understand that most of the RTEMS BSP is made only for
demonstration purposes and that's why I'm asking, maybe someone can
tell me what should be changed in it to make it work reliably? Do
you have any other resources to suggest I can use to learn how this
stack works beside two readme files in rtems-libbsd repo and
obviously freebsd documentation?
Regarding BSPs in RTEMS: A lot of the published ones are for some vendor
evaluation boards. But in many cases, they are used on custom
applications with just some changed BSP options. Of course there are
exceptions like the RPi or the BBB which are often used during GSoC
projects and therefore there are a lot of new programmers working on
them. Best method is usually to take a look at the commit history who
was working heavily on the boards and just ask them directly.
Best regards
Christian
Anyway, guys - nice job creating rtems-libbsd. I hope to learn more
about it and use it in our projects.
Best regards
Dariusz Sabała
Embedded software engineer
Creotech Instruments
_______________________________________________
users mailing list
users@rtems.org <mailto:users@rtems.org>
http://lists.rtems.org/mailman/listinfo/users
<http://lists.rtems.org/mailman/listinfo/users>
_______________________________________________
users mailing list
users@rtems.org
http://lists.rtems.org/mailman/listinfo/users
--
--------------------------------------------
embedded brains GmbH & Co. KG
Herr Christian MAUDERER
Dornierstr. 4
82178 Puchheim
Germany
email: christian.maude...@embedded-brains.de
phone: +49-89-18 94 741 - 18
mobile: +49-176-152 206 08
Registergericht: Amtsgericht München
Registernummer: HRA 117265
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
_______________________________________________
users mailing list
users@rtems.org
http://lists.rtems.org/mailman/listinfo/users