Current Server Time: 16:54 (Central Europe)

#apertus IRC Channel Logs

2013/06/28

Timezone: UTC


22:00
dmj_nova
umm...trying to find settings64.sh
22:00
Bertl
the installer should have mentioned the path of that script
22:00
Bertl
but it shouldn't be hard to find
22:01
dmj_nova
by that you mean the xilinx installer, yes?
22:02
dmj_nova
erm ISE installer
22:02
Bertl
yep
22:02
dmj_nova
Well, I know it installed to /opt
22:02
dmj_nova
oh, found it
22:03
Bertl
good, source it
22:03
Bertl
ls $XILINX/lib/lin64/plugins/Digilent/libCseDigilent
22:03
Bertl
(or lin instead of lin64 if you are 32bit)
22:05
Bertl
alternatively you could install it in your home, but I guess a system wide install is simpler
22:06
dmj_nova
nah, been all 64 bit for me since 2010
22:06
Bertl
yeah, thought so, 32bit on pc is dying out
22:07
dmj_nova
actually that's false
22:07
dmj_nova
I have 32 bit on a netbook from 2008
22:07
Bertl
hehe
22:07
dmj_nova
it's my novel writing computer
22:08
Bertl
what's interesting is that many companies still produce 32bit only versions of their software
22:08
dmj_nova
yeah, that's just weird
22:08
Bertl
I guess it is related to having locked down toolchains and a very crude programming style :)
22:08
dmj_nova
Well, it's probably that they wrote a lot of 32-bitisms into their code and are too lazy/afraid to change
22:09
Bertl
exactly
22:09
Bertl
it's interesting that I haven't had a single open source program in the last five years which didn't work on 64bit after compiling
22:10
Bertl
seems that open source cares a lot more about avoiding such issues in the first place
22:11
dmj_nova
I suspect that open source puts significantly more effort into maintainability and best practices
22:12
dmj_nova
now, there's plenty of crap/unstable open source software and a fair amount of horrible architecture
22:12
dmj_nova
but it tends not to be quite the same level of crawling horror you get elsewhere
22:16
se6astian
left the channel
22:20
Bertl
'crawling horror', I have to remember that, it nicely describes most proprietary source code I've seen so far :)
22:21
Bertl
(and a lot of open source as well, but hey, you just avoid that :)
22:24
dmj_nova
I tend to avoid proprietary software as much as possible these days
22:24
dmj_nova
it can take forever to install and get working properly
22:24
dmj_nova
once spent almost an entire day trying to get a proprietary video editor I had purchased installed
22:26
dmj_nova
In the open source world, well I booted Ubuntu from a liveusb and installed Novacut in the middle of a demoing a class project
22:27
dmj_nova
Though I will give most proprietary software credit for not requiring the most recent version of an operating system
22:28
dmj_nova
yay, I found something positive to say :P
22:28
Bertl
which can easily become a real problem as well ...
22:28
Bertl
when programs require ancient libraries and such
22:28
dmj_nova
yeah, there's good reason Novacut dropped support for Ubuntu 12.04 and 12.10
22:29
Bertl
for example, try to get the fpga_editor working which comes with the xilinx ISE
22:30
Bertl
libstdc++.so.5, libXm.so.3 and so on
22:30
dmj_nova
we would either have had to support old (and missing useful functionality) versions of key libraries and have trouble going to new libraries later or maintain backports (which would replace important system libraries),
22:32
dmj_nova
that's the sort of issue that keeps Corporations dependent on XP
22:32
Bertl
where there is windoof 8 without a start button :)
22:33
Bertl
but yeah, a customer of mine is locked to win2k, with no chance of ever having his software updated
22:33
dmj_nova
can somebody say "security vulnerability"
22:34
Bertl
luckily we virtualized that beast away some time ago and basically recreate it from a known good copy every week ... helps to keep the performance up
22:36
Bertl
so your tools/jtag working now as expected?
22:36
dmj_nova
hrm...copied the files to the runtime folder but the command in xmd doesn't find them
22:37
Bertl
run 'strace -fF -o xmd.trace xmd'
22:37
Bertl
then enter 'connect arm hw'
22:37
Bertl
then check the xmd.trace for pathes
22:38
Bertl
look for something like this:
22:38
Bertl
[pid 20514] open("/opt/XILINX/14.5/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent/libCseDigilent.xml", O_RDONLY) = 5
22:38
Bertl
[pid 20514] open("/opt/XILINX/14.5/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent/libCseDigilent.so", O_RDONLY) = 5
22:39
Bertl
and if you get an error from xmd, please paste it ...
22:39
Bertl
I had some trouble at the first few tries, so I think I know how to interpret them
22:41
dmj_nova
so it does see the Cortex-A9 and XC7Z020
22:42
Bertl
well, that's perfect then
22:42
Bertl
(you won't be able to see that without a working jtag)
22:43
dmj_nova
it works now
22:43
Bertl
btw, IMHO, I wouldn't waste any time on the GUI tools, I've played around with them trying this and that but with little success ... till I switched to xflow
22:44
dmj_nova
xflow?
22:44
Bertl
it's basically the batch processor
22:44
Bertl
i.e. allows you to run the synthesis and implementation steps on the command line
22:45
dmj_nova
I see
22:45
Bertl
I've uploaded a bunch of examples to get folks started: http://vserver.13thfloor.at/Stuff/AXIOM/
22:45
dmj_nova
have you ever used Mentor Graphics?
22:45
Bertl
the build commands are in the comment header of each .vhd
22:46
Bertl
nope, not yet
22:46
dmj_nova
worst GUI I've ever seen
22:47
Bertl
hehe, well, happens if folks without any GUI design knowledge start randomly putting building blocks together ...
22:47
dmj_nova
implemented in tcl/tk and with so many awkward quirks that serves no purpose
22:48
dmj_nova
like scroll wheel doing something but not scrolling the diagram
03:22
tonsofpcs
left the channel
03:22
tonsofpcs
joined the channel
05:36
dmj_nova
Bertl: have you started working on any real components yet?
05:41
Bertl
define real components
05:42
Bertl
I've almost finished a complete device tree (with everything the zynq-7000 supports)
06:29
dmj_nova
is that on your site?
06:30
Bertl
not yet, I'm not finished, but I'll upload it before I go to bed
06:30
dmj_nova
ah, okay
06:37
Bertl
http://vserver.13thfloor.at/Stuff/AXIOM/devicetree.dts
06:38
Bertl
(and the compiled .dtb as well)
06:38
Bertl
still work in progress but it seems reasonably complete now
06:39
Bertl
I'll probably add some more aliases for the different kernels but it should do the job for most PS devices and configurations
06:40
Bertl
let me know if something is wrong or missing
06:49
dmj_nova
I'll take a look tomorrow
06:51
Bertl
off to bed now ... cya
09:28
dmj_nova
left the channel
09:28
dmj_nova
joined the channel
18:32
dmj_nova
hello Bertl
19:11
jucar1
joined the channel
19:14
jucar
left the channel
19:24
Bertl
dmj_nova: hey, how's going?
20:27
dmj_nova
Bertl: would you mind walking me through the device tree stuff?
20:28
Bertl
not at all, what would you like to know?
20:28
dmj_nova
the device tree thing is basically teaching the linux kernel on the arm side about the board, right?
20:28
Bertl
yes, about the hardware, registers and drivers to use
20:29
dmj_nova
at least that's what I think I remember from Linaro conference in Hong Kong
20:37
Bertl
so, what's on your mind regarding devicetree?
20:40
dmj_nova
so I'm just trying to get going with working on things
20:40
dmj_nova
now that my dev environment is setup and all
20:40
Bertl
sounds good!
20:42
dmj_nova
Now what's been your process for testing the devicetree so far?
20:42
Bertl
I've booted a recent kernel with my custom PL code and tested all available drivers
20:47
dmj_nova
so PS code is what the ARM runs and PL code is your FPGA code
20:47
Bertl
yep, that is how I call it
20:47
Bertl
PS stands for PS7 aka processing system 7
20:48
Bertl
(which is also the term coined by xilinx)
20:48
Bertl
and PL for Programmable Logic
20:49
Bertl
the PS7 is actually a lot more than just the arm cores
20:49
Bertl
i.e. it includes all the hardened peripherials and interfaces
20:50
dmj_nova
so basically the CPU + chipset
20:50
Bertl
and there is also the interconnect between PS7 and PL, called AXI or recently AMBA
20:51
dmj_nova
what's the bandwidth on the interconnect?
20:51
Bertl
axi stands for Advanced eXtensible Interface
20:51
Bertl
that I haven't tested so far, but it should allow up to GB/s tranfer speeds
20:53
dmj_nova
would you mind walking me through booting your code?
20:54
Bertl
sure, note that I use TFTP booting for convenience, but you can also do the much slower JTAG boot
20:54
Bertl
did you setup TFTP on your development system already?
20:54
dmj_nova
no I haven't gotten to that yet
20:55
dmj_nova
I'll probably find time for it this weekend
20:55
Bertl
shouldn't be too hard, if you like I can walk you through that right now
20:56
dmj_nova
generally I do like to put any server-type things into a VM when I set them up on my dev box
20:56
dmj_nova
but that should be pretty easy
20:56
Bertl
I kind of do the same thing, just for linux not VM but Linux-VServer guest
20:57
Bertl
anyway, all you need installed is TFTP and DHCPD (packages for your distro should be available)
20:58
Bertl
then you get you SD card (make a copy) and replace the BOOT.BIN with this one: http://vserver.13thfloor.at/Stuff/AXIOM/TFTP/boot.bin
20:59
Bertl
then simply start a normal SD boot, and watch the logs on your DHCPD network, the boot should show up with an IP request
20:59
Bertl
(this is also where you see the MAC)
20:59
Bertl
pick your preferred IP address for the board and assign it via dhcpd
21:00
Bertl
host zedboard {
21:00
Bertl
hardware ethernet 00:0A:35:00:01:22;
21:00
Bertl
fixed-address 192.168.2.88;
21:00
Bertl
filename "/ZED/u-boot.scr";
21:00
Bertl
}
21:00
Bertl
this is how the entry looks here
21:01
Bertl
the filename is the next boot step, i.e. the name the bootloader will request next and execute as script
21:01
Bertl
at that point, you should already see failing TFTP requests
21:01
Bertl
(make sure the firewall is configured to allow DHCP/TFTP)
21:02
Bertl
after that, you simply put the boot script into your tftp directory http://vserver.13thfloor.at/Stuff/AXIOM/TFTP/ZED/u-boot.scr
21:03
Bertl
(the plain text version is the .script)
21:10
dmj_nova
why would the board be asking my computer for an ip address
21:10
dmj_nova
wouldn't one be assigned via the router?
21:10
Bertl
whoever answers the dhcp/bootp request
21:11
Bertl
if that is your router, you want to add that dhcp config entry to the router
21:11
Bertl
if you connect the zedboard directly to your dev system, e.g. via some spare gbit interface, then it will be your dev system dhcpd
21:13
dmj_nova
only have the one gigabit interface
21:14
dmj_nova
so I kinda have to connect the zedboard to the switch with my desktops that feeds into the router
21:14
Bertl
then configure the router to hand out the IP and add a
21:14
Bertl
next-server 192.168.2.1;
21:14
Bertl
entry, where 192.168.2.1 is actually your dev system's IP
21:15
Bertl
this way the router will instruct the zedboard to fetch the file from there
21:24
dmj_nova
I'm going to have to ask my roommate the router credentials again, haven't used them since probably september
21:24
dmj_nova
he's out doing research atm though
21:24
Bertl
no problem, does it hand out IPs to new devices?
21:25
Bertl
you can easily hardcode the bootp part to a fixed IP and request the file from your specific dev machine
21:26
Bertl
it's just a lot nicer to hand it out via bootp/dhcp :)
21:28
dmj_nova
yeah, it autoassigns IPs
21:28
Bertl
and what IP does your development system have?
21:30
dmj_nova
192.168.1.142
21:30
dmj_nova
(at the moment anyway) :P
21:30
Bertl
/24 ?
21:35
Bertl
what's your netmask?
21:40
dmj_nova
yeah /24
21:44
Bertl
okay, do you happen to have the IP the zedboard gets as well?
21:47
Bertl
or an IP you would like the zedboard to use
21:51
dmj_nova
had to rearrange the cables a bit and now I'm waiting for DHCP
21:52
dmj_nova
not seeing it appear in the DHCP list
21:52
Bertl
did you replace the boot.bin?
21:53
Bertl
if not, just interrupt the bootload (via serial console)
21:53
dmj_nova
no :P
21:53
Bertl
and enter 'bootp'
21:53
dmj_nova
serial console == xmd?
21:53
Bertl
no, the UART
21:54
Bertl
you can connect to that via e.g. minicom
21:55
Bertl
http://vserver.13thfloor.at/Stuff/AXIOM/minirc.ACM0
21:55
Bertl
(add that to your system where the UART is connected)
21:56
Bertl
and start minicom like this:
21:56
Bertl
minicom -w -b 115200 -8 --color=on ACM0
21:56
Bertl
(in a terminal which has access to /dev/ttyACM0)