Jump to content
  • 0

ROCK64


Xalius
 Share

Question

Moderator edit (pfeerick): I have modified this post to contextualise this split thread. It was initially intended to be a discussion of a board bring up procedure / proposal format, and has since evolved into discussion of the rock64 generally. 

 

Xalius originally said in this post: 

TODO-List sounds good to me, I will run some tests as soon as China Post/DHL actually deliver my package. I get a 4GB version with the suppressor diodes for USB3 already replaced...

 

This is what tkasier originally wrote in his first post, minus the disclaimer as was only relevant to that thread:

 

Quote

 

Let me introduce ROCK64:

 

  • RK3328 SoC: feature list
  • ROCK64 schematic (preliminary since vendor promised to accept last minute changes/suggestions within the 2 next weeks)
  • Board layout picture (same form factor as Raspberries, pre-production samples do not fit exactly in RPi enclosures, final design should fit)
  • 1GB, 2GB or 4GB PC-18666 LPDDR3
  • eMMC has higher boot priority than SD card (but eMMC can be disabled via jumper)
  • socketed eMMC modules are the same as on Pinebook and SoPine (and compatible to older ODROIDs and their SD card adapter)
  • 128Mb SPI NOR flash (16MB) on future board revisions (to directly boot from USB[3] storage, network or whatever)
  • RK3328 should be interesting for media center purposes (4K support, video codedcs, somewhat decent GPU, high memory bandwidth)
  • Due to USB3, GbE and additional Fast Ethernet also interesting for NAS/server use cases (TBC, both USB3 and GbE performance needs to be checked)
  • I2S exposed and compatible to some early RPi DACs, a lot more GPIOs exposed as usual (see picture above and this)
  • Pricing will be competitive (can't share details yet but it's based on amount of DRAM and tries to match Pine64 costs but since DRAM prices increased a lot the last months it might be slightly more. Prices will be announced publicly within the next 2 weeks)

 

Pros:

  • board vendor actively participates (listens to community, provides information including schematic and cares about correctness, tries to bridge developer community and chip vendor)
  • board vendor provides dev samples and documents problems devs might run into (see below)
  • chip vendor actively supports mainline Linux and u-boot
  • chip vendor is said to focus on ROCK64 as currently best supported RK3328 device to spread market adoption (TBC)
  • SDK/BSP not horribly outdated (RK relies currently on 4.4)
  • almost all Armbian target audiences might benefit from RK3328 support (desktop replacement, NAS/server, audiophiles + IoT use cases due to exposed GPIOs/interfaces)
  • No unreliable shitty Micro USB for DC-IN but sane 3.5/1.35mm barrel plug to be combined with 5V/3A PSU Pine Inc already sells together with Pinebook
  • Icenowy already received a dev sample ;)

 

Cons:

 

  • new platform (Rockchip 64-bit) needing more initial work

 

Did anyone of you received shipping confirmation with tracking number already? @jernej? Unfortunately I get a dev sample with unusable USB3 (some components need to be desoldered which is a pity since I'm not good in soldering at all)

 

My next steps planned:

 

  • Boot the board with what's provided within one week (TL Lim mentioned a 'Debian based 4.4 BSP, later Yocto' and said RK would be ready with a mainline variant within the next weeks)
  • Test GbE speeds, memory throughput and the usual Armbian tunables (IRQ distribution)
  • ask @Xaliusfor USB3 numbers (his dev sample was shipped out later and doesn't need soldering)
  • Present results to continue discussion

 

 

Link to comment
Share on other sites

Recommended Posts

Check forum guidelines to use maximum potential!

  • 0

The mainlining (is that a word?) looks like it just started not too long ago, and given the 4.4 kernel is the one directly from Rockchip, and the... unique coding style I've come across for some of their workarounds, I'd agree for now.  At the very least for mainline the RK805 needs supported, it's a non-start without it.

 

If given a board I'd help support if/when the time comes, as much as I'd like to I don't think purchasing one is on my radar just yet, and it would be hard to justify having 2 SBC's that don't actually do anything but absorb my working time...  ;-)

 

As a note to Mods, should this be put in the "Board Bring-up" sub-forum?

Link to comment
Share on other sites

  • 0

Yeah I am following the mainlining process for some time now, and some new things went into 4.12.x , we'll see at what pace that continues. As for the documentation there are only the datasheets (SOC+RK805), Part 1 of the user manual and the schematics right now. Tl is trying to get the Part 2 of the user manual released, but I am not sure what is actually in there. RK just today provided some more patches for the 4.4.x BSP, maybe the Rock64 can now stay up longer than 20 minutes :-)

 

On the hardware front Tl was looking for last suggestions regarding schematic changes or board layout changes, I think the plan is to go into production as soon it is confirmed that 933Mhz DRAM works on all three (1/2/4GB) variants...

 

@TonyMac32 I can ask Tl if he can send you a board sample if you like

Link to comment
Share on other sites

  • 0
15 hours ago, TonyMac32 said:

The mainlining (is that a word?) looks like it just started not too long ago, and given the 4.4 kernel is the one directly from Rockchip, and the... unique coding style I've come across for some of their workarounds, I'd agree for now.  At the very least for mainline the RK805 needs supported, it's a non-start without it.

 

14 hours ago, Xalius said:

Yeah I am following the mainlining process for some time now, and some new things went into 4.12.x , we'll see at what pace that continues. As for the documentation there are only the datasheets (SOC+RK805), Part 1 of the user manual and the schematics right now. Tl is trying to get the Part 2 of the user manual released, but I am not sure what is actually in there. RK just today provided some more patches for the 4.4.x BSP, maybe the Rock64 can now stay up longer than 20 minutes :-)

I mean as long as u-boot, SPL and DRAM configuration and issues are solved, it doesn't really matter what kernel to try - pure mainline or 4.4 BSP.

Link to comment
Share on other sites

  • 0
9 minutes ago, zador.blood.stained said:

I mean as long as u-boot, SPL and DRAM configuration and issues are solved

Yes, this needs to be solved first, we should also wait whether there's one DRAM initialization solution for all 3 DRAM variants since dealing with users reporting bricked boards since downloading the wrong OS image is just boring.

 

11 minutes ago, zador.blood.stained said:

it doesn't really matter what kernel to try - pure mainline or 4.4 BSP

On a related note wrt kernel version: TL Lim introduced a few guys a week ago to Kever being some sort of an open source activity representative at RK (most probably I got it wrong, doesn't matter that much since at least he knows who's in charge of what at RK solving issues). Yesterday I informed them about promising USB3 performance but also 'I think we need to add a quirk for UAS to work reliably, please compare with dmesg output 'ERROR Transfer event for disabled endpoint or incorrect stream ring' (http://sprunge.us/HURC) and Hans de Goede's approach for a similar problem with an older ARM SoC who's most probably using an older version of the same USB3 IP as now in RK3328.'

 

Let's wait and see. What I expect is a fix first in their BSP kernel but then also submitting patches upstream so we can tick the 'USB3/UAS working flawlessly' checkbox soon.

Link to comment
Share on other sites

  • 0

I have a short update on the latest patches RK sent to BSP upstream. As of this morning we have a Rock64 image that doesnt lock up anymore  after 20 minutes and ayufan found a hotfix for the GbE issues by turning off tx-offloading (no TX/RX paramters tuned yet) and that seems to work well at least for him (930Mbit both directions) with one CPU core loaded since integrity calculations are now done on the CPU. Currently we boot the 2GB and 4GB with one firmware loader at 768Mhz DRAM frequency. The u-boot patches to autodetect DRAM size seem to work so far, havent heard back from someone with a 1GB board yet. RK also should push a DRAM init blob for 933Mhz soon...

 

https://github.com/ayufan-rock64/linux-build/releases - new images and deb packages for system upgrade

Link to comment
Share on other sites

  • 0

@Xalius, do you know if the debug serial on those Rock64 should be UART2 (pin 8 and 10) on header ?

Using either mate or minimal 0.2.1 images, I've only got few garbage characters and nothing else. I presumed it should be at 115200.

Maybe the board I've received doesn't work at all ...:(

Link to comment
Share on other sites

  • 0
6 minutes ago, martinayotte said:

@Xalius, do you know if the debug serial on those Rock64 should be UART2 (pin 8 and 10) on header ?

Using either mate or minimal 0.2.1 images, I've only got few garbage characters and nothing else.

Maybe the board I've received doesn't work at all ...:(

 

It is 1500000 8N1, RK uses 1.5Mbit for everything (miniloader, u-boot, kernel). I use PL2303HX (up to 12Mbit) and FT232RL  (up to 3Mbit) both work fine, while PL2303TA (up to 6Mbit) can not set 1.5Mbit properly...

Link to comment
Share on other sites

  • 0

It failed to find boot partition. Looking at partition schemes, strangely it has 7 GPT partitions and the Boot one seems to be the 7th.



In
LPDDR3
786MHz
Bus Width=32 Col=11 Bank=8 Row=14/14 CS=2 Die Bus-Width=32 Size=2048MB
ddrconfig:7
OUT
Boot1 Release Time: 2017-02-23, version: 2.39
ChipType = 0x11, 127
WR_REL_SET is 0 4
SdmmcInit=2 0
BootCapSize=2000
UserCapSize=1ce8000
FwPartOffset=2000 , 2000
StorageInit ok = 26281
SecureMode : SBOOT_MODE_NS
LoadTrustBL
Trust version:102
BL2: Loading BL3-0
No find bl30.bin
BL2: Loading BL3-1
image_size:0x124
image_base:0x10000
image_size:0x10
image_base:0xff091000
BL2: Loading BL3-2
image_size:0x1dc
image_base:0x8400000
Load uboot, ReadLba = 2000
Load OK, addr=0x200000, size=0x57bcc
sha_hw_verify
RunBL31 0x10000
NOTICE:  BL31: v1.3(debug):3cb76c2
NOTICE:  BL31: Built : 21:10:34, Feb 23 2017
NOTICE:  BL31: Release version: v1.1
INFO:    ARM GICv2 driver initialized
INFO:    boot cpu mask: 1
INFO:    plat_rockchip_pmu_init: pd status 0xe
INFO:    BL31: Initializing runtime services
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x200000
INFO:    SPSR = 0x3c9


U-Boot 2017.02-RK3328-06-02273-g84e0a7b-dirty (Apr 12 2017 - 23:42:46)

CPU: rk3328
cpu version = 1
CPU's clock information:
    arm pll = 600000000HZ
    general pll = 800000000HZ
    ddr pll = 1572000000HZ
    codec pll = 594000000HZ
    new pll = 594000000HZ
Board:  Rockchip platform Board
Uboot as second level loader
DRAM:  Found dram banks: 1
Adding bank:0000000000200000(000000007fe00000)
128 MiB
GIC CPU mask = 0x00000001
SdmmcInit = 0 0
SDCard Update.
storage init OK!
Using default environment

GetParam
W: Invalid Parameter's tag (0x00000000)!
Invalid parameter
remotectl v0.1
pwm freq=0x11b3dc
pwm_freq_nstime=0x35d
No pmic detect.
CPU's clock information:
    arm pll = 1200000000HZ
    general pll = 800000000HZ
    ddr pll = 1572000000HZ
    codec pll = 594000000HZ
    new pll = 594000000HZ
SecureBootEn = 0, SecureBootLock = 0

#Boot ver: 0000-00-00#0.00
empty serial no.
normal boot.
no fuel gauge found
no fuel gauge found
read logo on state from dts [0]
no fuel gauge found
'recovery' does not seem to be a partition nor an address
Unable to boot:recovery
try to start backup
'backup' does not seem to be a partition nor an address
Unable to boot:backup
try to start rockusb

Link to comment
Share on other sites

  • 0

 

4 minutes ago, martinayotte said:

What kind are you using ?

 

I used PL2303 and it kind of worked for me.

"Kind of" because kernel command line and DT stdout property doesn't explicitly specify the baud rate (at least on image that I tried), so system switched to another baud rate and I didn't have time to find the right one or to modify the image.

Link to comment
Share on other sites

  • 0

On the Pinebook or SOPine having the eMMC installed changes the device numbering and needs handling in boot.cmd, not sure how the RK u-boot config handles that atm...

Link to comment
Share on other sites

  • 0

When shorting the eMMC jumper, it start booting, but it produce a lot of mmcblk0 errors, and finally quit by not having mount rootfs.

I've then remove eMMC module, but it does the same thing ...

I think I will have to edit some configs to change it to mmcblk1 or mmcblk2.

 

 


Warning: fsck not present, so skipping root file system
[   33.619161] mmcblk0: error -5 transferring data, sector 262152, nr 8, cmd response 0x900, card status 0xb00
[   33.647386] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[   33.699107] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)
[   33.718354] mmc0: tried to reset card
[   33.737397] mmcblk0: error -5 transferring data, sector 262152, nr 8, cmd response 0x900, card status 0xb00
[   33.750745] mmcblk0: retrying using single block read
[   33.764169] mmcblk0: error -110 sending status command, retrying
[   33.771975] mmcblk0: error -84 transferring data, sector 262152, nr 8, cmd response 0x900, card status 0x0
[   33.780141] blk_update_request: I/O error, dev mmcblk0, sector 262152
[   33.791800] EXT4-fs (mmcblk0p7): can't read group descriptor 0
mount: mounting /dev/mmcblk0p7 on /root failed: Invalid argument
done.
Begin: Running /scripts/local-bottom ... done.
Begin: Running /scripts/init-bottom ... mount: mounting /dev on /root/dev failed: No such file or directory
done.
mount: mounting /run on /root/run failed: No such file or directory
run-init: current directory on the same filesystem as the root: error 0
Target filesystem doesn't have requested /sbin/init.
run-init: current directory on the same filesystem as the root: error 0
run-init: current directory on the same filesystem as the root: error 0
run-init: current directory on the same filesystem as the root: error 0
run-init: current directory on the same filesystem as the root: error 0
run-init: current directory on the same filesystem as the root: error 0
No init found. Try passing init= bootarg.


BusyBox v1.22.1 (Ubuntu 1:1.22.0-15ubuntu1) built-in shell (ash)
Enter 'help' for a list of built-in commands.

(initramfs)

 
 

 

 

Link to comment
Share on other sites

  • 0

Strange ...

On your, when boot succeed, the sdcard is really at mmcblk0 ?

Why even by removing the eMMC module, my SDCard wasn't seen as mmcblk0 ?

Anyway, I've edited /boot/extlinux/extlinux.conf to point to mmcblk1, but it still try to access mmcblk0.

But greping the whole /boot, some binary still have mmcblk0 ...

I don't understand this whole boot process ...:wacko:

Link to comment
Share on other sites

  • 0
1 hour ago, martinayotte said:

Is that 7 GPT partitions scheme is normal ? (we are not on Android here ... :wacko:)

That's the "Rockchip recommended" configuration.  If you look at the ASUS Tinker Board images it's the same thing.  It's how they put the data where the bootrom wants to find it.

Link to comment
Share on other sites

  • 0

Well, we don't use it, instead just putting the data where it goes without the partitions.  At least the 3288 ignores the partitions themselves and is only looking for the "magic" values and bootloader

Link to comment
Share on other sites

  • 0
52 minutes ago, martinayotte said:

I've copied the same xenial mate into eMMC, tweak the /boot/extlinux/extlinux.conf to point to mmcblk1, and now it boot from eMMC.

 

 

Thanks for testing, this was still on my TODO list :-)

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...