Jump to content
    

Запускаю HOST USB в baremetal на Zynq US+, проблемы...

Всем доброго дня!

Пытаюсь запустить host usb на US+ в baremetal. Как до этого шел: по совету уважаемого коллеги с форума не пришлось копаться в исходника линукса, взял исходник uboot, сделал с нуля проект под отладку ZCU104, где включил USB в PS (без 3.0), на MIO 52..63. Сгенерировал devicetree, firmware для pmu, fsbl. Долго-долго собирал uboot, собрал таки. При заливке в плату таким скриптом:

  

#Disable Security gates to view PMU MB target
targets -set -filter {name =~ "PSU"}

#By default, JTAGsecurity gates are enabled
#This disables security gates for DAP, PLTAP and PMU.
mwr 0xffca0038 0x1ff
after 500

#Load and run PMU FW
targets -set -filter {name =~ "MicroBlaze PMU"}
dow  d:/xilinx_prj/uboot_prj/uboot1/pmufw.elf
con
after 500

#Reset A53, load and run FSBL
targets -set -filter {name =~ "Cortex-A53 #0"}
rst -processor
dow d:/xilinx_prj/uboot_prj/uboot1/fsbl.elf
con

#Give FSBL time to run
after 5000
stop

#Other SW...
dow d:/xilinx_prj/uboot_prj/uboot1/u-boot.elf
dow d:/xilinx_prj/uboot_prj/uboot1/bl31.elf

con

все успешно запускается, usb инициализируется, воткнутая в usb флешка детектится. 

Начал вытаскивать куски кода, относящиеся к инициализации USB, в отдельный проект. Проблема появилась сразу. При чтении любых регистров USB (по адресу например 0xFE218220 - revision) своим кодом - получаю 0. В инициализации читаются регистры hwparams по адресам 0xfe23c600,0xfe23c610,0xfe23c620 и т.д. В своем коде чтение возвращает везде 0. Вывел принтом из uboot те же регистры - там все не ноль. 

Похоже не включено что-то глобальное.  USB флешка подключена через 2.0, в проекте не включал 3.0, работает через ULPI USB3320. Когда запускаю свой проект, осциллографом смотрю на CLKOUT USB3320 (нога 1) - там как положено, 60МГц, reset стоит в 1. Т.е. аппаратная часть вроде выдает что надо. 

Запускаю свой проект из эклипса, вместо скрипта psu_init.tcl подсовываю такой:

#Disable Security gates to view PMU MB target
targets -set -filter {name =~ "PSU"}

#By default, JTAGsecurity gates are enabled
#This disables security gates for DAP, PLTAP and PMU.
mwr 0xffca0038 0x1ff
after 500

#Load and run PMU FW
targets -set -filter {name =~ "MicroBlaze PMU"}
dow  d:/xilinx_prj/uboot_prj/uboot1/pmufw.elf
con
after 500

#Reset A53, load and run FSBL
targets -set -filter {name =~ "Cortex-A53 #0"}
rst -processor
dow d:/xilinx_prj/uboot_prj/uboot1/fsbl.elf

con

fsbl и pmufw - те же самые файлы, что и при запуске uboot. 

При запуске проекта через debug as->launch in hardware выполняется скрипт выше, в консоль вылазит сообщение от fsbl, потом грузится моя программа и останавливается на первой строчке для дебага, как положено. 

Я уже начал сомневаться, правильно ли я понимаю, что регистры USB читаются через Xil_In32()...

Есть идеи, уважаемые гуру, что поправить/ куда посмотреть? 

 

Share this post


Link to post
Share on other sites

7 часов назад, alexPec сказал:

все успешно запускается, usb инициализируется, воткнутая в usb флешка детектится. 

 

7 часов назад, alexPec сказал:

При чтении любых регистров USB (по адресу например 0xFE218220 - revision) своим кодом - получаю 0. В инициализации читаются регистры hwparams по адресам 0xfe23c600,0xfe23c610,0xfe23c620 и т.д. В своем коде чтение возвращает везде 0.

В режимы ММУ смотрели? Линуксоиды любят всякие виртуальные адреса, и соотв. ставить блоки на обращение к реальным регистрам, убут не копал, как там с этим х.з. но глянуть стоит...

Share this post


Link to post
Share on other sites

35 минут назад, mantech сказал:

Линуксоиды любят всякие виртуальные адреса,

Вот кстати да, мысль. Спасибо! Там ведь при запуске убута bl31 чем-то таким и занимается, какое-то отношение к этим виртуальным адресам имеет. Гляну...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...