Questions about writing custom boot loader, Zynq, Zybo
Lee D
embaudarm at gmail.com
Mon Jul 25 03:37:04 UTC 2016
On Sun, Jul 24, 2016 at 11:43 AM, Thomas Skibo via freebsd-arm <
freebsd-arm at freebsd.org> wrote:
>
> >
> > 3. Is there anything special about how the Zynq is configured in
> > ps7_init.c?
>
> Absolutely. ps7_init.c sets up all the clocks and DDR parameters and is
> very board specific. This might be why you’re having problems with the
> RS232 port. The clock settings may not match the clock values in the dtb.
>
I was able to track down my boot hang to the mmc_wait_for_req() function
in src/sys/dev/mmc/mmc.c.
It gets stuck in an msleep call waiting for a mutex to be released... I
think... the call looks like:
while ((req->flags & MMC_REQ_DONE) == 0) {
msleep(req, &sc->sc_mtx, 0, "mmcreq", 0);
}
It's not spinning in that while loop, it just never returns from msleep().
I'm not sure if this is a timer problem or an MMC driver problem. I've
tried setting the Zynq SD controller to the same register values it has
when booting normally with u-boot, but to no avail.
Does u-boot do any important configuration to the timers or to the SD
controller?
Suggestions welcome... I'm not sure how to continue debugging this.
Thanks,
Lee
More information about the freebsd-arm
mailing list