About the origin of 6410 Development Board Linux memory address 0Xc0008000

Source: Internet
Author: User

You can see from the 6410 Data Manual that the memory start address should be 0x50000000, while the Linux kernel loaded by U-boot is loaded to 0xC0008000 during the use of the real6410 Development Board, I guess (I have not read the code to verify the speculation) this is because the Linux Startup kernel address is 0xC0008000, and U-boot also maps the memory to keep consistent with Linux, easy to use. Next, let's take the kernel 2.6.28 as an example to see the origin of this memory address in Linux. First, check the startup code arch/arm/kernel/head. S 29 # define KERNEL_RAM_VADDR (PAGE_OFFSET + TEXT_OFFSET) // defines the virtual memory first address 30 # define KERNEL_RAM_PADDR (PHYS_OFFSET + TEXT_OFFSET) // define the source code of the actual physical memory address PAGE_OFFSET arch/arm/include/asm/memory. c 27 # ifdef CONFIG_MMU 28 29/* 30 * PAGE_OFFSET-the virtual address of the start of the kernel image 31 * TASK_SIZE-the maximum size of a user space task. 32 * TASK_UNMAPPED_BASE-th E lower boundary of the mmap VM area 33 */34 # define PAGE_OFFSET UL (CONFIG_PAGE_OFFSET) Code include/linux/autoconf. h # define CONFIG_PAGE_OFFSET 0xc0000000 PHYS_OFFSET code arch/arm/mach-s3c6400/include/mach/memory. h // memory settings related to the 6400 platform # define PHYS_OFFSET UL (0x50000000) TEXT_OFFSET is defined in arch/arm/Makefile. This value is the actual offset of the kernel location, for more information about this value, see arch/arm/kernel/head. s. 38/* 39 * swapper_pg_dir is the virtual address of the initial page table. 40 * We place the page tables 16 K below KERNEL_RAM_ADDR. therefore, we must 41 * make sure that KERNEL_RAM_ADDR is correctly set. currently, we recommend CT 42 * the least significant 16 bits to be 0x8000, but we cocould probably 43 * relax this restriction to KERNEL_RAM_ADDR> = PAGE_OFFSET + 0x4000. 44 */That is, the slave address KERNEL_RAM_VADDR At least 0x4000 is used to store the kernel page table, and the Space Value for storing the kernel page table is recommended to be 0x8000.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.