U-boot sources from c series find how to cross-compile it?

Support for C series TVs that all user could ask. Please do not ask a questions at other forums.

Mkò
Posts: 199
Joined: Fri Jul 29, 2011 2:34 pm

U-boot sources from c series find how to cross-compile it?

Post by Mkò »

Hi to all developer i found uboot sources for c series tv and i download the cross-compile environment from svn but i don't know how to cross-compile can somebody help me?
another question i have source only for uboot is the onboot sources needed too or not?
my idea is to cross compile uboot from sources then calculate proper hash with the tool that are available here and then flash it to my tv with bml.restore.
User avatar
juusso
SamyGO Moderator
Posts: 10129
Joined: Sun Mar 07, 2010 6:20 pm

Re: U-boot sources from c series find how to cross-compile i

Post by juusso »

1. onboot is locked on C series, and you can`t overwrite it. It has write protection, probably cotrolled trough GPIO pins. Here are some ideas to unlock it by removing some resistors on mainboard, but we don`t know which and if it is right way at all.
2. u-boot partition is empty and even you compile uboot, we don`t know if code to enter u-boot isn`t removed from onboot. Means - same as on B series CI+ devices - here is no pause to hit any key to stop autoboot left. As result - no entry to uboot promt.
Another danger here - IF u-boot partition is being checked during start, changing it can lead in to the brick. Okey, this is less possible, but you have to keep in mind this kind of brick.
3. you need flash not only u-boot to /bml0/2, but also proper uboot.env to /bml0/3 and uboot tools to /bml0/4.
4. For E series you can compile using toolchain from svn

Code: Select all

svn checkout svn://svn.code.sf.net/p/samygo/code/develop/toolchains/T-VAL
or from samsung opensource (arm_v7_vfp_le_20091117)
LE40B653T5W,UE40D6750,UE65Q8C
Have questions? Read SamyGO Wiki, Search on forum first!
FFB (v0.8), FFB for CI+ . Get root on: C series, D series, E series, F series, H series. rooting K series, exeDSP/exeTV patches[C/D/E/F/H]

DO NOT EVER INSTALL FIRMWARE UPGRADE
Mkò
Posts: 199
Joined: Fri Jul 29, 2011 2:34 pm

Re: U-boot sources from c series find how to cross-compile i

Post by Mkò »

juuso wrote:onboot is locked on C series, and you can`t overwrite it.
So i can overwrite only uboot to bypass this problem right?
the protection of the onboot is the otp lock of service menu?any research about the otp lock of service menu?maybe change the otp lock from 1 to 0 o from 0 to one in service menu can disable this lock or not? i think need more research.
I've find the uboot sources in le40c630.tar.gz.
I also find that the c series is also called Aquila and in one file "dtv_bml_aquila" from onboot-src-Firenze2011.tgz there is such a map of partitions and loader. so maybe the onboot of firenze platfrom works for valencia too...? or not? confusing.
i have the sources from c series and the toolchain downloaded friom samygo svn.
but i need some hint to cross comiple the sources that i've.
User avatar
juusso
SamyGO Moderator
Posts: 10129
Joined: Sun Mar 07, 2010 6:20 pm

Re: U-boot sources from c series find how to cross-compile i

Post by juusso »

First check if your compiler works. Compile kernel and modules from defconfig....
LE40B653T5W,UE40D6750,UE65Q8C
Have questions? Read SamyGO Wiki, Search on forum first!
FFB (v0.8), FFB for CI+ . Get root on: C series, D series, E series, F series, H series. rooting K series, exeDSP/exeTV patches[C/D/E/F/H]

DO NOT EVER INSTALL FIRMWARE UPGRADE
Mkò
Posts: 199
Joined: Fri Jul 29, 2011 2:34 pm

Re: U-boot sources from c series find how to cross-compile i

Post by Mkò »

juuso wrote:First check if your compiler works. Compile kernel and modules from defconfig....
ok i'm trying to use the info that you post here ->viewtopic.php?f=49&t=5999
so i get the toolchain for c series from svn
i copy it to opt dir
I download the sources UE32C6500 (Now i don't know why now the sources for c series are all missing from oss site... ... ... :shock: )
but of course i can't find "VDLinux_2.6.35.11.tgz" so i use the file Linux.tgz that i think is same as "VDLinux_2.6.35.11.tgz" and as you say i extract it to /opt/src/ but now i'm stuck because i don't know what file i have to copy to the root of toolchain
(my toolchain is arm_v7_vfp_le_20091117 so i have to copy the file in this dir right?) my tv is valencia aquila and in /opt/src/linux/arch/arm/configs/i find the file aquila_defconfig is this the file that i've to copy to the root of toolchain?
can you explain these steps
"and copy default config for your kernel to root of sources and rename it to .config

Code: Select all
cp -ar arch/arm/configs/X10P_defconfig_release .config
cp -ar arch/arm/configs/X10P_defconfig_release .config.old


4. export path to your compilers bin dir (or add to ~/.bashrc at the end), re-open terminal to use new path.

Code: Select all
export PATH=$PATH:/opt/VDLinux-arm-v7a8v2r2/bin"
sbav1
Official SamyGO Developer
Posts: 374
Joined: Fri Jan 15, 2010 10:20 am

Re: U-boot sources from c series find how to cross-compile i

Post by sbav1 »

Mk? wrote:my tv is valencia aquila and in /opt/src/linux/arch/arm/configs/i find the file aquila_defconfig is this the file that i've to copy to the root of toolchain?
Yes - however there is really no guarantee this exact kernel config file is actually fully appropriate for your particular TV model. Usually there are at least two config files for given platform (*_debug and *_release) and sometimes the (proper) .config file allready exists in root directory. But never mind, it should be good enough for test purposes.
can you explain these steps
"and copy default config for your kernel to root of sources and rename it to .config

Code: Select all
cp -ar arch/arm/configs/X10P_defconfig_release .config
cp -ar arch/arm/configs/X10P_defconfig_release .config.old
Samsung doesn't really believe in due diligence while creating those instructions; they just copy & paste some text fragments from previously created "howto" files, often intended for completely different platforms/models.
User avatar
juusso
SamyGO Moderator
Posts: 10129
Joined: Sun Mar 07, 2010 6:20 pm

Re: U-boot sources from c series find how to cross-compile i

Post by juusso »

I think I have default config for Valencia...
LE40B653T5W,UE40D6750,UE65Q8C
Have questions? Read SamyGO Wiki, Search on forum first!
FFB (v0.8), FFB for CI+ . Get root on: C series, D series, E series, F series, H series. rooting K series, exeDSP/exeTV patches[C/D/E/F/H]

DO NOT EVER INSTALL FIRMWARE UPGRADE
Mkò
Posts: 199
Joined: Fri Jul 29, 2011 2:34 pm

Re: U-boot sources from c series find how to cross-compile i

Post by Mkò »

sbav1 wrote:
Mk? wrote:my tv is valencia aquila and in /opt/src/linux/arch/arm/configs/i find the file aquila_defconfig is this the file that i've to copy to the root of toolchain?
Yes - however there is really no guarantee this exact kernel config file is actually fully appropriate for your particular TV model. Usually there are at least two config files for given platform (*_debug and *_release) and sometimes the (proper) .config file allready exists in root directory. But never mind, it should be good enough for test purposes.
can you explain these steps
"and copy default config for your kernel to root of sources and rename it to .config

Code: Select all
cp -ar arch/arm/configs/X10P_defconfig_release .config
cp -ar arch/arm/configs/X10P_defconfig_release .config.old
Samsung doesn't really believe in due diligence while creating those instructions; they just copy & paste some text fragments from previously created "howto" files, often intended for completely different platforms/models.
right the info0 provided by sam sucks...
the problem is that i'm confusing with all these infos...
I have

Code: Select all

/opt/arm_v7_vfp_le_20091117$ ls -la
drwxrwxr-x  4 root root  4096 ago 13 11:53 armv7fl-montavista-linux-gnueabi
drwxrwxr-x  2 root root  4096 ago 13 12:04 bin
drwxrwxr-x  6 root root  4096 ago 13 11:53 doc
drwxrwxr-x  2 root root  4096 ago 13 11:53 include
drwxrwxr-x  2 root root  4096 ago 13 12:07 info
drwxrwxr-x  3 root root  4096 ago 13 11:53 lib
drwxrwxr-x  4 root root  4096 ago 13 12:07 man
drwxrwxr-x  3 root root  4096 ago 13 11:53 share
drwxrwxr-x  7 root root  4096 ago 13 12:03 target
drwxrwxr-x  5 root root  4096 ago 13 12:07 testsuite
download from samygo svn and copy to opt
UE32C6500.zip that i think are sources form my tv
and in it are:
UE32C6500$ ls -la
drwxrwxr-x 2 mk mk      4096 ago 18 13:33 .
drwxr-xr-x 5 mk mk      4096 ago 18 13:33 ..
-rw-rw-r-- 1 mk mk 162665325 apr 30  2010 arm_v7_vfp_le_20091117.tgz
-rw-rw-r-- 1 mk mk      6019 ott 27  2010 HOW_TO_BUILD.txt
-rw-rw-r-- 1 mk mk    614233 mag 27  2010 iptables-1.4.3.2.tgz
-rw-rw-r-- 1 mk mk  23600512 giu  1  2010 LGPL_ffmpeg.tgz
-rw-rw-r-- 1 mk mk   4857224 apr 30  2010 LGPL_LIBGPHOTO2.tar.gz
-rw-rw-r-- 1 mk mk    411929 apr 30  2010 LGPL_LIBUSB.tar.gz
-rw-rw-r-- 1 mk mk   2439694 giu  1  2010 LGPL_mms.tgz
-rw-rw-r-- 1 mk mk    595062 giu  1  2010 LGPL_SDL.tar.gz
-rw-rw-r-- 1 mk mk    196258 giu  1  2010 LGPL_smpeg.tar.gz
-rw-rw-r-- 1 mk mk    616842 mag 27  2010 libthai-0.1.6.tar.gz
-rw-rw-r-- 1 mk mk  64415294 giu  1  2010 linux.tgz
-rw-rw-r-- 1 mk mk   2237752 apr 30  2010 selp_busybox-1.6.0-7.0.10.tgz
-rw-rw-r-- 1 mk mk  18157443 apr 30  2010 selp_cross-binutils-2.17.50-10.0.19.tgz
-rw-rw-r-- 1 mk mk  27484927 apr 30  2010 selp_glibc-2.5.90-19.0.53.tgz
-rw-rw-r-- 1 mk mk    401953 mag 27  2010 wireless_tools.29.tgz
-r--r--r-- 1 mk mk   1282639 feb 19  2010 xfsprogs-3.0.5.0124.tgz
no "VDLinux_2.6.35.11.tgz" in ue32c6500 so what VDLinux i have to use for ue32c6500?
in sources ue32c6500 i find linux.tgz and in it are:

Code: Select all

UE32C6500/linux$ ls -la
drwxr-xr-x 24 mk mk  4096 ago 18 15:55 .
drwxrwxr-x  3 mk mk  4096 ago 18 15:55 ..
drwxr-xr-x 26 mk mk  4096 ago 18 15:55 arch
drwxr-xr-x  2 mk mk  4096 ago 18 15:55 block
-rw-r--r--  1 mk mk 29460 giu  1  2010 .config
-r-xr--r--  1 mk mk 18693 mag 18  2009 COPYING
-r-xr--r--  1 mk mk 92230 mag 18  2009 CREDITS
drwxr-xr-x  3 mk mk  4096 ago 18 15:55 crypto
drwxr-xr-x 70 mk mk 12288 ago 18 15:55 Documentation
drwxr-xr-x 80 mk mk  4096 ago 18 15:55 drivers
drwxr-xr-x 67 mk mk  4096 ago 18 15:55 fs
-r-xr--r--  1 mk mk   628 mar 15  2010 .gitignore
drwxr-xr-x 43 mk mk  4096 ago 18 15:55 include
drwxr-xr-x  2 mk mk  4096 ago 18 15:55 init
drwxr-xr-x  2 mk mk  4096 ago 18 15:55 ipc
-r-xr--r--  1 mk mk  1596 mag 18  2009 Kbuild
drwxr-xr-x  6 mk mk  4096 ago 18 15:55 kernel
drwxr-xr-x  2 mk mk  4096 mar 13  2010 koS
drwxr-xr-x  7 mk mk  4096 ago 18 15:55 lib
-r-xr--r--  1 mk mk    12 mag 21  2009 localversion
-r-xr--r--  1 mk mk    11 mag 21  2009 localversion-mvl
drwxr-xr-x  3 mk mk  4096 ago 18 15:55 ltt
-r-xr--r--  1 mk mk  3657 mar 15  2010 .mailmap
-r-xr--r--  1 mk mk 94441 mag 18  2009 MAINTAINERS
-rwxr--r--  1 mk mk 54559 mag  1  2010 Makefile
-rw-r--r--  1 mk mk   194 ago 31  2009 mkcscope.sh
drwxr-xr-x  2 mk mk  4096 ago 18 15:55 mm
-r-xr--r--  1 mk mk  3375 mag 18  2009 Module.markers
-r-xr--r--  1 mk mk    15 mar 15  2010 .mvl_cross_compile
drwxr-xr-x  2 mk mk  4096 ago 18 15:55 mvl_patches
-r-xr--r--  1 mk mk     4 mar 15  2010 .mvl_target_cpu
-r-xr--r--  1 mk mk    14 mar 15  2010 .mvl_target_installdir
drwxr-xr-x 42 mk mk  4096 ago 18 15:55 net
drwxr-xr-x  2 mk mk  4096 ago 18 15:55 patched
-r-xr--r--  1 mk mk 16930 mag 18  2009 README
-r-xr--r--  1 mk mk  3119 mag 18  2009 REPORTING-BUGS
drwxr-xr-x  3 mk mk  4096 ago 18 15:55 samples
drwxr-xr-x  9 mk mk  4096 ago 18 15:55 scripts
drwxr-xr-x  4 mk mk  4096 ago 18 15:55 security
drwxr-xr-x 20 mk mk  4096 ago 18 15:55 sound
drwxr-xr-x  2 mk mk  4096 ago 18 15:55 usr

Code: Select all

UE32C6500/linux/arch/arm/configs$ ls
ams_delta_defconfig      ixp2000_defconfig            omap_h3_1710_defconfig
aquila_defconfig         ixp23xx_defconfig            omap_h4_2420_defconfig
assabet_defconfig        ixp4xx_defconfig             omap_innovator_1510_defconfig
at91rm9200dk_defconfig   jornada720_defconfig         omap_innovator_1610_defconfig
at91rm9200ek_defconfig   kafa_defconfig               omap_ldp_defconfig
at91sam9260ek_defconfig  kb9202_defconfig             omap_osk_5912_defconfig
at91sam9261ek_defconfig  ks8695_defconfig             omap_perseus2_730_defconfig
at91sam9263ek_defconfig  lart_defconfig               onearm_defconfig
at91sam9rlek_defconfig   lpd270_defconfig             palmte_defconfig
ateb9200_defconfig       lpd7a400_defconfig           palmtt_defconfig
badge4_defconfig         lpd7a404_defconfig           palmz71_defconfig
carmeva_defconfig        lubbock_defconfig            picotux200_defconfig
cerfcube_defconfig       lusl7200_defconfig           pleb_defconfig
clps7500_defconfig       mainstone_defconfig          pnx4008_defconfig
cm_x270_defconfig        mx1ads_defconfig             pxa255-idp_defconfig
collie_defconfig         n770_defconfig               realview_defconfig
corgi_defconfig          n800_defconfig               realview-smp_defconfig
csb337_defconfig         neponset_defconfig           rpc_defconfig
csb637_defconfig         netwinder_defconfig          s3c2410_defconfig
ebsa110_defconfig        netx_defconfig               SELP.4.3.x.beagle.nfs.config
edb7211_defconfig        ns9xxx_defconfig             SELP.4.3.x.omap3530.nfs.config
em_x270_defconfig        omap_2430osk_defconfig       SELP.4.3.x.omap3530.prevent.config
ep93xx_defconfig         omap_2430sdp_defconfig       SELP.4.3.x.valencia.def.config
footbridge_defconfig     omap_3430sdp_defconfig       shannon_defconfig
fortunet_defconfig       omap_3530evm_defconfig       shark_defconfig
h3600_defconfig          omap3_beagle_defconfig       simpad_defconfig
h7201_defconfig          omap3_evm_defconfig          spitz_defconfig
h7202_defconfig          omap_apollon_2420_defconfig  sx1_defconfig
hackkit_defconfig        omap_generic_1510_defconfig  trizeps4_defconfig
integrator_defconfig     omap_generic_1610_defconfig  versatile_defconfig
iop13xx_defconfig        omap_generic_1710_defconfig  zylonite_defconfig
iop32x_defconfig         omap_generic_2420_defconfig
iop33x_defconfig         omap_h2_1610_defconfig
so i don't know i have to use aquila_defconfig or SELP.4.3.x.valencia.def.config ?
Sbav i don't find *_debug and *_release
User avatar
juusso
SamyGO Moderator
Posts: 10129
Joined: Sun Mar 07, 2010 6:20 pm

Re: U-boot sources from c series find how to cross-compile i

Post by juusso »

I bet for valencia
LE40B653T5W,UE40D6750,UE65Q8C
Have questions? Read SamyGO Wiki, Search on forum first!
FFB (v0.8), FFB for CI+ . Get root on: C series, D series, E series, F series, H series. rooting K series, exeDSP/exeTV patches[C/D/E/F/H]

DO NOT EVER INSTALL FIRMWARE UPGRADE
sbav1
Official SamyGO Developer
Posts: 374
Joined: Fri Jan 15, 2010 10:20 am

Re: U-boot sources from c series find how to cross-compile i

Post by sbav1 »

Mk? wrote: So i can overwrite only uboot to bypass this problem right?
Not likely, because the primary bootloader (onboot) flashed in "production" models usually does not contain the code fragments needed for loading uboot (== secondary bootloader) - for that function to work, you will probably need onboot recompiled with DEVEL/DEBUG #define[s] enabled. At least that's how the things are in later models (D-Series and up). In Valencia/Aquila C-series models it may be different, but I find it rather doubtful.
the protection of the onboot is the otp lock of service menu?
Once the OTP lock protection is applied to OneNAND/FlexNAND boot block[s], it is (by design) basically irreversible (generally speaking; perhaps there are some clever workarounds etc., but I'm not aware of any). Regarding an option in service menu called "OTP lock" - I don't know what it does exactly in this model; there are 4 possibilities:
1) It does enable (most likely permanent) OTP lock on flash boot block[s],
2) It checks & displays if the boot block is locked or not,
3) It doesn't do anything at all (quite an common occurence for various service menu options in Samsung TV & BDP gear),
4) It may be not intended for OneNAND/FlexNAND flash boot area at all; there are other one-time-programmable subsystems in SDP92 SoC, not to mention the other onboard chips.

BTW, there was some kind of tool (fsr*boot*, fsr*util*, fsr*tool* ?) or something like that in B650 models, it has the command line switch to check if the NAND boot area OTP lock is indeed enabled or not. It may be worth to check if it is actually locked or not in your TV - I'm not quite sure this lock was enabled by default in all C-series models (at least not originally). But better be careful with it - AFAIRC, the same utility was used to enable the permanent OTP lock (with different command line switch).
I've find the uboot sources in le40c630.tar.gz.
Is it uboot.tgz, 4 259 723 bytes long? If yes, I have some serious doubts if this is a proper uboot release for Valencia C-series. It looks like an uboot for much older (pre B-Series) Samsung Bayhill/SDP76 platform.
I also find that the c series is also called Aquila and in one file "dtv_bml_aquila" from onboot-src-Firenze2011.tgz there is such a map of partitions and loader. so maybe the onboot of firenze platfrom works for valencia too...?
Extremely unlikely. While there are numerous references to SDP92 (Valencia) in Firenze 2011 onboot sources, it's just because Firenze onboot was not written from the scratch, developers reused many code fragments from previous/different versions. This thing has a complicated ancestry, it borrows from armboot/uboot code itself, linux kernel mmc drivers etc.

BTW: I can't find "dtv_bml_aquila" file anywhere in Firenze 2011 onboot sources (?). There were two (slightly different) releases of this code from Samsung I'm aware of; perhaps you have some different version?

Post Reply

Return to “[C] Support”