More ... ![]() |
*update every hour
u-boot DDR mods ~
License: MIT License
copy/paste from my old reply for John via email (07.02.2019). Just for future questions. Enjoy.
...
The build of u-boot really depends on specific board. Some manufacturer even loves adding some strange or even incompatible components for their boards. Especially lot of devices on Aliexpress.This is why I started inspecting of my M9S-PRO that really has a 3G / 32G modules in datasheet (kmr21000bm-b809 & thgbmbg8d4kbair).
However, architecture of ARM 64bit s905(not s905x) officially does not provide support for addressing more than 2G! And for that period I just started searching why is so because I was looking an 16-bit DRAM bus width which meant multiplexing anyway for this 2G. My thoughts was like ~ can I programmatically avoid some restriction. Or what's going here.
One of the problems I got incompatible u-boot for my device from any compatible configuration when compiling from src that I presented in github/3F
I already mentioned in Readme about ddrpara and executable sequence for AML. Maybe this board just requires some specific key/sequence. But any attempts were failed to execute my compiled u-boot :(
About how to build I wrote in Build section (toolset and commands there).Some changing of some params also failed. But the one BL2 pass was only for enabled .pxp emulator(same instruction from the s905 processor). So I'm still confused.
Thus, I just modified directly binary u-boot from my device with changed executable sequence for AML.For my case it was enough, because I inspected binary structure for changing some params for only RAM initialization.
As result, I mapped 3Gb that I can finally write now and correctly read even for s905! See readme.However, I'm still not sure because of strangeness with speed. Moreover, I also need to patch kernel after this changes.
But I have no time and plans to continue this for today, thus I just dropped some notes about some moments, as you can see in https://github.com/3F/aml_s905_uboot
...
aml_sdc_burn.zip
Пытаюсь повторить Ваш путь. mkdir out & AmlImagePack -d u-boot_2G__3F__-_h224_v2.01_gxb_g4fcf8d0_aarch64.img out
но застреваю на, AmlImagePack команда не найдена.
Суть проблемы, прописать другую память.
I tried to build my own bootloader with the official tooltrain buildroot from amlogic and the tool did generate a bunch of images : u-boot.bin , ... , aml_upgrade_package.img , ...etc.
But when I tried to burn the aml_upgrade_package.img with USB_Burning_Tool , the process stops at 1% with error :
[0x10103005]Romcode/initialize DDR/download data/reading image failed
Then I tried the step-by-step way described at Stane1983/aml-linux-usb-burn#1 ,
but the process stops at the following command :
.\update.exe write C:\webrtc_doc\s905_doc\build_armbian\buildroot_3_14_29\original_images\u-boot.bin.usb.tpl 0x200c000
usbWriteFile len=4096,ret=-5 error_msg=libusb0-dll:err [submit_async] submitting request failed, win error: target does not work.
ERR: write data to device failed
I wonder if one of the following files does not match my TV box :
u-boot.bin.usb.bl2 ( DDR ) ---- built with the builroot toolchain
u-boot.bin.usb.tpl ( UBOOT) ---- built with the builroot toolchain
usbbl2runpara_ddrinit.bin --- download from https://github.com/khadas/utils/tree/master/aml-flash-tool/tools
usbbl2runpara_runfipimg.bin
Is there any way to retrieve the above parameters/packages from the original bootloader ( dumped with dd command ) ?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.