From: Johannes Roith <johannes@gnu-linux.rocks>
To: Ahmad Fatoum <a.fatoum@pengutronix.de>
Cc: barebox@lists.infradead.org
Subject: Re: Porting Cora Z7 Board to barebox
Date: Thu, 1 May 2025 14:16:39 +0200 [thread overview]
Message-ID: <aBNmGWyUGPW/okvk@InfinityCube> (raw)
In-Reply-To: <3761c82f-78ec-42ea-bf4a-d8ecbdced01d@pengutronix.de>
Hi,
thanks for the fast replies.
Am Tue, Apr 29, 2025 at 11:49:40AM +0200 schrieb Ahmad Fatoum:
> Hi,
>
> On 4/29/25 10:34, Sascha Hauer wrote:
> > In case of the Zedboard you could take start_avnet_zedboard.pbl. This
> > contains all necessary components including device tree and barebox
> > proper.
> >
> > However, this binary is linked to 0x0 and the FSBL will likely load it
> > there. I don't know where the FSBL itself is located.
Can I change the address to which barebox is linked to? E.g. in Vitis
the application is linked to 0x10000 and the FSBL starting this
application to 0x0.
>
> The pbl files tend to be a bit bigger, because they are meant only
> as input to objcopy. You can add to images/Makefile.zynq, e.g.
>
> image-$(CONFIG_MACH_ZEDBOARD) += start_avnet_zedboard.elf
>
> And it will generate a much more compact ELF file that should
> be interchangeable (I had tested this on ZynqMP).
>
> >> Is there a way to hard code the UART to use for the barebox
> >> console for barebox proper?
> >
> > Why do you want to hardcode it? Setting the console via device tree is
> > just fine.
> >
> > For debugging your early code I recommend CONFIG_DEBUG_LL. For zynq the
> > UART is hardcoded to ZYNQ_UART1_BASE_ADDR in include/mach/zynq/debug_ll.h.
> > You can change it in this file.
> >
> > With CONFIG_DEBUG_LL enabled you can put putc_ll() in your code.
>
> CONFIG_DEBUG_PBL is also often useful.
>
> >> The Zynq on the Cora Z7 only embeds a single core Cortex A9 while the SoC on the
> >> Zedboard embeds a dual core Cortex A9. Does this affect the cores initialization
> >> in arch/arm/mach_zynq?
> >
> > I don't think so. I haven't used Zynq myself though.
>
> Cheers,
> Ahmad
>
> >
> > Regards,
> > Sascha
> >
>
> --
> Pengutronix e.K. | |
> Steuerwalder Str. 21 | http://www.pengutronix.de/ |
> 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
> Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
>
The good news is, I can boot barebox (PBL and proper) now and sometimes
also can Linux. Here is the output of my barebox:
Digilent Cora Z7 PBL
uncompress.c: memory at 0x00000000, size 0x20000000
mmu: enabling MMU, ttb @ 0x1ffd0000
endmem = 0x20000000
arm_mem_scratch = 0x1fff8000+0x00008000
arm_mem_stack = 0x1ffe9000+0x0000f000
arm_mem_ttb = 0x1ffd0000+0x00010000
arm_mem_barebox_image = 0x1fe00000+0x00200000
arm_mem_early_malloc = 0x1fde0000+0x00020000
membase = 0x00000000+0x20000000
uncompress.c: uncompressing barebox binary at 0x00006270 (size 0x00029c0c) to 0x1fe00000 (uncompressed size: 0x0006c0e8)
uncompress.c: jumping to uncompressed image at 0x1fe00000
barebox 2025.04.0-00215-gdacb19ae3252-dirty #11 Wed Apr 30 22:22:15 CEST 2025
Board: Digilent Cora Z7
ERROR: could not get clock /axi/dma-controller@f8003000:apb_pclk(0)
ERROR: could not get clock /axi/etb@f8801000:apb_pclk(0)
ERROR: could not get clock /axi/tpiu@f8803000:apb_pclk(0)
ERROR: could not get clock /axi/funnel@f8804000:apb_pclk(0)
ERROR: could not get clock /axi/ptm@f889c000:apb_pclk(0)
ERROR: could not get clock /axi/ptm@f889d000:apb_pclk(0)
mdio_bus: miibus0: probed
macb e000b000.ethernet@e000b000.of: Cadence GEM at 0xe000b000
arasan-sdhci e0100000.mmc@e0100000.of: registered as mmc0
malloc space: 0x17e00000 -> 0x1fdfffff (size 128 MiB)
arasan-sdhci e0100000.mmc@e0100000.of: error while transferring data for command 6
arasan-sdhci e0100000.mmc@e0100000.of: state = 0x01f70202 , interrupt = 0x00208000
mmc0: Card's startup fails with -74
barebox-environment chosen:environment-sd.of: probe failed: No such file or directory
environment load /dev/env0: No such file or directory
Maybe you have to create the partition.
Do you know what to do about the "could not get clock errors"? Do I have
to take care about them or just ignore them?
The more critical error comes from the SD card. Every second boot I am
getting the errors shown above, sometimes the card is started correctly.
Also when barebox can startup the mmc0, when starting the Linux Kernel
sometimes the rootfs on /dev/mmcblk0p2 is not found and the SD Card is
not detected. So, there seems to be something wrong with the SD Card
interface...
In lowlevel.c I am setting the clock divider for the sdio0 interface to 10
and the Source for generated clock is IO PLL. Therefore, the sdio IP
should get a 100 MHz input clock. IS this correct? Do you know which
clockrate the driver expects?
Or do you have any other idea what could case the error?
In case I can fix the remaining errors I would like to bring the changes
upstream and send a patch. Here I also have some questions:
I added the following files and folder:
arch/arm/boards/digilent-cora/
arch/arm/dts/zynq-cora.dts
dts/src/arm/xilinx/zynq-cora.dts
arch/arm/boards/digilent-cora/ is a copy of arch/arm/boards/avnet-zed/
with my changes applied. In the Copyright, should I keep the existing
name and just add mine as a second author?
If I understand it correctly, the files in dts/src are imported from the
Linux kernel git repo, right? In this case I should try to bring my
modified device tree mainline to Linux first and then commit my changes
to barebox? Or is there another file location I can drop my device tree
temporarily until it is available in Linux?
And a last question: How can I change the default boot method in barebox
from net to mmc0?
Thanks and best regards,
Johannes
next prev parent reply other threads:[~2025-05-01 12:42 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-28 17:20 Porting Cora Z7 Board to barebox johannes
2025-04-29 8:34 ` Sascha Hauer
2025-04-29 9:49 ` Ahmad Fatoum
2025-05-01 12:16 ` Johannes Roith [this message]
2025-05-01 13:56 ` Johannes Roith
2025-05-05 7:39 ` Sascha Hauer
2025-05-06 17:04 ` Johannes Roith
2025-05-16 19:45 ` Ahmad Fatoum
2025-05-19 8:32 ` AW: " Michael Graichen
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=aBNmGWyUGPW/okvk@InfinityCube \
--to=johannes@gnu-linux.rocks \
--cc=a.fatoum@pengutronix.de \
--cc=barebox@lists.infradead.org \
/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.