Jump to content

Rock64 Revision 3.0


TonyMac32

Recommended Posts

The newest revision does not boot from current SD images.  I'm working to debug why.  If anyone else has a board and can test it out, let me know.  The eMMC will boot, no problem, so it's just the SD itself.

 

Model: Pine64 Rock64
DRAM:  1022 MiB
MMC:   rksdmmc@ff520000: 0, rksdmmc@ff500000: 1
SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB
*** Warning - bad CRC, using default environment

In:    serial@ff130000
Out:   serial@ff130000
Err:   serial@ff130000
Model: Pine64 Rock64
misc_init_r
cpuid=55524b50303930343200000000051f1a
serial=f55c6806c317581
Net:   eth0: ethernet@ff540000
Hit any key to stop autoboot:  0
Card did not respond to voltage select!
mmc_init: -95, time 9
switch to partitions #0, OK
mmc1 is current device
** No partition table - mmc 1 **
starting USB...
USB0:   USB EHCI 1.00
USB1:   USB OHCI 1.0
USB2:   Core Release: 3.10a
USB3:   Register 2000140 NbrPorts 2
Starting the controller
USB XHCI 1.10
scanning bus 0 for devices... 1 USB Device(s) found
scanning bus 1 for devices... 2 USB Device(s) found
scanning bus 2 for devices... 2 USB Device(s) found
scanning bus 3 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found

Device 0: unknown device
ethernet@ff540000 Waiting for PHY auto negotiation to complete......... TIMEOUT 

Ideally getting old an new to boot would be ideal, @Igor this might mean a fragmentation for this board though, like having a V2 and older and a V3 and newer build if we can't make them all play nice with one bootloader.

Link to comment
Share on other sites

2 hours ago, TonyMac32 said:

this might mean a fragmentation for this board though, like having a V2 and older and a V3 and newer build if we can't make them all play nice with one bootloader.


OMG :o I hope it won't be needed.

Link to comment
Share on other sites

2 minutes ago, Igor said:

OMG :o I hope it won't be needed.

 

Agreed, but I'm having flashbacks to the MiQi boot order vs. the Tinker Board.  I should be able to look at it more fully tomorrow.

Link to comment
Share on other sites

My Rock64 is using this build since 6 weeks :

Linux rock64 4.20.0-rockchip64 #5.72 SMP Thu Jan 17 16:15:05 EST 2019 aarch64 GNU/Linux

 

EDIT : Now building Ayufan 4.20.13 ... will see !

EDIT2 : My Rock64 is now updated with 4.20.13 without any issues ...

Link to comment
Share on other sites

3 hours ago, martinayotte said:

My Rock64 is using this build since 6 weeks :

A rev 3 board?  My Rev 1 boots no problem all of our images.  It's the new one I just got that refuses.  How much RAM does yours have, this looks like a 1GB model, maybe it's trying to load something out of the memory space.

Link to comment
Share on other sites

25 minutes ago, martinayotte said:

Is it refuse to boot even without eMMC plugged ?

Yes.  That's the issue here is with the brand new revision, eMMC unplugged, plugged, etc, doesn't matter.  U-boot loads, faults out to PXE and gives up.  I had a thought to verify the U-boot is indeed the one from the SD, I don't know if the SPI is preloaded or not...

Link to comment
Share on other sites

2 minutes ago, TonyMac32 said:

I don't know if the SPI is preloaded or not...

Right, that can be an issue ...

If you stop the u-boot with <spacebar>, what "mmc list" is reporting ?

Then "mmc dev" followed with "mmc info" , finally "ls mmc X" ?

Link to comment
Share on other sites

How's the Rev 3 of the ROCK64 going?  How did you manage to get it as the website doesn't seem to show whether its rev2 or 3 that you get....  Realise there are more powerful boards out there but don't need some power hungry board for my needs, though the Odroid N2 looks tempting and low power too.

Link to comment
Share on other sites

Hi @Thewonderer, I have dev samples of a few boards, it's one of the ways we work with vendors that show interest.  My other Rock64 is a pre-V1, so I wanted to make sure I had something representative moving forward.  I've had some personal projects going, and @martinayotte moved so much around on these boards I decided to stay out of the way.  :lol: Taking a look at the u-boot configs and device trees tonight to see if I can find a difference, the Renegade image got to the point of loading kernel (obviously didn't get past that with the differences in DTS's) on the Rock64 3.0 while the Rock64 V1/2 image would not, telling me there's no hardware issue.

 

@martinayotte did you try to boot Renegade with newer u-boot?  I can't remember if you have one or not.

Link to comment
Share on other sites

8 hours ago, TonyMac32 said:

Hi @Thewonderer, I have dev samples of a few boards, it's one of the ways we work with vendors that show interest.  My other Rock64 is a pre-V1, so I wanted to make sure I had something representative moving forward.  I've had some personal projects going, and @martinayotte moved so much around on these boards I decided to stay out of the way.  :lol: Taking a look at the u-boot configs and device trees tonight to see if I can find a difference, the Renegade image got to the point of loading kernel (obviously didn't get past that with the differences in DTS's) on the Rock64 3.0 while the Rock64 V1/2 image would not, telling me there's no hardware issue.

 

@martinayotte did you try to boot Renegade with newer u-boot?  I can't remember if you have one or not.

 

Does the SD card appear later in the boot process, when you boot from eMMC?

Link to comment
Share on other sites

8 hours ago, martinayotte said:

not so much ... ;)

 

Mmhmm.  :lol:

 

my V1 has no problems with our u-boot, it is fine from eMMC and from SD.  The V3 is fine from eMMC if I 'transplant' it from the V1 to the V3.  SD using our u-boot recipe somewhere goes wrong on V3, so I need to debug

Link to comment
Share on other sites

On 3/4/2019 at 8:06 PM, martinayotte said:

If you stop the u-boot with <spacebar>, what "mmc list" is reporting ?

Then "mmc dev" followed with "mmc info" , finally "ls mmc X" ? 

 

Sorry I didn't get back to you, but here goes:

=> mmc list
rksdmmc@ff520000: 0
rksdmmc@ff500000: 1 (SD)
=> mmc info
Device: rksdmmc@ff500000
Manufacturer ID: 3
OEM: 5344
Name: SL16G
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 14.8 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes
=> ls mmc 1
 ** ext4fs_devread read error - block
Failed to mount ext2 filesystem...
** Unrecognized filesystem type **

Now, to be completely clear, that SD card boots perfectly on a revision 1 board.  I was talking to Pine, I think I might have to reach out again.

 

Interestingly, if I stuff my Renegade SD into the Rock64 I get this:

Spoiler

 


DDR version 1.13 20180428
ID:0x805 Y
In
LPDDR3
786MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=32 Size=1024MB
ddrconfig:1
OUT
Boot1 Release Time: Feb  2 2018 15:41:39, version: 2.46
ChipType = 0x11, 147
SdmmcInit=2 0
BootCapSize=0
UserCapSize=0MB
FwPartOffset=2000 , 0
SdmmcInit=0 0
BootCapSize=0
UserCapSize=15193MB
FwPartOffset=2000 , 0
StorageInit ok = 39136
Raw SecureMode = 0
SecureInit read PBA: 0x4
SecureInit read PBA: 0x404
SecureInit read PBA: 0x804
SecureInit read PBA: 0xc04
SecureInit read PBA: 0x1004
SecureInit ret = 0, SecureMode = 0
LoadTrustBL
No find bl30.bin
No find bl32.bin
Load uboot, ReadLba = 2000
Load OK, addr=0x200000, size=0x91d80
RunBL31 0x10000
NOTICE:  BL31: v1.3(debug):f947c7e
NOTICE:  BL31: Built : 12:41:19, Mar  3 2019
NOTICE:  BL31:Rockchip release version: v1.3
INFO:    ARM GICv2 driver initialized
INFO:    Using rkfiq sec cpu_context!
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.09-armbian (Mar 19 2019 - 23:49:43 -0400)

Model: Firefly ROC-RK3328-CC
DRAM:  1022 MiB
MMC:   rksdmmc@ff520000: 0, rksdmmc@ff500000: 1
*** Warning - bad CRC, using default environment

In:    serial@ff130000
Out:   serial@ff130000
Err:   serial@ff130000
Model: Firefly ROC-RK3328-CC
misc_init_r
boot mode 0.
Net:   Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot:  0
Card did not respond to voltage select!
mmc_init: -95, time 9
switch to partitions #0, OK
mmc1 is current device
Scanning mmc 1:1...
Found U-Boot script /boot/boot.scr
2949 bytes read in 20 ms (143.6 KiB/s)
## Executing script at 00500000
Boot script loaded from mmc 1
151 bytes read in 17 ms (7.8 KiB/s)
8767906 bytes read in 427 ms (19.6 MiB/s)
14107136 bytes read in 664 ms (20.3 MiB/s)
48282 bytes read in 32 ms (1.4 MiB/s)
1847 bytes read in 31 ms (57.6 KiB/s)
Applying kernel provided DT fixup script (rockchip-fixup.scr)
## Executing script at 39000000
## Loading init Ramdisk from Legacy Image at 04000000 ...
   Image Name:   uInitrd
   Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)
   Data Size:    8767842 Bytes = 8.4 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 01f00000
   Booting using the fdt blob at 0x1f00000
   Loading Ramdisk to 3d6b7000, end 3df13962 ... OK
   reserving fdt memory region: addr=1f00000 size=72000
   Loading Device Tree to 000000003d642000, end 000000003d6b6fff ... OK

Starting kernel ...

...Where it of course freezes because it is not a Renegade and they are different enough for that to be a problem.

 

What options and hardware combo would wreck reading the SD card?  *head explodes*

 

Edited by Tido
added spoiler
Link to comment
Share on other sites

9 hours ago, TonyMac32 said:

Interestingly, if I stuff my Renegade SD into the Rock64 I get this:

Right ! Interesting !

9 hours ago, TonyMac32 said:

*head explodes*

Mine is exploding too ...

Even more strange, both are with v2017.09, sharing the same rk3328.dtsi which has mmc pins strength at 4mA.

Link to comment
Share on other sites

I don't think this has anything to do with the drive strength, I can scan different SD's with no issue, reading the mfg info/type/size/etc. But it won't recognize the filesystem in any of them. (Tried 6 different ones)

Sent from my Pixel using Tapatalk

Link to comment
Share on other sites

This is from Rock64 Rev 3.

Spoiler

=> help
?       - alias for 'help'
base    - print or set address offset
bdinfo  - print Board Info structure
boot    - boot default, i.e., run 'bootcmd'
bootd   - boot default, i.e., run 'bootcmd'
bootefi - Boots an EFI payload from memory
bootelf - Boot from an ELF image in memory
booti   - boot arm64 Linux Image image from memory
bootm   - boot application image from memory
bootp   - boot image via network using BOOTP/TFTP protocol
bootvx  - Boot vxWorks from an ELF image
bootz   - boot Linux zImage image from memory
chpart  - change active partition
cmp     - memory compare
coninfo - print console devices and information
cp      - memory copy
crc32   - checksum calculation
dhcp    - boot image via network using DHCP/TFTP protocol
dm      - Driver model low level access
echo    - echo args to console
editenv - edit environment variable
env     - environment handling commands
erase   - erase FLASH memory
ethsw   - Ethernet l2 switch commands
exit    - exit script
ext2load- load binary file from a Ext2 filesystem
ext2ls  - list files in a directory (default /)
ext4load- load binary file from a Ext4 filesystem
ext4ls  - list files in a directory (default /)
ext4size- determine a file's size
false   - do nothing, unsuccessfully
fastboot- use USB or UDP Fastboot protocol
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
fatsize - determine a file's size
fatwrite- write file into a dos filesystem
fdt     - flattened device tree utility commands
flinfo  - print FLASH memory information
fstype  - Look up a filesystem type
go      - start application at address 'addr'
gpio    - query and control gpio pins
gpt     - GUID Partition Table
help    - print command description/usage
i2c     - I2C sub-system
iminfo  - print header information for application image
imxtract- extract a part of a multi-image
itest   - return true/false on integer compare
led     - manage LEDs
load    - load binary file from a filesystem
loadb   - load binary file over serial line (kermit mode)
loads   - load S-Record file over serial line
loadx   - load binary file over serial line (xmodem mode)
loady   - load binary file over serial line (ymodem mode)
loop    - infinite loop on address range
ls      - list files in a directory (default /)
md      - memory display
mdio    - MDIO utility commands
meminfo - display memory information
mii     - MII utility commands
mm      - memory modify (auto-incrementing address)
mmc     - MMC sub system
mmcinfo - display MMC info
mtdparts- define flash/nand partitions
mw      - memory write (fill)
nfs     - boot image via network using NFS protocol
nm      - memory modify (constant address)
part    - disk partition related commands
ping    - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
protect - enable or disable FLASH write protection
pxe     - commands to get and boot from pxe files
regulator- uclass operations
reset   - Perform RESET of the CPU
rockusb - Use the rockusb Protocol
run     - run commands in an environment variable
save    - save file to a filesystem
saveenv - save environment variables to persistent storage
setenv  - set environment variables
setexpr - set environment variable as the result of eval expression
sf      - SPI flash sub-system
sha1sum - compute SHA1 message digest
showvar - print local hushshell variables
size    - determine a file's size
sleep   - delay execution for some time
source  - run script from memory
sspi    - SPI utility command
sysboot - command to get and boot from syslinux files
test    - minimal test like /bin/sh
tftpboot- boot image via network using TFTP protocol
time    - run commands and summarize execution time
true    - do nothing, successfully
ums     - Use the UMS [USB Mass Storage]
usb     - USB sub-system
usbboot - boot from USB device
version - print monitor, compiler and linker version

 

=> version
U-Boot 2017.09-armbian (Mar 20 2019 - 22:48:31 -0400)

aarch64-linux-gnu-gcc (Linaro GCC 7.2-2017.11) 7.2.1 20171011
GNU ld (Linaro_Binutils-2017.11) 2.28.2.20170706

=> ls mmc 1:1
** No partition table - mmc 1 **
=> ls mmc 1:0
 ** ext4fs_devread read error - block
Failed to mount ext2 filesystem...
** Unrecognized filesystem type **
=>

Pulling the exact same card out of the Rev 3 and stopping boot on the Rev 1:

Spoiler

=> help
?       - alias for 'help'
base    - print or set address offset
bdinfo  - print Board Info structure
boot    - boot default, i.e., run 'bootcmd'
bootd   - boot default, i.e., run 'bootcmd'
bootefi - Boots an EFI payload from memory
bootelf - Boot from an ELF image in memory
booti   - boot arm64 Linux Image image from memory
bootm   - boot application image from memory
bootp   - boot image via network using BOOTP/TFTP protocol
bootvx  - Boot vxWorks from an ELF image
bootz   - boot Linux zImage image from memory
chpart  - change active partition
cmp     - memory compare
coninfo - print console devices and information
cp      - memory copy
crc32   - checksum calculation
dhcp    - boot image via network using DHCP/TFTP protocol
dm      - Driver model low level access
echo    - echo args to console
editenv - edit environment variable
env     - environment handling commands
erase   - erase FLASH memory
ethsw   - Ethernet l2 switch commands
exit    - exit script
ext2load- load binary file from a Ext2 filesystem
ext2ls  - list files in a directory (default /)
ext4load- load binary file from a Ext4 filesystem
ext4ls  - list files in a directory (default /)
ext4size- determine a file's size
false   - do nothing, unsuccessfully
fastboot- use USB or UDP Fastboot protocol
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
fatsize - determine a file's size
fatwrite- write file into a dos filesystem
fdt     - flattened device tree utility commands
flinfo  - print FLASH memory information
fstype  - Look up a filesystem type
go      - start application at address 'addr'
gpio    - query and control gpio pins
gpt     - GUID Partition Table
help    - print command description/usage
i2c     - I2C sub-system
iminfo  - print header information for application image
imxtract- extract a part of a multi-image
itest   - return true/false on integer compare
led     - manage LEDs
load    - load binary file from a filesystem
loadb   - load binary file over serial line (kermit mode)
loads   - load S-Record file over serial line
loadx   - load binary file over serial line (xmodem mode)
loady   - load binary file over serial line (ymodem mode)
loop    - infinite loop on address range
ls      - list files in a directory (default /)
md      - memory display
mdio    - MDIO utility commands
meminfo - display memory information
mii     - MII utility commands
mm      - memory modify (auto-incrementing address)
mmc     - MMC sub system
mmcinfo - display MMC info
mtdparts- define flash/nand partitions
mw      - memory write (fill)
nfs     - boot image via network using NFS protocol
nm      - memory modify (constant address)
part    - disk partition related commands
ping    - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
protect - enable or disable FLASH write protection
pxe     - commands to get and boot from pxe files
regulator- uclass operations
reset   - Perform RESET of the CPU
rockusb - Use the rockusb Protocol
run     - run commands in an environment variable
save    - save file to a filesystem
saveenv - save environment variables to persistent storage
setenv  - set environment variables
setexpr - set environment variable as the result of eval expression
sf      - SPI flash sub-system
sha1sum - compute SHA1 message digest
showvar - print local hushshell variables
size    - determine a file's size
sleep   - delay execution for some time
source  - run script from memory
sspi    - SPI utility command
sysboot - command to get and boot from syslinux files
test    - minimal test like /bin/sh
tftpboot- boot image via network using TFTP protocol
time    - run commands and summarize execution time
true    - do nothing, successfully
ums     - Use the UMS [USB Mass Storage]
usb     - USB sub-system
usbboot - boot from USB device
version - print monitor, compiler and linker version

 

=> version
U-Boot 2017.09-armbian (Mar 20 2019 - 22:48:31 -0400)

aarch64-linux-gnu-gcc (Linaro GCC 7.2-2017.11) 7.2.1 20171011
GNU ld (Linaro_Binutils-2017.11) 2.28.2.20170706

=> ls mmc 1:1
<DIR>       4096 .
<DIR>       4096 ..
<DIR>      16384 lost+found
<DIR>       4096 bin
<DIR>       4096 boot
<DIR>       4096 dev
<DIR>       4096 etc
<DIR>       4096 home
<DIR>       4096 lib
<DIR>       4096 media
<DIR>       4096 mnt
<DIR>       4096 opt
<DIR>       4096 proc
<DIR>       4096 root
<DIR>       4096 run
<DIR>       4096 sbin
<DIR>       4096 selinux
<DIR>       4096 srv
<DIR>       4096 sys
<DIR>       4096 tmp
<DIR>       4096 usr
<DIR>       4096 var
=> ls mmc 1:0
Failed to mount ext2 filesystem...
** Unrecognized filesystem type **
=>

 

Link to comment
Share on other sites

I'll be able to check later, but the SD is ext4, and I am moving the same physical SD between the two revisions of the board without any other changes. I did a lot of other tests on my own earlier on, MMC 0 is not present (and is not installed, so ok).

Sent from my Pixel using Tapatalk

Link to comment
Share on other sites

Perhaps the answer is in this quote.

 

New Rock64 Revision 3 features include support for Power over Ethernet, a Real Time Clock, support for high-speed microSD cards, and improved PI2 GPIO compatibility.

Link to comment
Share on other sites

13 hours ago, balbes150 said:

Perhaps the answer is in this quote. 

 

New Rock64 Revision 3 features include support for Power over Ethernet, a Real Time Clock, support for high-speed microSD cards, and improved PI2 GPIO compatibility.

 

Yes, I had considered this but had (probably wrongly) thought that the uboot code wasn't using it since it didn't die on boot with the Rev 1 that it wasn't trying to switch regulators.  (could be trying but nothing is changing, now the gpio is wrong? Schematic searching...)

Link to comment
Share on other sites

The issue is that GPIO0_D6 (SDMMC0_PWREN) is left floating by current Linux devicetree configurations, but needs to be set to high or low in order to select an appropriate SDCard voltage. Armbian will need to be updated to set this pin corrently.

 

To get the current non-updated version of Arbmian running on a v3 (I've tested this), you can solder a connection between test pad 2302 and 3.3v to revert your Rev3 board's SD-Card slot to Rev2 behavior, which should work with all cards.
If you have a UHS-capable MicroSD card, you can solder a connection between test pad 2303 and ground to force the slot into UHS mode.

The test pad can be located on the back of the PCB, near the center. I've highlighted it in this drawing, in red: https://i.imgur.com/F9BCSkj.png

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines