08:03 | topi`_> | hm, I see cpufreq is not enabled on the kernel 4.4.8-mcbin-marvell |
08:03 | topi`_> | can I just enable it at kernel build options? |
08:04 | jnettlet[m]> | topi`_: yes it should be working |
08:05 | topi`_> | I guess I need to pull from HEAD? |
08:08 | jnettlet[m]> | has it still not been pushed by Marvell? |
08:09 | topi`_> | my kernel is from May |
08:09 | topi`_> | Linux localhost.localdomain 4.4.8-mcbin-marvell #1 SMP PREEMPT Mon May 15 18:59:41 UTC 2017 aarch64 aarch64 aarch64 GNU/Linux |
08:10 | jnettlet[m]> | http://wiki.macchiatobin.net/tiki-index.php?page=Enable+Power+Management+on+MACCHIATObin |
08:10 | topi`_> | it would be nice to be able to force lower frequencies after I enabled the cores @ 2000mhz :) |
08:10 | topi`_> | force in software, and not touch the jumpers :) |
08:10 | jnettlet[m]> | looks like we need to be updating binaries faster |
08:10 | jnettlet[m]> | you can. scaling works well |
08:11 | topi`_> | who's responsible for the macchiatobin.net site? |
08:11 | topi`_> | interesting: " It is necessary to have the power management firmware included in the bootloader image." |
08:11 | jnettlet[m]> | Marvell, however some of the content is ours |
08:11 | topi`_> | it seems they have some kind of hardwrae block for controlling things like clocks, etc. Just like the RPM subsystem in Snapdragon SoCs |
08:15 | topi`_> | it seems I have to update UBOOT to get that MSS firmware going |
08:16 | topi`_> | "Please make sure the MACCHIATObin board will not experience power loss during the entire updating process, otherwise, the MACCHIATObin will be bricked due to an unfinished bootloader update." |
08:16 | topi`_> | I need to install an UPS :) |
08:17 | jnettlet[m]> | that is not true. You just need to do a recovery |
08:17 | jnettlet[m]> | do you have u-boot initializing from SPI-NOR? |
08:17 | topi`_> | I think so |
08:18 | topi`_> | let me check the bootloader log |
08:21 | topi`_> | Booting from SPI NOR flash 1 (0x32) |
08:21 | topi`_> | can the SPI NOR hold two bootloaders at the same time? |
08:21 | topi`_> | perhaps with a "switching" scheme when one of them triggers a watchdog ;) |
08:22 | topi`_> | it seems to be loading BL1, BL2, BL3 |
08:22 | topi`_> | "The purpose of rebuilding the bootloader image is to include MSS firmware(SCP_BL2) into the image. " |
08:22 | topi`_> | this seems to implicate that this MSS firmware BL2 somehow overrides the BL2 my setup is loading now? |
08:23 | topi`_> | s/implicate/imply/ |
08:25 | topi`_> | I think I have to rebuild the ATF (trusted firmware) and not the UBOOT per se |
08:25 | jnettlet[m]> | oh fyi. for those looking for "off the shelf" heatsink solutions. In a stroke of brilliance this weekend I realized that most NorthBridge cooling solutions for gaming PCs are sized about perfect for our boards and soms. |
08:25 | topi`_> | since those NOTICEs come out before U-Boot banner |
08:26 | jnettlet[m]> | topi`_: I would update both while you are at it. |
08:26 | topi`_> | jnettlet[m]: exactly. I'm using a cooling fan of Northbridge from some old Atom motherboard |
08:26 | topi`_> | jnettlet[m]: if I screw up UBOOT, does the ATF know how to load it from e.g. SDcard? |
08:26 | jnettlet[m]> | anyways. So I have order 3-4 different active and passive solutions and will write up some reviews. |
08:26 | jnettlet[m]> | post some numbers etc. |
08:27 | jnettlet[m]> | topi`_: you just need to change the boot method jumpers back to sdhc. |
08:27 | topi`_> | right |
08:27 | topi`_> | is the ATF always loaded from NOR? |
08:27 | topi`_> | or do those jumpers affect that, as well? |
08:28 | jnettlet[m]> | ATF and u-boot are all packaged into a single image. They are all loaded from the same boot method. |
08:28 | jnettlet[m]> | This is the coolest looking option I have found. http://www.frozencpu.com/products/10061/vid-139/Titan_Iron_Heart_Northbridge_Active_Chipset_Cooler_TTC-CSC31TZRB_.html |
08:29 | jnettlet[m]> | I also like that it flows across the board rather than vertically |
08:32 | topi`_> | what kind of cross compiler do I need for the 8040? Does it boot into aarch32 or aarch64? |
08:32 | jnettlet[m]> | aarch64 |
08:32 | jnettlet[m]> | I generally just use the linaro builds. |
08:34 | topi`_> | yeah |
08:34 | topi`_> | is there a linaro .deb for debian/jessie? |
08:34 | jnettlet[m]> | I don't think so. I usually grab the tarball and extract it |
08:41 | topi`_> | I guess I should grab the tarball from aarch64-elf directory and not aarch64-linux-gnu |
08:42 | topi`_> | since the latter has some binds to the glibc |
08:42 | topi`_> | glibc is useless for building uboot |
08:42 | jnettlet[m]> | I am using. gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu |
08:42 | jnettlet[m]> | but I use it as a general toolchain for everything |
08:44 | topi`_> | is 5.4.1 any good? |
08:44 | topi`_> | 6.2 is pretty bleeding edge ;) |
08:48 | topi`_> | it seems this tar was not designed to be just dropped to /usr/local |
08:49 | coburn> | rip |
08:50 | jnettlet[m]> | yeah, but compiling with 6.2 has the functionality where u-boot will compile out unused strings making the bootloader smaller |
08:52 | jnettlet[m]> | well look at this beauty. exactly what I am looking for. https://www.startech.com/Cards-Adapters/HDD-Controllers/SATA-Cards/pcie-m2-ngff-ssd-adapter-card~PEXM2SAT32N1 |
08:53 | topi`_> | I immediately ran into trouble with this gcc 5.4 toolchain. as: unrecognized option '-EL' |
08:53 | jnettlet[m]> | that will give me 5 sata ports, and support a pcie nvme drive |
09:01 | topi`_> | damn, my /usr/local has become messy... |
09:01 | topi`_> | hosts two different linaro toolchains :) |
09:04 | topi`_> | now I can't compile it because missing file linux/compiler-gcc6.h |
09:04 | topi`_> | sheeeesh |
09:05 | topi`_> | jnettlet[m]: have you managed to compile that uboot from marvell's git and if so, which branch? I am using the one documented in the macchiatobin.net page |
09:05 | topi`_> | On branch u-boot-2015.01-armada-17.04 |
09:06 | vpeter> | topi`_: For missing file you need something like https://lkml.org/lkml/2015/4/14/576 |
09:07 | topi`_> | where does that file belong to? /usr/local/include or the debian system /usr/include ? |
09:08 | topi`_> | the complexity of modern linux is killing me... I started with slackware with a 200 MB root fs... |
09:09 | topi`_> | hmm it seems this compiler-gcc5.h lives inside the UBOOT files |
09:13 | topi`_> | the "unrecognized option -EL" seems to become from the fact that it is launching x86_64-linxu-gnu as and not the crosscompiler one |
09:13 | topi`_> | is this Makefile buggy or something? |
09:13 | topi`_> | did Marvell test it at all :D |
09:14 | vpeter> | topi`_: yes, file should be part of uboot. |
09:15 | topi`_> | the makefile looks fine with $(CROSS_COMPILE) in the usual places |
09:16 | topi`_> | it seems as is not called directly, but via aarch64-elf-gcc |
09:16 | topi`_> | why it calls "as" and not "aarch64-elf-as" beats me |
09:21 | topi`_> | oh, there is a '-B' option for gcc to specify where to look for as and friends |
09:21 | topi`_> | and I did not copy the "aarch64-elf" directory in place, with its bin |
09:21 | topi`_> | now it found it! magic |
09:22 | topi`_> | I guess I should just have untarred that linaro tarball into $HOME and then added the bin there to $PATH |
09:23 | topi`_> | marvell somewhat unwisely provides tools/marvell/dtc as a 80386 elf binary, like that would be some golden standard |
09:23 | topi`_> | it could be a python script instead and then I could run it on any platform |
09:24 | topi`_> | *rant* |
09:24 | agraf`> | topi`_: qemu-linux-user? :) |
09:24 | topi`_> | I'm already typing apt-get install as we speak |
09:25 | topi`_> | but this is taking my whole work day |
09:25 | agraf`> | well, you never know how many amazing extra features their dtc has ;) |
09:26 | suihkulokki> | I'ts probably amazing as in time travel five years back in history :P |
09:27 | topi`_> | this is fine for vendor branches :) |
09:27 | topi`_> | jnettlet[m]: my suggestion would be that Solidrun could provide "up-to-date" UBOOT and other binaries for macchiatobin customers |
09:27 | topi`_> | even if marvell fails to do so |
09:36 | rabeeh> | The current Marvell implementation of cpufreq is using fixed dividers 1:N; they have a fractional pll that they will use that will provide even more granular cpu frequencies |
09:38 | topi`_> | for me, even working cpuidle would be great :) |
09:39 | topi`_> | it seems to me that at 2.0 ghz, the 4 cores bring the heatsink to 85 deg celsius |
09:39 | topi`_> | which would be fine under load, but at 0.00, this is not acceptable |
09:55 | topi`_> | SF: Detected W25Q32BV with page size 256 Bytes, erase size 4 KiB, total 4 MiB |
09:55 | topi`_> | 881292 bytes written, 65536 bytes skipped in 23.796s, speed 40739 B/s |
09:55 | topi`_> | there it went! |
09:55 | topi`_> | let's see if it works |
09:55 | topi`_> | I'll update the uboot later |
09:56 | topi`_> | bricked! |
09:56 | topi`_> | ******** DRAM initialization Failed (res 0x1) ******** |
09:56 | topi`_> | DDR4 Training Sequence - FAILED |
09:57 | topi`_> | mv_ddr4_center_of_mass_calc: if 0, subphy 0: poligon area too small 357 (dmin 16) |
09:57 | topi`_> | mv_ddr4_receiver_calibrate failure |
09:57 | topi`_> | I guess this is the main failure reason |
10:00 | topi`_> | jnettlet[m]: I sent you the log of things, if you have any idea what went wrong |
10:00 | topi`_> | I just followed the instructions from macchiatobin.net |
10:01 | topi`_> | even double checked that all the env variables weren't misspelled :) |
10:03 | Artox> | topi`_, clocks? |
10:03 | topi`_> | mv-ddr repo is at branch mv_ddr-armada-17.04 |
10:03 | Artox> | doesn´t the atf build include settings for the clocks? |
10:03 | topi`_> | Artox: good suggestion, I'll try to fiddle with the clocks |
10:03 | Artox> | (its been a while) |
10:03 | topi`_> | let's revert to the settings with which the board shipped |
10:06 | topi`_> | now it failed on the 1st try, then 2nd try and it succeeded |
10:06 | topi`_> | funny pieces of code, these marvell guys create |
10:06 | Artox> | you gotta love non-deterministic automatons\ |
10:07 | topi`_> | it's been about 25 years from my studies in electical engineering... |
10:08 | topi`_> | at that time, ASIC design was all the rage |
10:09 | topi`_> | cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq |
10:09 | topi`_> | 100000 |
10:09 | topi`_> | seems to work! we're no longer at 1.3 ghz! |
10:30 | Artox> | oh, and topi`_ there is also 17.06 mv-ddr |
10:31 | Artox> | I am currently using that without issues (and at 1,3GHz only) |
10:33 | Ke> | topi`_: why not mv_ddr-armada-17.06 ? |
10:33 | Ke> | yes, as noted |
10:51 | jnettlet[m]> | topi`_: you should get the latest mv_ddr to support the faster memory speeds. |
11:21 | topi`_> | Ke: I was just blindly following the instructions |
11:21 | topi`_> | I can try |
11:22 | topi`_> | faster memory is definitively useful since the SoC only has a diminutive 512K L2 cache |
11:22 | topi`_> | even the i.MX6 has 1MB :) |
11:29 | jnettlet[m]> | topi`_: the 8040 has 512K L2 cache per dual-core cluster, so 1MB total, and then 1MB shared L3 |
11:43 | topi`_> | interesting. That L3 is probably intended to serve all those engines and packet accelerators? |
11:48 | topi`_> | now I seem to be able to bring down all cores down to 100mhz :) |
11:48 | topi`_> | I'm running loads on all cores and let's see if it still climbs to 90C |
12:54 | topi`_> | updated the mv_ddr to 17.06 and now it works much better. Let's try to up the DRAM freq |
12:54 | Artox> | topi`_, perfect; also, 100MHz? Wow\ |
12:56 | jnettlet[m]> | yes, the 8040 goes down very low |
12:58 | Artox> | finally a board that can make good use of frequency scaling governors |
12:58 | Artox> | Is that working yet? |
12:58 | Artox> | as in ondemand, or powersave governors |
12:59 | topi`_> | wtf |
12:59 | topi`_> | [ 2.795241] cpu cpu0: Failed to get clock rate for CPU 0 |
12:59 | topi`_> | now cpufreq disappeared |
13:01 | topi`_> | NOTICE: Load image to AP MSS |
13:01 | topi`_> | NOTICE: Loading MSS image from address 0x4023000 Size 0x559c to MSS at 0xf0580000 |
13:02 | topi`_> | it says the same things at bootloader time |
13:02 | topi`_> | however, linux kernel thinks it cannot control the freq |
13:06 | topi`_> | all I did was recompile the atf with mv_ddr from that another branch |
13:06 | topi`_> | but I don't see how mv_ddr is related to the MSS |
13:09 | Artox> | Interesting |
13:10 | Artox> | topi`_, for reference, would you liek to try the tianocore openfirmware instead? |