Hi,
There is nothing for Buildroot on your Firmware Resources page.
So I’ve tried Amlogic’s latest Buildroot by following their instructions for mesongxl_p212_release
, hoping that the differences with the VIM are limited enough.
The resulting image did not boot because of a RAM issue, so I switched to your U-Boot binary. Then, the image layout was not compatible with your U-Boot, so I tweaked the boot environment variables in U-Boot. Then, the kernel could start, but it was always oopsing, so I switched to the ubuntu
branch of your kernel. The boot finally worked, but then gst-play-1.0
segfaulted (launched from the serial link):
# gst-play-1.0 /media/4K/Sony_4K_HDR_Camp.mp4
Press 'k' to see a list of keyboard shortcuts.
Now playing /media/4K/Sony_4K_HDR_Camp.mp4
[ 221.724422@1] vfm_map_store:rm default
[ 221.724487@1] vfm_map_store:add default decoder ppmgr deinterlace amvideo
[ 221.732998@1] codec:HEVC stbuf alloced at 0000000067800000, size = 15728640
[ 221.739114@1] codec:free_alloced_keep_buffer (null). (null). (null)
[ 221.748260@1] codec:h265:pts_unstable=0
[ 221.751785@1] codec:h265: ver (201602101,0) decinfo: 3840x2160 rate=1601
[ 221.781276@1] tv_vout: vout [tv_set_vframe_rate_hint] duration = 1601, policy = 1!
[ 221.783189@1] tv_vout: vout [framerate_automation_process] duration = 1601
[ 221.790002@1] tv_vout: framerate_automation_process[1102] fps_playing_flag = 1
[ 221.797368@1] tv_vout: fr_vsource = 5994
[ 221.801048@1] tv_vout: mode_target=10,is_receiver_supported=1
[ 221.807118@1] tv_vout: vout [framerate_automation_set_mode] mode_target = 10
[ 221.813792@1] fb: current vmode=720p60hz
[ 221.827763@0] codec:hevc video changed to 4096 x 2048 30 fps clk->667MHZ
[ 221.829183@0] codec:video first pts = 0
[ 221.832983@0] fb: osd[0] enable: 0 (qtdemux0:sink)
[ 221.861123@0] vout_serve: osd0=> x:0,y:0,w:0,h:0
[ 221.861123@0] osd1=> x:0,y:0,w:0,h:0
[ 221.863694@0] fb: current vmode=720p60hz
[ 221.895826@0] codec:Audio stbuf alloced at 00000000771a0000, size = 1572864
[ 221.897480@0] codec:audio first pts = 0
[codec_init]-[associate_dec_supported:0]
[ 221.923670@0] audio_dsp: codec_fatal_err value:0
[ 221.932788@1] codec:first check in apts <0x0:0x780> ok!
[ 221.952517@0] aml_spdif_dai: aml_hw_iec958_init,runtime->rate=48000, same source mode(1)
[ 221.954996@0] aml_spdif_dai: share the same clock
[ 221.959609@0] aml_spdif_dai: iec958 mode PCM16
[ 221.964139@0] aml_audio_hw: IEC958 16bit
[ 221.967897@0] hdmitx: audio: aout notify rate 48000
[ 221.972789@0] hdmitx: audio: aout notify size 16
[ 221.977290@0] hdmitx: audio: no update
[ 221.981046@0] aml_snd_m8_card aml_m8_snd.46: i2s/958 same source
[ 221.987670@0] codec:audio first pts = 780
[ 221.991101@0] codec:amstream_do_ioctl error :fffffffffffffdfd, 80085309
[ 221.997687@0] codec:audio pts started::::::: 0
[audio_dec_init]BuildDate--Mar 30 2017 BuildTime--17:19:32MyFaadDecoder init first in
begin audio_decoder_init,buf size 768
enter NeAACDecInit
check the loas frame failed
[NeAACDecInit 1203]aac init finished. cost bits0
init sucess cost 0
[audio_decoder_init] Init OK adif_present :0 adts_present:1 latm_present:0,sr 48000,ch 2
MyFaadDecoder decoder init finished total cost 0 bytes,consu[ 222.092940@0] aml_snd_m8_card aml_m8_snd.46: I2S playback enable
[ 222.097454@0] aml_snd_m8_card aml_m8_snd.46: IEC958 playback enable
med time 7 ms
[ 222.159546@0] codec:timestamp_apts_enable enable:1,
[ 222.159575@0] codec:audio pts started::::::: 1
[ 222.166038@2] codec:video first checkin pts = 5de
[ 222.167847@2] codec:first check in vpts <0x0:0x5de> ok!
[ 222.173282@0] codec:Bit depth luma = 10
[ 222.176818@0] codec:Bit depth chroma = 10
[ 222.180798@0] codec:set pic_list_init_flag 1
[ 222.185137@0] codec:allocate begin
[ 222.195541@0] codec:allocate end
[ 222.196110@0] codec:init_decode_head_hw: (3840, 2160) body_size 0xff0000 header_size 0x7f80
[ 222.201353@2] multiqueue0:src[2571]: unhandled input address range fault (11) at 0x452a000000227, esr 0x92000004
[ 222.201360@2] pgd = ffffffc064bae000
[ 222.201365@2] [452a000000227] *pgd=0000000000000000
[ 222.201365@2]
[ 222.201372@2] CPU: 2 PID: 2571 Comm: multiqueue0:src Not tainted 3.14.29-kvim-g09040b0-dirty #1
[ 222.201375@2] task: ffffffc052a47000 ti: ffffffc0647fc000 task.ti: ffffffc0647fc000
[ 222.201389@2] PC is at 0x7fa2e74a78
[ 222.201391@2] LR is at 0x7fa2e754a8
[ 222.201393@2] pc : [<0000007fa2e74a78>] lr : [<0000007fa2e754a8>] pstate: 20000000
[ 222.201394@2] sp : 0000007fa37fae60
[ 222.201398@2] x29: 0000007fa37fae60 x28: 0000007f9c058280
[ 222.201400@2] x27: 0000000000000001 x26: 0000007f9c0582b0
[ 222.201403@2] x25: 0000000000000000 x24: 0000007f9c0580f0
[ 222.201406@2] x23: 0000007f9c058128 x22: 0000007fa37faf68
[ 222.201409@2] x21: 0000007f94c06830 x20: fffffffffffffff8
[ 222.201412@2] x19: 0000000000000000 x18: 0000007fa37fd950
[ 222.201415@2] x17: 0000007fa2e74a64 x16: 0000007fa2efda10
[ 222.201418@2] x15: 0000000000bdd800 x14: 0000000000000000
[ 222.201421@2] x13: 0000000000000000 x12: 0000000000000000
[ 222.201423@2] x11: 0000000000000000 x10: 0000000000000000
[ 222.201426@2] x9 : 0000000000000000 x8 : 0000000000000000
[ 222.201429@2] x7 : 0000000000000000 x6 : 0000007fa37fb080
[ 222.201437@2] x5 : 0000000000000000 x4 : 0000000000000001
[ 222.201440@2] x3 : 0000000000000800 x2 : 9c0452a00000007f
[ 222.201443@2] x1 : 0000007fa37faf68 x0 : 9c0452a00000007f
[ 222.201443@2]
[ 222.338835@0] aml_snd_m8_card aml_m8_snd.46: I2S playback disable
[ 222.344784@0] aml_snd_m8_card aml_m8_snd.46: IEC958 playback disable
[ 222.351234@0] codec:init_buf_spec2 3840 2160
[ 222.355310@0] codec:set pic_list_init_flag to 2
[ 222.356405@2] tv_vout: vout [tv_set_vframe_rate_end_hint] return mode = 10, policy = 1!
[ 222.356410@2] tv_vout: vout [framerate_automation_set_mode] mode_target = 10
[ 222.356438@2] fb: current vmode=720p60hz
[ 222.378818@0] codec:free_alloced_keep_buffer (null). (null). (null)
[ 222.387257@0] codec:video first pts = 0
[ 222.411199@0] codec:release cma begin
[ 222.416322@0] codec:release cma end
[ 222.416351@0] codec:uninit_buf_list, blackout 1 r1 buf_mode 1 r1 rel_cma_flag 1 hevc->predisp_addr 0 pre_alloc_addr(0, 0)
[ 222.425146@0] codec:uninit list
[ 222.441245@3] codec:hevc video changed to 0 x 0 0 fps clk->200MHZ
[ 222.442902@3] codec:adec_release
[ 222.444896@3] codec:video first pts = 0
[ 222.448743@3] aml_spdif_dai: share the same clock
[ 222.453517@3] aml_audio_hw: IEC958 16bit
[ 222.457218@3] hdmitx: audio: aout notify rate 48000
[ 222.462070@3] hdmitx: audio: aout notify size 16
[ 222.466616@3] hdmitx: audio: no update
Segmentation fault
#
Do you have something ready for Buildroot and GStreamer on VIM that could directly be used instead of debugging this?
Why do you have several U-Boot and Linux branches? Couldn’t you have a single branch using instead different defconfigs for Nougat and Ubuntu? Couldn’t this branch be identical to Amlogic’s with only the VIM board and DTS files added?
Is there any documentation describing the current branches and why one should choose one branch rather than another in order to get all the latest fixes and features? E.g., for Buildroot on VIM, should I use one of the Vim
/Nougat
/ubuntu
branches, or should I add support for the VIM to Amlogic’s U-Boot and Linux sources inside their Buildroot package? The ODROID-C2 is already in this package, so maybe you can ask Amlogic to add the VIM too.
Do you or Amlogic have any plans of mainlining S905X and VIM support (as complete as possible) into U-Boot, Linux, and Buildroot? That would be great and much faster than relying on the community to do it. Although Amlogic is working on Linux 4.9, their current stable version uses 3.14.29, though 3.14 is not longterm and its current iteration in mainline is 3.14.79.
By the way, the commit 2e7dc31cf2a8e3665e5c68ee03d177134b2c90ca
breaks the build in your ubuntu
branch of Linux with the toolchain that you recommend, because of this chunk:
diff --git a/lib/mpi/mpi-inline.h b/lib/mpi/mpi-inline.h
index e2b3985..3b176a5 100644
--- a/lib/mpi/mpi-inline.h
+++ b/lib/mpi/mpi-inline.h
@@ -30,7 +30,7 @@
#define G10_MPI_INLINE_H
#ifndef G10_MPI_INLINE_DECL
-#define G10_MPI_INLINE_DECL extern inline
+#define G10_MPI_INLINE_DECL inline
#endif
G10_MPI_INLINE_DECL mpi_limb_t
The build is fixed if this chunk is reverted.