Absolute call adresses in S8000XPIJ7 firmware

Bootloader development related

Absolute call adresses in S8000XPIJ7 firmware

Postby Dopi » Tue Nov 16, 2010 1:35 pm

Dear all,

for anyone interested in porting the JetQi bootlaoder to a new firmware here is a short list of function calls that are used in the current JetQi version for S8000XPIJ7.

First some core snipplets from various parts of the source:

src/cpu/s3c6410/pre_start.S
Code: Select all
/*
* Long Distance Jumps
*/



adr_more_GPIO_setup: .word 0x514029b0
jump_more_GPIO_setup:
ldr pc, adr_more_GPIO_setup

adr_SelectBootingMode: .word 0x51402B90
jump_SelectBootingMode:
ldr pc, adr_SelectBootingMode

adr_sub_514152F8: .word 0x514152F8
jump_sub_514152f8:
ldr pc, adr_sub_514152F8

adr_sub_51417f24: .word 0x51417f24
jump_sub_51417f24:
ldr pc, adr_sub_51417f24

adr_sub_51417fa0: .word 0x51417fa0
jump_sub_51417fa0:
ldr pc, adr_sub_51417fa0

adr_sub_5141804c: .word 0x5141804c
jump_sub_5141804c:
ldr pc, adr_sub_5141804c

adr_PMIC_LUT1_write: .word 0x51419D64
jump_PMIC_LUT1_write:
ldr pc, adr_PMIC_LUT1_write

adr_PMIC_LUT1_read: .word 0x51419DA0
jump_PMIC_LUT1_read:
ldr pc, adr_PMIC_LUT1_read

adr_PMIC_LUT2_write: .word 0x51419C90
jump_PMIC_LUT2_write:
ldr pc, adr_PMIC_LUT2_write

adr_PMIC_LUT2_read: .word 0x51419d0c
jump_PMIC_LUT2_read:
ldr pc, adr_PMIC_LUT2_read

adr_PMIC_set_reg_SRAMEN_MVTEN_LDOAEN: .word 0x5141AF20
jump_PMIC_set_reg_SRAMEN_MVTEN_LDOAEN:
ldr pc, adr_PMIC_set_reg_SRAMEN_MVTEN_LDOAEN

adr_sub_51430f80: .word 0x51430f80
jump_sub_51430f80:
ldr pc, adr_sub_51430f80

adr_GPIO_LUT_sub_A: .word 0x51438078
jump_GPIO_LUT_sub_A:
ldr pc, adr_GPIO_LUT_sub_A

adr_GPIO_LUT_sub_B: .word 0x514380F8
jump_GPIO_LUT_sub_B:
ldr pc, adr_GPIO_LUT_sub_B

adr_GPIO_LUT_sub_C: .word 0x51438160
jump_GPIO_LUT_sub_C:
ldr pc, adr_GPIO_LUT_sub_C

adr_GPIO_LUT_sub_D: .word 0x514381C4
jump_GPIO_LUT_sub_D:
ldr pc, adr_GPIO_LUT_sub_D



src/cpu/s3c6410/boot_loader_interface.c
Code: Select all

/*
* Long Distance Jumps
*/

void jump_OneNAND_Init (void)
{
asm volatile (
"ldr pc, adr_OneNAND_Init\n\t"
"adr_OneNAND_Init: .word 0x51401C3C\n\t"
);
}

void jump_LaunchNucleus (void)
{
asm volatile (
"ldr pc, adr_LaunchNucleus\n\t"
"adr_LaunchNucleus: .word 0x514023A8"
);
}

void jump_Baseband_Init (void)
{
asm volatile (
"stmfd sp!, {r1-r4,lr}\n\t"
"ldr r0, adr_Baseband_Init\n\t"
"blx r0\n\t"
"ldmfd sp!, {r1-r4,pc}\n\t"
"adr_Baseband_Init: .word 0x5141983C"
);
}

void jump_LCD_InitWin (void)
{
asm volatile (
"ldr pc, adr_LCD_InitWin\n\t"
"adr_LCD_InitWin: .word 0x51401B28"
);
}

void jump_LCD_clear_screen (void)
{
asm volatile (
"ldr pc, adr_LCD_clear_screen\n\t"
"adr_LCD_clear_screen: .word 0x5141847C"
);
}

void jump_Samsung_boot_logo (void)
{
asm volatile (
"ldr pc, adr_Samsung_boot_logo\n\t"
"adr_Samsung_boot_logo: .word 0x51418498"
);
}

void jump_LCD_blue_screen (void)
{
asm volatile (
"ldr pc, adr_LCD_blue_screen\n\t"
"adr_LCD_blue_screen: .word 0x5141864C"
);
}

void jump_LCD_print (void)
{
asm volatile (
// "ldr pc, adr_LCD_print\n\t"
"stmfd sp!, {r0-r4,lr}\n\t"
"ldr r4, adr_LCD_print\n\t"
"blx r4\n\t"
"ldmfd sp!, {r0-r4,pc}\n\t"
"adr_LCD_print: .word 0x514182D4\n\t"
);
}

void jump_MSG_UPLOAD_data_to_pc (void)
{
asm volatile (
"ldr pc, adr_MSG_UPLOAD_data_to_pc\n\t"
"adr_MSG_UPLOAD_data_to_pc: .word 0x5141852C"
);
}



Here are is the is the list of all call adresses
  • 0x51401B28 LCD_InitWin
  • 0x51401C3C OneNAND_Init
  • 0x514023A8 LaunchNucleus
  • 0x514029b0 more_GPIO_setup
  • 0x51402B90 SelectBootingMode
  • 0x514152F8 sub_514152F8
  • 0x51417f24 sub_51417f24
  • 0x51417fa0 sub_51417fa0
  • 0x5141804c sub_5141804c
  • 0x514182D4 LCD_print
  • 0x5141847C LCD_clear_screen
  • 0x51418498 Samsung_boot_logo
  • 0x5141852C MSG_UPLOAD_data_to_pc (NOT USED)
  • 0x5141864C LCD_blue_screen (NOT USED)
  • 0x51419D64 PMIC_LUT1_write
  • 0x51419DA0 PMIC_LUT1_read
  • 0x51419C90 PMIC_LUT2_write
  • 0x51419d0c PMIC_LUT2_read
  • 0x5141AF20 PMIC_set_reg_SRAMEN_MVTEN_LDOAEN
  • 0x5141983C Baseband_Init
  • 0x51430f80 sub_51430f80
  • 0x51438078 GPIO_LUT_sub_A
  • 0x514380F8 GPIO_LUT_sub_B
  • 0x51438160 GPIO_LUT_sub_C
  • 0x514381C4 GPIO_LUT_sub_D

I hope this is useful for anyone.

Cheers,
Dopi
Ad banners support the JetDroid forum. Please consider clicking them once in a while.
User avatar
Dopi
Dev Team
Dev Team
 
Posts: 926
Joined: Sun Aug 22, 2010 9:47 pm

Advertisement

       

Return to JetQi

Who is online

Users browsing this forum: No registered users and 1 guest

  • Advertisement
cron