Firefly Open Source Community

   Login   |   Register   |
New_Topic
12
New Topic
Print Previous Topic Next Topic

First impressions of an unwilling board

2

Credits

0

Prestige

0

Contribution

new registration

Rank: 1

Credits
2

First impressions of an unwilling board

Posted at 12/17/2014 19:04:56      View:10437 | Replies:13        Print      Only Author   [Copy Link] 1#

Hi there,

after paying unexpectly high toll duties, I got my board in hands.

I started the board by pugging in USB OTG... but I guess this is not supported, so I connected 5V via USB3 HUB, that provides 2A per port. Even I ordered a board without Wallplug, I got one that is 100-250V but US... Fortunately I do have some adapters ...

The board does not feature a power LED and the fan didn't start too. So I feard my board is defective... I was interrupted by a call when suddenly a blue LED came up blinking! But then I attached serial console and saw that there was an Android booting that either didn't show a logo or was not satisfied with my HDMI TV screen. After unplugging and reconnecting my TV, Android launcher was shown!


As I want to have linux on running on the board, I downloaded the lubuntu 0930 image from here and flashed it using the linux tool...

Doesn't boot...

#Boot ver: 2014-10-30#2.17
sn:100612000100014A
no fuel gauge found
no fuel gauge found
read logo_on switch from dts [0]
checkKey
vbus = 1
no fuel gauge found
Hit any key to stop autoboot:  0
failed to load fdt from boot!
kernel   @ 0x02000000 (0x005fd670)
ramdisk  @ 0x059fc000 (0x00275b49)
Secure Boot state: 0
bootrk: do_bootm_linux...
Loading Device Tree to 0561c000, end 05636f1c ... OK
Add bank:0000000000000000, 0000000080000000

Starting kernel ...


[    0.000000] Booting Linux on physical CPU 0x500
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.10.0 (dujw@tchipserver2) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #41 SMP PREEMPT Tue Nov 11 16:35:58 CST 2014
[    0.000000] CPU: ARMv7 Processor [410fc0d1] revision 1 (ARMv7), cr=10c5387d
[    0.00�DDR Version 1.00 20141007
In
Channel a: DDR3 200MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
Channel b: DDR3 200MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
Memory OK
Memory OK
OUT

I downloaded the older image ... doesn't boot too...

U-Boot 2014.01-00643-g77f8e4c-dirty (Apr 21 2014 - 15:36:44)

CPU:         RK32xx
arm pll:        1008000000
general pll:        594000000
codec pll:        594000000
ddr pll:        300000000
new pll:        24000000
Board:         RK32xx platform Board
DRAM:         128 MiB
arch_interrupt_init
storage init OK!
Using default environment

In:    serial
Out:   serial
Err:   serial
In:    serial
Out:   serial
Err:   serial
board_late_init
PowerKeyInit start
PowerKeyInit end
charger_init, charger_type = 1, dc_is_charging= 0
pmic_charger_setting charger_type = 1
i2c_set_bus_num: I2C bus = 0
rk_i2c_init: I2C bus = 0
i2c->regs_addr = ff650000,set clk(I2C_CLKDIV: 0x003f003f)
pmic_charger_setting charge ic id = 0xff
GetParam
check parameter success
Unknow param: MACHINE_MODEL:rk30sdk!
Unknow param: MACHINE_ID:007!
Unknow param: MANUFACTURER:RK30SDK!
Unknow param: PWR_HLD: 0,0,A,0,1!
partition(resource): offset=0x00002000, size=0x00008000
partition(boot): offset=0x0000A000, size=0x00008000
partition(misc): offset=0x00012000, size=0x00002000
partition(backup): offset=0x00014000, size=0x0001A000
partition(linuxroot): offset=0x0002E000, size=0xFFFFFFFF
sn:100612000100014A
checkKey
vbus = 1
reboot to rockusb.
startRockusb,178817
DDR Version 1.00 20140404
In
SRX
Channel a: DDR3 300MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
Channel b: DDR3 300MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
OUT

Then I downloaded the Android images from the server to restore the original environment... I thought..

Guess what? Doesn't boot...

#Boot ver: 2014-10-30#2.17
sn:100612000100014A
no fuel gauge found
no fuel gauge found
read logo_on switch from dts [0]
checkKey
vbus = 1
no fuel gauge found
got recovery cmd from misc.
failed to load fdt from recovery!
kernel   @ 0x02000000 (0x005f3cf8)
ramdisk  @ 0x059fc000 (0x004108ce)
Secure Boot state: 0
bootrk: do_bootm_linux...
Loading Device Tree to 0561c000, end 05636f1c ... OK
Add bank:0000000000000000, 0000000080000000

Starting kernel ...


[    0.000000] Booting Linux on physical CPU 0x500
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.10.0 (dujw@tchipserver2) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #40 SMP PREEMPT Tue Nov 11 16:26:39 CST 2014
[    0.000000] CPU: ARMv7 Processor [410fc0d1] revision 1 (ARMv7), cr=10c5387d
[    �DDR Version 1.00 20141007
In
Channel a: DDR3 200MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
Channel b: DDR3 200MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
Memory OK
Memory OK
OUT


All in all this is a pretty stumbling start...

What I miss on that board is

- Power LED

- Marking of PCB Revision, to find the correct schematics, PCB and software packages.

- A version of uboot that has the MMU bug fixed or a kernel that takes care of the loaders problem?


- A forum editor where I can set correct line spacings ...


That's so far a report of the first 45minutes with my firefly board


Kind regards

Astralix

Reply

Use props Report

2

Credits

0

Prestige

0

Contribution

new registration

Rank: 1

Credits
2
Posted at 12/17/2014 23:45:49        Only Author  2#

Update:

On the IRC linux-rockchip there has be a hint about a MMU init problem between uboot and kernel. To check for this and updated drivers I ...


Downloaded the SDK mentioned in the wiki and followed the instructions.

Commpiled my own uboot from the SDK:

uboot starts correctly:

U-Boot 2014.10-RK3288-02 (Dec 17 2014 - 14:51:58)

CPU: rk3288
CPU's clock information:
arm pll = 600000000HZ
periph pll = 300000000HZ
ddr pll = 200000000HZ
codec pll = 594000000HZ
Board:        Rockchip platform Board
DRAM:  Found dram banks:1
Adding bank:0000000000000000(0000000080000000)
128 MiB
storage init OK!
Using default environment

GetParam
check parameter success
Unknow param: MACHINE_MODEL:rk30sdk!
Unknow param: MACHINE_ID:007!
Unknow param: MANUFACTURER:RK30SDK!
Unknow param: PWR_HLD: 0,0,A,0,1!
failed to prepare fdt from boot!
power key: bank-0 pin-5
can't find dts node for ricoh619
pmic:act8846
Can't find dts node for fuel guage cw201x
SecureBootEn = 0, SecureBootLock = 0

#Boot ver: 2014-12-17#2.17
empty serial no.
checkKey
vbus = 1
rockusb key pressed.


I exchanged the loader in the linux image v0930 and bootet that image:

U-Boot 2014.10-RK3288-02 (Dec 17 2014 - 14:51:58)

CPU: rk3288
CPU's clock information:
arm pll = 600000000HZ
periph pll = 300000000HZ
ddr pll = 200000000HZ
codec pll = 594000000HZ
Board:        Rockchip platform Board
DRAM:  Found dram banks:1
Adding bank:0000000000000000(0000000080000000)
128 MiB
storage init OK!
Using default environment

GetParam
check parameter success
Unknow param: MACHINE_MODEL:rk30sdk!
Unknow param: MACHINE_ID:007!
Unknow param: MANUFACTURER:RK30SDK!
Unknow param: PWR_HLD: 0,0,A,0,1!
failed to prepare fdt from boot!
power key: bank-0 pin-5
can't find dts node for ricoh619
pmic:act8846
Can't find dts node for fuel guage cw201x
SecureBootEn = 0, SecureBootLock = 0

#Boot ver: 2014-12-17#2.17
empty serial no.
checkKey
vbus = 1
no fuel gauge found
no fuel gauge found
read logo_on switch from dts [0]
no fuel gauge found
Hit any key to stop autoboot:  0
failed to load fdt from boot!
kernel   @ 0x02000000 (0x005fd670)
ramdisk  @ 0x04bf0000 (0x00275b49)
Secure Boot state: 0
bootrk: do_bootm_linux...
Loading Device Tree to 0480d000, end 04827f1c ... OK
Add bank:0000000000000000, 0000000080000000

Starting kernel ...


[    0.000000] Booting Linux on physical CPU 0x500
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.10.0 (dujw@tchipserver2) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #41 SMP PREEMPT Tue Nov 11 16:35:58 CST 2014
[    0.000000] CPU: ARMv7 Processor [410fc0d1] revision 1 (ARMv7), cr=10c5387d
[    0.000�DDR Version 1.00 20141007
In
Channel a: DDR3 200MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
Channel b: DDR3 200MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
Memory OK
Memory OK
OUT

uboot fetches kernel correctly but kernel fails to boot at the same point where it fails with the original image. So there was something else changed to get from 2014.10-01 to 2014.10-02 version of uboot...

However there was a hint to reset the MMU in the kernel to avoid that crash from the kernel side. Thanks to mmind00!

I cpoied that lines to head.S from kernel and rebuild the image but the result is almost the same:

Starting kernel ...


[    0.000000] Booting Linux on physical CPU 0x500
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.10.0 (astralix) (gcc version 4.9.2 20140904 (prerelease) (crosstool-NG linaro-1.13.1-4.9-2014.09 - Linaro GCC 4.9-2014.09) ) #1 SMP PREEMPT Wed Dec 17 16:07:54 CET 2014
[    0.000000] CPU: ARMv7 Process�DDR Version 1.00 20141007
In
Channel a: DDR3 200MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
Channel b: DDR3 200MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
Memory OK
Memory OK
OUT


So still looking around to find a solution.

Astralix

Reply

Use props Report

2

Credits

0

Prestige

0

Contribution

new registration

Rank: 1

Credits
2
Posted at 12/18/2014 00:51:43        Only Author  3#

OK here's what I get from my device (from power on to loader mode)


DDR Version 1.00 20140630
In
Channel a: DDR3 300MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
Channel b: DDR3 300MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB
Memory OK
Memory OK
OUT


U-Boot 2014.04-RK3288-01-01104-gf91c05d (Sep 25 2014 - 09:46:59)

CPU: rk3288
CPU's clock information:
    arm pll = 600000000HZ
    periph pll = 297000000HZ
    ddr pll = 300000000HZ
    codec pll = 384000000HZ
Board:    Rockchip platform Board
Found dram banks:1
Adding bank:0000000000000000(0000000080000000)
DRAM:  128 MiB
storage init OK!
Using default environment

GetParam
check parameter success
Unknow param: MACHINE_MODEL:rk30sdk!
Unknow param: MACHINE_ID:007!
Unknow param: MANUFACTURER:RK30SDK!
Unknow param: PWR_HLD: 0,0,A,0,1!
failed to prepare_fdt from boot!
no adc node
can't find dts node for ricoh619
can't find dts node for act8846
can't find dts node for rk808
can't find dts node for rk818
Can't find dts node for fuel guage cw201x
can't find dts node for ADC
SecureBootEn = 0, SecureBootLock = 0

#Boot ver: 2014-09-25#2.16
sn:100611000100001C
checkKey
vbus = 1
rockusb key pressed.


That's the U-Boot as shipped with the device. The shipped Ubuntu worked OK.


I can also build and boot kernel's from the Firefly SDK. I'm cross compiling

under x86-64 Fedora 20 with gcc 4.9.1


Currently I'm trying to get current mainline running. Using linux-next + some

patches and naobsd's firefly device tree, the kernel is getting as far as trying to

mount the root filesystem but is failing as it seems the eMMC isn't getting set up

right. But things seem to be moving in the right direction at least.


Cheers,

Andrew

Reply

Use props Report

2

Credits

0

Prestige

0

Contribution

new registration

Rank: 1

Credits
2
Posted at 12/18/2014 03:12:13        Only Author  4#

Hi!




So you're booting an uboot 2014.04 while the latest in the firefly SDK is 2014.10.?

And your uboot claims to not see any PMUs while mine does... This looks like mine is probably setting up something wrong.




It is a bit annoying that there is no prebuild image that you can download that then resets your system into a working state...




We'll see why that is the case...




Astralix
Reply

Use props Report

2

Credits

0

Prestige

0

Contribution

new registration

Rank: 1

Credits
2
Posted at 12/18/2014 08:58:53        Only Author  5#

One of the things I did before tinkering was to backup all

the partitions, so I have :-




-r--r--r-- 1 root root?? 54525952 Nov 23 18:36 backup.backup
-r--r--r-- 1 root root?? 33554432 Nov 23 18:36 boot.backup
-r--r--r-- 1 root root? 134217728 Nov 23 18:37 cache.backup
-r--r--r-- 1 root root?? 16777216 Nov 23 18:36 kernel.backup
-r--r--r-- 1 root root??? 4194304 Nov 23 18:37 kpanic.backup
-r--r--r-- 1 root root 3288334336 Nov 23 18:51 linuxroot.backup
-r--r--r-- 1 root root??? 4194304 Nov 23 18:41 metadata.backup
-r--r--r-- 1 root root??? 4194304 Nov 23 18:35 misc.backup
-r--r--r-- 1 root root??????? 888 Nov 23 20:26 parameter.backup
-r--r--r-- 1 root root?? 33554432 Nov 23 18:36 recovery.backup
-r--r--r-- 1 root root?? 16777216 Nov 23 18:35 resource.backup
-r--r--r-- 1 root root? 805306368 Nov 23 18:39 system.backup
-r--r--r-- 1 root root??? 4194304 Nov 23 18:34 uboot.backup
-r--r--r-- 1 root root 1073741824 Nov 23 18:43 userdata.backup


Would for example the uboot image be useful to you?




Cheers,

Andrew


Reply

Use props Report

2

Credits

0

Prestige

0

Contribution

new registration

Rank: 1

Credits
2
Posted at 12/18/2014 15:49:32        Only Author  6#

Hi Andrew!

To find out what is the root cause, the following images are of interest:

- uboot.backup
- recovery.backup
- boot.backup
- kernel.backup (I guess this one is empty)

If you could put there somewhere for me?




However, for the other customers, paying the official price, there should be a downloadable version of the installed package binaries and for the deveoplers there should be a matching source code.




Astralix
Reply

Use props Report

2

Credits

0

Prestige

0

Contribution

new registration

Rank: 1

Credits
2
Posted at 12/18/2014 17:49:21        Only Author  7#

Looks like the firefly-rk3288.dts is incomplete.

At least, after adding a section

memory {
reg =;
};


The kernel boots till setup of framebuffers, before it crashes again:

[    0.684256] rk32-lvds rk32-lvds: rk32 lvds driver probe success
[    0.684487] rk32-edp ff970000.edp: screen is not edp!
[    0.684511] rk32-edp: probe of ff970000.edp failed with error -22
[    0.684898] rk3288-lcdc lcdc0: can't find power_ctr node for lcdc0
[    0.685197] graphics fb0: rockchip framebuffer registerd:fb0
[    0.685563] graphics fb1: rockchip framebuffer registerd:fb1
[    0.685723] graphics fb2: rockchip framebuffer registerd:fb2
[    0.685868] graphics fb3: rockchip framebuffer registerd:fb3
[    0.686019] graphics fb4: roDDR Version 1.00 20141007
In
Channel a: DDR3 200MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=16 Size=1024MB

So please, firefly team, provide a complete firefly-rk3288.dts for the board.


Astralix

Reply

Use props Report

2

Credits

0

Prestige

0

Contribution

new registration

Rank: 1

Credits
2
Posted at 12/18/2014 20:16:31        Only Author  8#
OK, sent info in an email...
Reply

Use props Report

403

Credits

10

Prestige

12

Contribution

intermediate

Rank: 3Rank: 3

Credits
403
Posted at 12/19/2014 10:47:08        Only Author  9#

Hi Astralix, please try the dual firmware file in Google drive:

  https://drive.google.com/folderview?id= ... =drive_web

, which is listed in http://www.t-firefly.com/en/download/ .


I check your kernel version and conclude that you are using the old firmware file.


About u-boot, v2.17 and above is good for use.

Reply

Use props Report

2

Credits

0

Prestige

0

Contribution

new registration

Rank: 1

Credits
2
Posted at 12/19/2014 17:01:08        Only Author  10#

Hey busybee!

can you please make these latest sources available?

All the guys getting their new boards now at #linux-rockchip are pretty nervous if and how they could restore their original boards if something fails.




Please update the single images, so the others do not get trapped as I was.




Can you please check the schematics for beeing correct with means of voltages?

If I continue to test mainline kernel, I would like to not have random reboots or dead parts due to under- or over-voltage.




And I really need the fully working original uboot sources that you use. That is the first thing, that I need to work on.




That would be really great!

EDIT:

The DualBoot Image works perfectly. There is a small issue with Android and linux according HDMI init. I Android the system doesn't recognize the TV set at bootup, but unplug and replug the HDMI cable shows Android Launcher immediately. Perfect!




The Linux does not accept the HDMI connected TV too. On the console you can see that it has some trouble to read the EDID data:

root@firefly:~# [ 2015.418974] [EDID] extensions block checksum error
[ 2015.419019] rk3288-hdmi ff980000.hdmi: [HDMI] parse edid block 1 error
[ 2015.419042] rk3288-hdmi ff980000.hdmi: warning: EDID error, assume sink as DVI !!!!

To solve that problem, one can chec, which modes are supported by

root@firefly:~# cat /sys/class/display/display0.HDMI/modes

auto
3840x2160p-60
3840x2160p-50
3840x2160p-30
3840x2160p-25
3840x2160p-24
1920x1080p-60
1920x1080p-50
1920x1080p-30
1920x1080p-25
1920x1080p-24
1280x720p-60
1280x720p-50
1280x720p-30
1280x720p-25
1280x720p-24
720x576p-50
720x480p-60

Then select one that matches the TV or monitor resolution:

root@firefly:~# echo "1920x1080p-60" > /sys/class/display/display0.HDMI/modeThe picture will show up immediately










So good news is, that there is a way back to a fully functional preset if one messed up with images and kernels. Great!




Kind regards

Astralix
Reply

Use props Report

Return to List
12
You need to log in before you can reply Login | Register

This forum Credits Rules

Quick Reply Back to top Back to list