Current Server Time: 22:08 (Central Europe)

#apertus IRC Channel Logs

2014/06/12

Timezone: UTC


03:12
Bertl
off to bed now ... have a good one everyone!
07:23
philippej
joined the channel
07:56
wescotte
joined the channel
08:04
wescotte
left the channel
10:03
ApertusWeb3
joined the channel
10:05
ApertusWeb3
changed nick to: JasonEE
10:07
JasonEE
Joined per suggestion by Bertl
10:16
philippej
left the channel
10:41
intracube
joined the channel
10:52
jucar1
joined the channel
10:54
jucar
left the channel
11:48
Bertl
morning folks!
11:49
Bertl
hello JasonEE!
11:58
JasonEE
left the channel
12:50
jucar1
left the channel
13:46
intracube
left the channel
13:52
philippej
joined the channel
13:58
philippej
left the channel
14:28
jucar
joined the channel
14:34
JasonEE
joined the channel
14:35
JasonEE
Other IRC window locked up - was in background compiling/coding earlier when I was addressed.
14:52
intracube
joined the channel
16:02
JasonEE
left the channel
16:13
philippej
joined the channel
16:40
se6astian
joined the channel
17:18
philippej
left the channel
17:38
gwelkind
joined the channel
17:53
philippej
joined the channel
18:39
philippej
left the channel
19:19
gwelkind
left the channel
21:14
gwelkind
joined the channel
21:30
skinkie
joined the channel
21:30
skinkie
hi Bertl
21:50
skinkie
Bertl: are you online?
21:55
Bertl
yep
21:57
Bertl
hey, how's going?
21:57
skinkie
i am wasting about 10GB of my SSD
21:57
skinkie
guess what I am installing ;)
21:58
Bertl
can't be vivado, as it uses way more than 10GB :)
21:58
skinkie
it is, but with a lot of options ticked off
21:58
skinkie
I am attempting something which I wonder could work
21:59
skinkie
currently I have tried the xillinux-eval-microzed stuff
21:59
skinkie
basically the bootpart in combination with something *undefined* else ;)
21:59
Bertl
okay
21:59
skinkie
but the board complains: ** Unable to read file xillydemo.bit **
22:00
Bertl
the board?
22:01
skinkie
MicroZed over minicom
22:01
Bertl
on the console, so the bootloader?
22:01
skinkie
yes
22:01
skinkie
or mostlikely the thing before/after it
22:02
Bertl
hmm, maybe capture the console output from the beginning and upload it somewhere? (pastebin)
22:03
skinkie
http://pastebin.com/q2yQZ6wq
22:03
skinkie
i am doing something that is not recommended
22:03
skinkie
but my initial question is, do i need a bitstream at all
22:04
Bertl
ah, that looks more like you have already booted a kernel
22:04
Bertl
and the kernel is trying to push the bitstream into the reconfiguration device
22:05
Bertl
this can fail for many reasons, one being the format of the file, another the permissions
22:05
skinkie
the file is not there
22:05
skinkie
and i am mixing two distributions
22:05
skinkie
because i didn't know how to make the 'boot' part of the MicroZed
22:06
skinkie
boot.bin, devicetree.dtb
22:06
Bertl
okay
22:06
skinkie
so i copied those from the xillinux stuff
22:06
Bertl
I see
22:06
skinkie
and used an uImage from somewhere else
22:06
Bertl
mix and match (or mismatch :)
22:07
skinkie
but basically the point is, is there a discription somewhere how you could make the boot.bin and devicetree.dtb
22:07
Bertl
well, have you done some basic research how the zynq boot works?
22:08
skinkie
only up to the alternative booting methods using either uboot (on the console) and the dipswitches on the board itself
22:08
skinkie
and I guess you are pointing "before that"
22:09
Bertl
okay, so the basic boot sequence is like this:
22:09
Bertl
a 'zero level' bootloader is activated as soon as the device powers on
22:09
Bertl
at this stage the jumpers (config inputs) are sampled and stored
22:10
Bertl
and this bootloader (from rom) starts to retrieve 'blocks' from a given device into the core memory area
22:10
skinkie
the zero level bootloader is something that does not change?
22:11
Bertl
yes
22:11
Bertl
once that is finished, control is handed over to the loaded fsbl (first stage boot loader)
22:11
skinkie
and uBoot can be such bootloader?
22:12
Bertl
which has to either configure the chip and external hardware or find some way to load/get more stuff
22:12
Bertl
(or both :)
22:12
Bertl
no, actually uboot is the second stage bootloader
22:12
skinkie
what is voor the zynq device the implementation of choice?
22:12
Bertl
the first stage bootloader is typically a binary blob generated by the xilinx tools
22:13
skinkie
now i wonder if Andrey implemented a fsbl or a ssbl
22:13
Bertl
the elphel folks are working on a 'free and open' fsbl for some zynq platforms, so you might want to look into that
22:14
Bertl
the problem is mostly to get the PS attached DDR memory running so that you can load more data
22:14
Bertl
the core memory is 128k (IIRC), so the fsbl has to fit there
22:15
Bertl
http://www.wiki.xilinx.com/Build+FSBL (this is the official, how to build the FSBL)
22:16
Bertl
note that while the FSBL usually includes a bitstream, it is not strictly necessary, although it makes sense to start with a sane default
22:16
Bertl
the main part of the FSBL is getting all the necessary PS parts working
22:17
Bertl
the device tree can also be generated with the tools, but I crafted my own device tree for the alpha, and it probably makes sense to do the same for the beta (which shouldn't be that different)
22:18
Bertl
ug585 covers the boot process in chapter six in some detail
22:19
skinkie
have you used the xilinx tools for this?
22:19
Bertl
for generating the FSBL, yes, for the devicetree, I used vi :)
22:20
skinkie
you are using vi to alter a binary file?
22:20
skinkie
aka devicetree.dtb?
22:20
Bertl
the dts, which can be 'compiled' into a dtb
22:20
Bertl
(you can also convert the dtb back into a dts)
22:21
Bertl
once a generic FSBL has been built, you can combine it with arbitrary uBoot versions, so there was no need yet to regenerate it (yet)
22:21
Bertl
-yet
22:21
skinkie
so basically you are saying: if you want to know the boot process, you should follow the Xilinx wiki steps
22:22
skinkie
document / script that for the Apertus situation
22:22
Bertl
either that or use/adapt the FSBL from the elphel folks
22:23
Bertl
for our purpose, the FSBL doesn't need to do much after all
22:24
Bertl
the boot.bin is generated from the FSBL (elf) plus an optional bitstream plus the uboot (elf)
22:25
Bertl
(this is done via the bootgen tool)
22:26
skinkie
i want to get this part to work :)
22:27
skinkie
i am on it :)
22:27
Bertl
so my suggestion for you is the following:
22:27
Bertl
first, use the xilinx FSBL, because it should be simple to build and utilize
22:27
Bertl
once that works, try to replace it with a modified version of the elphel FSBL
22:28
Bertl
if that (mostly) works, try to fix it until it works, if it fails horribly, delay it till we have some time/manpower for this part
22:29
Bertl
http://pastebin.com/gGUJn0S6
22:29
Bertl
bootgen -image bootimage.bif -o i boot.bin
22:30
Bertl
the u-boot.elf is the 'u-boot' file generated when building u-boot
22:30
skinkie
could you elabarote on what app_cpu1.elf is?
22:30
Bertl
the that is whatever you want to run on cpu1 (if there is anything)
22:31
skinkie
in the practical sense
22:31
Bertl
cpu0 will run the fsbl and later u-boot
22:31
skinkie
ah, so basically what should run on cpu1 when fsbl and u-boot are running, as a completely seperate processing unit?
22:31
Bertl
typically you want to keep the second core stopped or something like that if you want to go for smp later
22:32
skinkie
what example application would choose something else?
22:32
Bertl
if you use one cpu for bare metal for example
22:32
se6astian
time for bed, gnight!
22:32
se6astian
left the channel
22:32
Bertl
or if you want to run different operating systems side by side
22:32
Bertl
like two linux kernels, one for android and one for linux
22:33
skinkie
i kind of understand the application for bitstream loading in the fsbl now
22:33
skinkie
if you have a bare metal program you may just want to have everything taken care for you
22:33
Bertl
yes, it is required if you are bare metal only
22:34
Bertl
it also makes a lot of sense for our case to have a sane default
22:34
Bertl
e.g. set certain pullups or pulldowns, etc
22:34
skinkie
the files amp_fsbl and you app_cpu1.elf
22:35
Bertl
flash a led till the real stream is up and running, etc
22:35
skinkie
are they generated by the xilinx tools, or do you have them somewhere laying around?
22:35
Bertl
they have been generated once, but I never changed them since
22:36
skinkie
can you also imagine a situation where we go for a bare metal camera?
22:36
Bertl
it might make perfect sense for some applications, but I wouldn't spend extensive thought on it right now
22:37
skinkie
lets say the elphel fsbl basically stated in the readme that they don't support bitstream loading at this moment
22:37
skinkie
so thinking out loud :)
22:37
Bertl
yes, which isn't that critical atm :)
22:37
Bertl
I expect more complications with the DDR memory
22:38
Bertl
for uboot to be useable to boot linux, you need some DDR setup already in place
22:39
Bertl
and IIRC, the FSBL does some tuning there, which is basically device dependant
22:40
Bertl
that's why I think that for a start it's probably the simplest to build one (or maybe two) xilinx FSBLs for the two microzeds we might encounter in the wild
22:40
skinkie
your point are very clear to me
22:40
Bertl
and simply provide them 'as is' for combining with other elf files via bootgen
22:41
skinkie
+s
22:42
Bertl
for uboot, I think the important config areas are: networking, dhcp/bootp, tftp, simple access to all the flash and memory, fat read/write access for changing the boot files via uboot
22:43
skinkie
is uboot still limited to fat only?
22:43
Bertl
note that I went with the digilent version of uboot because the xilinx and mainstream version had terrible network performance
22:43
Bertl
nah, but for folks to update a bunch of files on the SD, it is probably simpler to have a fat partition
22:44
Bertl
because it can be accessed from linux, mac and windows easily
22:44
skinkie
yeah 'the folks that run osx' ;)
22:48
skinkie
ok thanks :)
22:48
Bertl
you're welcome!
22:48
skinkie
btw, since you suggested 'nothing could go wrong'
22:49
skinkie
if i am booting uboot from SD then indeed nothing can go wrong
22:49
skinkie
and indeed when the flashing fails of the internal memory fails, you can still boot from SD
22:49
Bertl
even if you boot it from flash, there is no permanent problem
22:50
skinkie
this is a great distinction between the embedded boards i was using before
22:50
Bertl
you can always use the jtag boot to fix it
22:50
skinkie
jtag is not fun ;)
22:50
Bertl
note that we will have jtag via USB on the Beta board
22:50
skinkie
ah thats a nice featur
22:51
Bertl
for now, do you have a suitable programmer?
22:51
Bertl
(for the microzed, I mean)
22:51
skinkie
i'll not use an unbuffered one on this board
22:52
Bertl
I can recommend this one: http://dangerousprototypes.com/wp-content/media/2011/12/jtag3.jpg
22:52
Bertl
it is simple, and cheap, and works for xilinx and altera
22:52
Bertl
(with the xilinx/altera tools that is :)
22:54
skinkie
any recommendation for an european based shop selling them?
22:54
Bertl
note that you still need a 'special' cable for the fine pitch (2mm) conenctor on the microzed
22:54
skinkie
http://nl.farnell.com/digilent/jtag-hs2/prog-cable-jtag-for-xilinx-fpga/dp/2211775 <-
22:55
Bertl
yep, should work fine as well I guess
22:56
skinkie
i am really sick/tired of the stuff customs pulls me each time
22:56
skinkie
so i rather have something from farnell where i know what i pay, then all kind of costs afterwards
22:56
Bertl
fair enough!
22:59
skinkie
i'll let you know my progress probably before tuesday
23:00
Bertl
okay, great! If you have more questions, just email me or check IRC
23:01
skinkie
will do :) good night
23:02
skinkie
(time much better spend than watching a soccergame) ;)
23:02
skinkie
left the channel
23:47
jucar
left the channel
23:47
gwelkind
left the channel
00:03
jucar
joined the channel
00:05
gwelkind
joined the channel
00:39
gwelkind
left the channel
00:58
Bertl
off to bed now ... have a good one everyone!