Page 5 of 6
Re: LE40C750 bootloader disassembly thread
Posted: Wed Nov 24, 2010 9:58 am
by rvs2
probutus wrote:
Is it possible to download the mips based bootloader binary from somewhere?
Yes, I have written private message.
http://rapidshare.com/files/432785857/Boot.rar
Is the crypto calculation in the MIPS system also done in hardware or in software?
As well as in ?750 with little changes.
is this system based on a BCM7601 chipset?
1. TridentSX Pro - MIPS be, firmware T-TDT5xxxx. C550/C530
2. Saturn 7 - MIPS le, firmware T-MSX5xxxx. C550/C530
3. Cortex-A8/Valencia ARMv7 firmware T-VALDxxxx C650/C750
Re: LE40C750 bootloader disassembly thread
Posted: Wed Nov 24, 2010 7:12 pm
by arris69
rvs2 wrote:...
2. Saturn 7 - MIPS le, firmware T-MSX5xxxx. C550/C530
..
LE ??
from where do you have this information?
thnx
arris
Re: LE40C750 bootloader disassembly thread
Posted: Thu Nov 25, 2010 8:19 am
by rvs2
arris69 wrote:rvs2 wrote:...
2. Saturn 7 - MIPS le, firmware T-MSX5xxxx. C550/C530
..
LE ??
from where do you have this information?
thnx
arris
le - little-endian
be - big-endian
The information from source codes from Samsung.
Re: LE40C750 bootloader disassembly thread
Posted: Fri Nov 26, 2010 1:42 pm
by rvs2
probutus wrote:Hi rvs2,
I had a very first very short look at your bootloader and it seems that you have usb and ethernet support in your bootloader available
Yes I too saw, but to find a combination of conditions what it have earned I can not yet.
But here there is such code.
Code: Select all
#define SBOOT_NOT_NORMAL 0xBAB0BAB0
#define SBOOT_NORMAL 0xFAFEF0F0
if (cmackey.magic == SBOOT_NORMAL)
{
// ECB need 4 bytes aligned
SCU_PRINTK("N_BOOT\n");
Trid_Securekey_AES_ECB_Dec( (unsigned int) cmackey.key, SZ_AES_UNIT, (unsigned int) mkey, (unsigned int *) &outLength);
}
else if(cmackey.magic == SBOOT_NOT_NORMAL)
{
SCU_PRINTK("F_BOOT\n");
Trid_Masterkey_AES_ECB_Enc( (unsigned int) cmackey.key, SZ_AES_UNIT, (unsigned int) mkey, (unsigned int *)&outLength);
}
else
{
aes_stop();
Exception_from_authuld("No correct flag\n");
do_exit(0); // for development version. Exception_from_authuld() is the ending point in release version
}
uboot_open_flag = 0;
for(i=0;i<3;i++)
{
if( (fd=sys_open(CONFIG_AUTHULD_PATH, O_RDONLY, 0 ) )>= 0 )
{
SCU_PRINTK("Now ready (after=%d) \n", i);
SCU_PRINTK("---------------------------------\n");
sys_close(fd);
uboot_open_flag = 1;
break;
}
msleep(10);
}
if( uboot_open_flag == 0 )
{
aes_stop();
Exception_from_authuld("Unable to open Auth\n");
do_exit(0); // for development version. Exception_from_authuld() is the ending point in release version
}
if(check_ci_app_integrity_with_size(mkey, CONFIG_AUTHULD_PATH, macList.msgLen, macList.mac) == 0 )
{
aes_stop(); // Call aes_stop() after send_to_authuld(). get_rand() is a function of libaes.a
// don't increase booting time by loading.
ssleep(15);
nonce = send_to_authuld();
SCU_PRINTK("Auth run\n");
pid = kernel_thread(execute_authuld,NULL,CLONE_FS|CLONE_SIGHAND|SIGCHLD);