(chapter III)--SDHCI-PLTFM description" mentioned earlier.The following code takes the host implementation of the msm8916 platform and the implementation of SDHCI-MSM in Linux 4.6.0 As an example, this part of the code is open source.Because there are some register contents that require document support but we do not, so here is simply a brief introduction to design ideas and code structure. Second, DTSi node
MSM8916 has two SDHCI host, we take the first host as an example, the default is eMMCA
All parameters inside the H file are called by the int init_panel_data function inside the OEM_PANEL.C. Next follow the code. OEM_PANEL.C is located in the Bootable\bootloader\lk\target directory.
Aboot.c:void aboot_init Function parsing:
void Aboot_init (const struct App_descriptor *app) {unsigned reboot_mode = 0;
/* initialise Wdog to catch early LK crashes */#if wdog_support msm_wdog_init (); #endif
/* Setup page size information for NV storage */if (Target_is_emmc_boot ())//detect is
Boot Source
eMMC and USB (Recovery mode)
Encrypt
Encrypted memory with video-protected area to protect immediate resultsConfigurable, encrypted DRAM area for code and data protectionHardware acceleration aes128/192/256 and decryption. Used to encrypt Boo and multimedia digital Rights Management (DRM)Hardware acceleration: AES CMAC, SHA-1, and SHA-256 algorithms2048-bit RSA HW for PKC BootHW Random numbe
el3_mon_ver[50] = {0,};
if (* (unsigned int *) Config_sys_sdram_base = = 0xabcdef) {/* This booting are from
emmc/ufs. Not T32 */
Get_el3_m On_version (El3_mon_ver,);
printf ("EL3 Monitor information =%s\n", el3_mon_ver);
}
}
2. Log UFS:
Files: arch\arm\lib\board.c
There is the following code:
#if defined (CONFIG_CMD_SCSI)
puts ("ufs:\t");
Ufs_init (2);
if (exynos_boot_mode () = = Boot_ufs)
run_command ("SCSI init", 0);
#if firm_in
is being processed while another request is being prepared)
Request: To process a transfer request
The following function may sleep and cannot be called in the context of the interrupt:
Set_ios:
Get_ro: Gets the read and write status of the card, returns 0 for the read-write card, returns 1 for the card, returns-enosys for no support, and returns other negative values to indicate that other errors have occurred
GET_CD: return 0 means the card is not conn
guidance (schematic and layout)Http://v.youku.com/v_show/id_XNzMyNDk4OTc2.html"Video tutorial"iTOP-4412 Development Board LINUX-QT build and compile guidelines for the build environmentHttp://v.youku.com/v_show/id_XNzMyODE5OTg0.html"Video tutorial" iTOP-4412 Development Board GPIO Drive design --led(i)Http://v.youku.com/v_show/id_XNzM3MDk2Njk2.html"Video tutorial" iTOP-4412 Development Board GPIO Drive design --led(ii)Http://v.youku.com/v_show/id_XNzM3MTAwODEy.html"Video Tutorial" Embedded tech
"Android_drv_90000_64.exe" file, which is a Win7 64-bit version.3. Burn-Write steps1) The Linux minimum system needs to burn the image to write Ramdisk-uboot.img,zimage, also has own compiles the system.img altogether three mirrors, copies them to "Usb_fastboot_tool" and " Platform-tools "folder.2) First open the terminal, and then launch the Development Board and quickly press ENTER on the computer, you can enter the Uboot mode.3) Create a EMMC part
Overview of the two basic specificationsDTS (device tree syntax, another way of saying device tree source) is a plant-based file that is used in text format for readability and modification. The DTC (device tree compiler) is a small tool that is responsible for converting DTS into a DTB (device tree blob). DTB is a binary form of DTS for use by machines. In use, we first modify the DTS file according to the hardware, and then at compile time through the DTC tool to convert the DTS file to a DTB
N2840 processor with 2.16GHZ (max Core frequency 2.58GHz), integrated Intel HD video card, 2GB RAM+32GB emmc storage, plus 802.11 n WiFi and Bluetooth 4.0 connections are, in a sense, a very entry-level configuration in the Windows field. So, what about performance? Let's look at the performance of the processor, video card and battery life test.
Processor (multi-core) performance test
Gbxbench Graphics Performance Test
Ubuntu_mate_1410_baytrail_hybrid_efi_test_17.iso, and burn the IMA GE to a USB flash drive using Rufus or UNetbootin. Then insert the USB flash driveusb Flash drive (Username and password are both baytrail). So far, the procedure should is 100% safe. If you want to install the image to the internal storage, and keep Windows too. You'll first need to modify the partitions with Gparted first and then click on applications->system Tools->sy Stemback to install Ubuntu. You can follow the ins
in SISO) to achieve Half-duplex. Mainly used to achieve low speed transmission
DUAL SPI
For SPI Flash, Full-duplex is not commonly used, so expand the two data lines so that they support half-duplex transmission, doubling the speed of data transfer. You can send a command byte request into dual mode, and then the Mosi becomes SIO0 (serial I/O 0) and miso becomes SIO1.
This mode is mainly for SPI ROM, SPI Flash devices, the need for large data transmission
QUAD SPI
The quad SPI also adds two I/O
U-boot Analysis Two
Following the previous launch, this blog post aims to:
Learn the U-boot directory structure, from the code architecture on the U-boot have a overall grasp and understanding.
First, learn u-boot, ask, what is U-boot?
U-boot is an open source program.
Universal boot Loader, Universal boot program. is a very common boot program that can be used as a mainstream system bootstrapper, such as OpenBSD, NetBSD, Freebsd,4.4bsd, Linux, SVR4, Esix, Solaris, and so on, while also support
concept of description and does not involve code.the bootloader we use in Project X projects is Uboot, and the specific code references the fourth section, "Kernel the implementation of the prepare action in Uboot" 1. Kernel image to the appropriate location of the DDR
Kernel images typically exist on storage devices, such as Flash\emmc\sdcard.Therefore, the kernel image needs to be loaded into the RAM location before the CPU can access the kernel.Th
ZZ from:http://blog.csdn.net/ly601579033/article/details/48318239
=============================================================
The general flowchart is as follows:
After power-on, the Reset,arm core starts executing the Boot ROM, with the following actions: (code is cured in ROM)
1. Initialize the built-in SRAM stack
2, initialize the NAND/EMMC (mobile phone built-in storage)
3. Import the pre-loader stored in NAND into the SRAM
4. Jump to SRAM to
processes cause a process to stop) and put them in the background.(13) Some other processesIv. Tools Background ProcessThese background processes are optional. The following are some common possible processes to encounter:(1) CJQ0 and jnnn processes: Job queueThe job queue process monitors a job table, which tells it when to refresh individual snapshots in the system.(2) QMNC and qnnn: Advanced QueueThe QMNC process monitors the advanced queues and reminds them to be out of the queue when a wai
BBB's eMMC Drive in DRIVERS\MMC\CARD\BLOCK.C, its mmc_dirver structure is as follows,
Based on the experience of the previous platform bus driver model, there should be a mmc_devices structure in the kernel, and
Its name is also "MMCBLK" so that its probe function will be called, but searching the entire kernel file does not find mmc_devices.
Now let's analyze when Mmc_blk_probe is called.
static struct Mmc_driver Mmc_driver = {. drv= {. Name = "Mmcbl
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.