OK6410A development board (three) 8 u-boot-2021.01 boot analysis SPL image running part

Publisher:ularof不加糖Latest update time:2022-09-23 Source: csdnKeywords:OK6410A Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

url : git@github.com:lisider/u-boot.git

branch : ok6410a

commit id : e63a4077ad3aea53107495b0b68b95e720fe6033

config : ok6410a_mini_defconfig

// There are 67 .S .s .c files involved


From the entrance to the exit

// Run at 0x0c00 0000

reset arch/arm/cpu/arm1176/start.S 39

lowlevel_init(108) board/samsung/ok6410a/lowlevel_init.S 72

_main(110) arch/arm/lib/crt0.S 91

board_init_f(117) board/samsung/ok6410a/ok6410a.c 266

debug_uart_init(271) include/debug_uart.h 193

_debug_uart_init(196) drivers/serial/s3c64xx_serial.c 315

board_init_r(177) common/spl/spl.c 589

spl_board_init(641) board/samsung/ok6410a/ok6410a.c 255

spl_boot_mmc(258) board/samsung/ok6410a/bl2_mmc_copy.c 18

mmc_bl2_copy(23) board/samsung/ok6410a/bl2_mmc_copy.c 7

CopyMovitoMem(HSMMC_CHANNEL, MOVI_BL2_POS, MOVI_BL2_BLKCNT, bl2_base, MOVI_INIT_REQUIRED)(13) arch/arm/mach-s3c64xx/include/mach/movi.h 25

bl2base(24) // Jump to u-boot image of u-boot

SPL standard process

reset arch/arm/cpu/arm1176/start.S 39

lowlevel_init(108) board/samsung/ok6410a/lowlevel_init.S 72

_main(110) arch/arm/lib/crt0.S 91

board_init_f(117) board/samsung/ok6410a/ok6410a.c 266

debug_uart_init(271) include/debug_uart.h 193

_debug_uart_init(196) drivers/serial/s3c64xx_serial.c 315

board_init_r(177) common/spl/spl.c 589

spl_board_init(641) board/samsung/ok6410a/ok6410a.c 255

memset(&spl_image, '', sizeof(spl_image)); // u-boot.img

spl_image.boot_device = 0xdeadbeef;

// Get the device type of u-boot.img

board_boot_order(spl_boot_list);

spl_boot_list[0] = spl_boot_device();

ok6410a_get_boot_device

// Get the loader function by device type

// Use loader function to load u-boot.img to ddr

boot_from_devices(&spl_image, spl_boot_list, (sizeof(spl_boot_list) / sizeof((spl_boot_list)[0])));

loader = spl_ll_find_loader(spl_boot_list[i]);

spl_load_image(spl_image, loader);

loader->load_image/spl_mmc_load_image

spl_mmc_load

...

spl_parse_image_header

spl_parse_legacy_header

spl_image->load_addr = image_get_load(header);

spl_image->entry_point = image_get_ep(header);

spl_image->size = image_get_data_size(header);

// If you need to patch, patch it quickly 

// For example, if there is a problem with your u-boot.img, the parsed entry_point is incorrect

//You need to reassign entry_point

// Usually null

spl_perform_fixups(&spl_image);

switch (spl_image.os) {

case IH_OS_U_BOOT:

break;

}

// Usually null

spl_board_prepare_for_boot

jump_to_image_no_args(&spl_image);

image_entry_noargs_t image_entry = (image_entry_noargs_t)spl_image->entry_point;

image_entry

Keywords:OK6410A Reference address:OK6410A development board (three) 8 u-boot-2021.01 boot analysis SPL image running part

Previous article:OK6410A development board (three) 9 u-boot-2021.01 boot analysis U-boot image running part bootcmd
Next article:OK6410A development board (three) 7 u-boot-2021.01 boot analysis u-boot and linux configuration part

Recommended ReadingLatest update time:2024-11-23 02:49

OK6410A development board (three) 19 u-boot-2021.01 boot analysis U-boot image running part driver model
General description In u-boot, DM is the overall function of uclass device driver and the three related functions uclass device driver related structures When the driver is defined, it is divided into XXX uclass according to its own id member. When a device is defined, its name member implicitly defines the cond
[Microcontroller]
U-Boot transplantation (1) Create a new corresponding directory and file for the development board
I'm very happy today. I finally successfully transplanted U-Boot. While doing it, I wrote down some steps with screenshots. . Now let me review the process slowly. .   1. Download U-Boot-1.1.6 from the official website, URL: http://sourceforge.net/projects/u-boot/. Then put it under Ubuntu's /work/ and unzip it. 2.
[Microcontroller]
U-Boot transplantation (1) Create a new corresponding directory and file for the development board
S3C2440 U-Boot transplantation--Norflash driver support-S29AL016
U-Boot version: 2008.10 Development board: Mini2440        I have been transplanting it based on Guoembedded's experimental manual for a long time without success. The key is that the Norflash model in Guoembedded's manual is SST1601, and my Mini2440 development board is configured with Spansion's S29AL016J chip. The
[Microcontroller]
OK6410A Development Board (VIII) 42 linux-5.11 OK6410A vmalloc alloc and free
vmalloc initialization process The fifth stage establishes vmalloc Lifetime of vmalloc After vmalloc_init is completed - no end The size of memory managed by vmalloc It can be said that all the memory managed by buddy How to use vmalloc alloc vmalloc vmalloc __vmalloc_node __vmalloc_node_range struct vm_st
[Microcontroller]
OK6410A development board (eight) 111 linux-5.11 OK6410A tmpfs file system CONFIG_SHMEM=y & CONFIG_TMPFS=n
Public part ▼ variables    -shm_mnt ▼ functions    -__shmem_file_setup(struct vfsmount *mnt, const char *name, loff_t size, unsigned long flags, unsigned int i_flags)     shmem_file_setup(const char *name, loff_t size, unsigned long flags)     shmem_file_setup_with_mnt(struct vfsmount *mnt, const char *name, loff_t
[Microcontroller]
OK6410A Development Board (VIII) 116 linux-5.11 OK6410A User Space Virtual Memory Layout
The user space virtual memory layout of different architectures is different, taking arm as an example The user space actually starts at 0x10 000, and from low to high there are code segment, data segment, heap, and stack User space range is 1000 -beff ffff vdso stack sigpage heap-mmap-ld libc heap-brk Data segmen
[Microcontroller]
Latest Microcontroller Articles
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号