日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ARM64的启动过程之(一):内核第一个脚印

發(fā)布時(shí)間:2025/3/15 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ARM64的启动过程之(一):内核第一个脚印 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、前言

kernel的整個(gè)啟動(dòng)過(guò)程涉及的內(nèi)容很多,不可能每一個(gè)細(xì)節(jié)都描述清楚,因此我打算針對(duì)部分和ARM64相關(guān)的啟動(dòng)步驟進(jìn)行學(xué)習(xí)、整理,并方便后續(xù)查閱。本文實(shí)際上描述在系統(tǒng)啟動(dòng)最開(kāi)始的時(shí)候,bootloader和kernel的交互以及kernel如何保存bootloader傳遞的參數(shù)并進(jìn)行校驗(yàn),此外,還有一些最基礎(chǔ)的硬件初始化的內(nèi)容。

本文中的source來(lái)自4.1.10內(nèi)核,這是一個(gè)long term的版本,后續(xù)一段時(shí)間的文章都會(huì)基于這個(gè)long term版本進(jìn)行。

二、bootloader和kernel的交互

系統(tǒng)啟動(dòng)過(guò)程中,linux kernel不是一個(gè)人在戰(zhàn)斗,在kernel之前bootloader會(huì)進(jìn)行下面的動(dòng)作

1、初始化系統(tǒng)中的RAM并將RAM的信息告知kernel

2、準(zhǔn)備好device tree blob的信息并將dtb的首地址告知kernel

3、解壓內(nèi)核(可選)

4、將控制權(quán)轉(zhuǎn)交給內(nèi)核。當(dāng)然,bootloader和kernel的交互的時(shí)候需求如下:

MMU = off, D-cache = off, I-cache = on or off?
?? x0 = physical address to the FDT blob

更詳細(xì)的ARM64 boot protocol請(qǐng)參考Documentation/arm64/booting.txt文檔。

三、參數(shù)的保存和校驗(yàn)

最開(kāi)始的ARM64啟動(dòng)代碼位于arch/arm64/kernel/head.S文件中,代碼如下:

ENTRY(stext)?
??? bl??? preserve_boot_args?
??? bl??? el2_setup??????????? // Drop to EL1, w20=cpu_boot_mode?
??? adrp??? x24, __PHYS_OFFSET?
??? bl??? set_cpu_boot_mode_flag

??? bl??? __vet_fdt??
??? ……?
ENDPROC(stext)

1、preserve_boot_args

preserve_boot_args:?
??? mov??? x21, x0------將x0的值暫存在x21寄存器中,后面要使用x0

??? adr_l??? x0, boot_args---x0保存了boot_args變量的地址?
??? stp??? x21, x1, [x0]----保存x0和x1的值到boot_args[0]和boot_args[1]?
??? stp??? x2, x3, [x0, #16] ---保存x2和x3的值到boot_args[2]和boot_args[3]

??? dmb??? sy---------full system data memory barrier

??? add??? x1, x0, #0x20----x0和x1是傳遞給__inval_cache_range的參數(shù)?
??? b??? __inval_cache_range?
ENDPROC(preserve_boot_args)

由于MMU = off, D-cache = off,因此寫入boot_args變量的操作都是略過(guò)data cache的,直接寫入了RAM中,為了安全起見(jiàn)(也許bootloader中打開(kāi)了D-cache并操作了boot_args這段memory),將boot_args變量對(duì)應(yīng)的cache line進(jìn)行清除并設(shè)置無(wú)效。在調(diào)用__inval_cache_range之前,x0是boot_args這段memory的首地址,x1是末尾的地址(boot_args變量長(zhǎng)度是4x8byte=32byte,也就是0x20了)。

為何要保存x0~x3這四個(gè)寄存器呢?因?yàn)锳RM64 boot protocol對(duì)啟動(dòng)時(shí)候的x0~x3這四個(gè)寄存器有嚴(yán)格的限制:x0是dtb的物理地址,x1~x3必須是0。在后續(xù)setup_arch函數(shù)執(zhí)行的時(shí)候會(huì)訪問(wèn)boot_args并進(jìn)行校驗(yàn)。

最后一個(gè)小細(xì)節(jié)是如何訪問(wèn)boot_args這個(gè)符號(hào)的,這個(gè)符號(hào)是一個(gè)虛擬地址,但是,現(xiàn)在沒(méi)有建立好頁(yè)表,也沒(méi)有打開(kāi)MMU,如何訪問(wèn)它呢?這是通過(guò)adr_l這個(gè)宏來(lái)完成的。這個(gè)宏實(shí)際上是通過(guò)adrp這個(gè)匯編指令完成,通過(guò)該指令可以將符號(hào)地址變成運(yùn)行時(shí)地址(通過(guò)PC relative offset形式),因此,當(dāng)運(yùn)行的MMU OFF mode下,通過(guò)adrp指令可以獲取符號(hào)的物理地址。不過(guò)adrp是page對(duì)齊的(adrp中的p就是page的意思),boot_args這個(gè)符號(hào)當(dāng)然不會(huì)是page size對(duì)齊的,因此不能直接使用adrp,adr_l這個(gè)宏進(jìn)行處理,如果讀者有興趣可以自己看source code。

2、el2_setup

程序執(zhí)行至此,CPU處于哪一個(gè)exception level呢?根據(jù)ARM64 boot protocol,CPU要么處于EL2(推薦)或者non-secure EL1。如果在EL1,情形有些類似過(guò)去arm處理器的感覺(jué),處于EL2稍微復(fù)雜一些,需要對(duì)virtualisation extensions進(jìn)行基本的設(shè)定,然后將cpu退回到EL1。代碼太長(zhǎng)了,我們分成兩段來(lái)閱讀,第一段如下:

ENTRY(el2_setup)?
??? mrs??? x0, CurrentEL------------------------(1)?
??? cmp??? x0, #CurrentEL_EL2------判斷是否處于EL2?
??? b.ne??? 1f--------------不是的話,跳到1f?
??? mrs??? x0, sctlr_el2-------------------------(2)?
CPU_BE(??? orr??? x0, x0, #(1 << 25)??? )??? // Set the EE bit for EL2?
CPU_LE(??? bic??? x0, x0, #(1 << 25)??? )??? // Clear the EE bit for EL2?
??? msr??? sctlr_el2, x0----寫回sctlr_el2寄存器?
??? b??? 2f?
1:??? mrs??? x0, sctlr_el1-------------------------(3)?
CPU_BE(??? orr??? x0, x0, #(3 << 24)??? )??? // Set the EE and E0E bits for EL1?
CPU_LE(??? bic??? x0, x0, #(3 << 24)??? )??? // Clear the EE and E0E bits for EL1?
??? msr??? sctlr_el1, x0?
??? mov??? w20, #BOOT_CPU_MODE_EL1----w20寄存器保存了cpu啟動(dòng)時(shí)候的Eexception level?
??? isb---------instruction memory barrier?
??? ret

2:??? mov??? x0, #(1 << 31) ------------------------(4)?
??? msr??? hcr_el2, x0

??? mrs??? x0, cnthctl_el2 -------------------------(5)?
??? orr??? x0, x0, #3???????????????? // Enable EL1 physical timers?
??? msr??? cnthctl_el2, x0?
??? msr??? cntvoff_el2, xzr??????? // Clear virtual offset

??? mrs??? x0, id_aa64pfr0_el1 -----------------------(6)?
??? ubfx??? x0, x0, #24, #4 ----取出24 bit開(kāi)始的4個(gè)bit的值并將該值賦給x0?
??? cmp??? x0, #1?
??? b.ne??? 3f -----不支持system register接口

??? mrs_s??? x0, ICC_SRE_EL2?
??? orr??? x0, x0, #ICC_SRE_EL2_SRE??? // Set ICC_SRE_EL2.SRE==1?
??? orr??? x0, x0, #ICC_SRE_EL2_ENABLE??? // Set ICC_SRE_EL2.Enable==1?
??? msr_s??? ICC_SRE_EL2, x0?
??? isb??????????????????? // Make sure SRE is now set?
??? msr_s??? ICH_HCR_EL2, xzr??????? // Reset ICC_HCR_EL2 to defaults

3:?????????????? ……

(1)當(dāng)前的exception level保存在PSTATE中,程序可以通過(guò)MRS或者M(jìn)SR來(lái)訪問(wèn)PSTATE,當(dāng)然需要傳遞一個(gè)Special-purpose register做為參數(shù),CurrentEL就是獲取PSTATE中current exception level域的特殊寄存器。

(2)sctlr_el2也是一個(gè)可以通過(guò)MRS/MSR指令訪問(wèn)的寄存器,當(dāng)CPU處于EL2狀態(tài)的時(shí)候,該寄存器可以控制整個(gè)系統(tǒng)的行為。當(dāng)然,這里僅僅是設(shè)定EL2下的數(shù)據(jù)訪問(wèn)和地址翻譯過(guò)程中的endianess配置,也就是EE bit[25]。根據(jù)配置,CPU_BE和CPU_LE包圍的指令只會(huì)保留一行。對(duì)于little endian而言,實(shí)際上就是將sctlr_el2寄存器的EE(bit 25)設(shè)定為0。順便說(shuō)一下,這個(gè)bit不僅僅控制EL2數(shù)據(jù)訪問(wèn)的endianess以及EL2 stage 1的地址翻譯過(guò)程中的endianess(當(dāng)然,EL2只有stage 1),還可以控制EL1和EL0 stage 2地址翻譯的過(guò)程的endianess(這時(shí)候有兩個(gè)stage的地址翻譯過(guò)程)。

(3)執(zhí)行到這里說(shuō)明CPU處于EL1,這種狀態(tài)下沒(méi)有權(quán)限訪問(wèn)sctlr_el2,只能是訪問(wèn)sctlr_el1。sctlr_el1可以通過(guò)EE和E0E來(lái)控制EL1和EL0狀態(tài)下是little endian還是big endian。EE bit控制了EL1下的數(shù)據(jù)訪問(wèn)以及EL1和EL0 stage 1地址翻譯的過(guò)程的endianess。E0E bit用來(lái)控制EL0狀態(tài)下的數(shù)據(jù)訪問(wèn)的endianess。此外,需要注意的是:由于修改了system control register(設(shè)定endianess狀態(tài)),因此需要一個(gè)isb來(lái)同步(具體包括兩部分的內(nèi)容,一是確認(rèn)硬件已經(jīng)執(zhí)行完畢了isb之前的所有指令,包括修改system control寄存器的那一條指令,另外一點(diǎn)是確保isb之后的指令從新來(lái)過(guò),例如取指,校驗(yàn)權(quán)限等)。

(4)執(zhí)行到這里說(shuō)明CPU處于EL2,首先設(shè)定的是hcr_el2寄存器,Hypervisor Configuration Register。該寄存器的大部分bit 值在reset狀態(tài)的時(shí)候就是0值,只不過(guò)bit 31(Register Width Control)是implementation defined,因此這里set 31為1,確保Low level的EL1也是Aarch64的

(5)這一段代碼是對(duì)Generic timers進(jìn)行配置。要想理解這段代碼,我們需要簡(jiǎn)單的了解一些ARMv8上Generic timer的運(yùn)作邏輯。一個(gè)全局范圍的system counter、各個(gè)PE上自己專屬的local timer以及連接這些組件之間的bus或者信息傳遞機(jī)制組成了Generic Timer。對(duì)于PE而言,通過(guò)寄存器訪問(wèn),它能看到的是physical counter(實(shí)際的system counter計(jì)數(shù))、virtual counter(physical counter基礎(chǔ)上的offset)、physical timer、virtual timer等。NTHCTL_EL2,Counter-timer Hypervisor Control register,用來(lái)控制系統(tǒng)中的physical counter和virutal counter如何產(chǎn)生event stream以及在EL1和EL0狀態(tài)訪問(wèn)physical counter和timer的硬件行為的。在EL1(EL0)狀態(tài)的時(shí)候訪問(wèn)physical counter和timer有兩種配置,一種是允許其訪問(wèn),另外一種就是trap to EL2。這里的設(shè)定是:不陷入EL2(對(duì)應(yīng)的bit設(shè)置為1)。更詳細(xì)的信息可以參考ARMv8 ARM文檔。cntvoff_el2是virtual counter offset,所謂virtual counter,其值就是physical counter的值減去一個(gè)offset的值(也就是cntvoff_el2的值了),這里把offset值清零,因此virtual counter的計(jì)數(shù)和physical counter的計(jì)數(shù)是一樣的。

(6)這一段代碼是對(duì)GIC V3進(jìn)行配置。ID_AA64PFR0_EL1,AArch64 Processor Feature Register 0,該寄存器描述了PE實(shí)現(xiàn)的feature。GIC bits [27:24]描述了該P(yáng)E是否實(shí)現(xiàn)了system register來(lái)訪問(wèn)GIC,如果沒(méi)有(GIC bits 等于0)那么就略過(guò)GIC V3的設(shè)定。ICC_SRE_EL2,Interrupt Controller System Register Enable register (EL2),該寄存器用來(lái)(在EL2狀態(tài)時(shí)候)控制如何訪問(wèn)GIC CPU interface模塊的,可以通過(guò)memory mapped方式,也可以通過(guò)system register的方式。將SRE bit設(shè)定為1確保通過(guò)system register方式進(jìn)行GIC interface cpu寄存器的訪問(wèn)。將enable bit設(shè)定為1確保在EL1狀態(tài)的時(shí)候可以通過(guò)ICC_SRE_EL1寄存器對(duì)GIC進(jìn)行配置而不是陷入EL2。

下面我們進(jìn)入第二段代碼:

??? mrs??? x0, midr_el1 -----------------------------(1)?
??? mrs??? x1, mpidr_el1?
??? msr??? vpidr_el2, x0?
??? msr??? vmpidr_el2, x1

??? mov??? x0, #0x0800??????????? // Set/clear RES{1,0} bits ---------------(2)?
CPU_BE(??? movk??? x0, #0x33d0, lsl #16??? )??? // Set EE and E0E on BE systems?
CPU_LE(??? movk??? x0, #0x30d0, lsl #16??? )??? // Clear EE and E0E on LE systems?
??? msr??? sctlr_el1, x0

??? mov??? x0, #0x33ff-------Disable Coprocessor traps to EL2?
??? msr??? cptr_el2, x0??????????? // Disable copro. traps to EL2

#ifdef CONFIG_COMPAT-----是否支持64 bit kernel上運(yùn)行32bit 的application?
??? msr??? hstr_el2, xzr??????????? // Disable CP15 traps to EL2?
#endif

??? mrs??? x0, pmcr_el0------------------------------(3)?
??? ubfx??? x0, x0, #11, #5??????????? // to EL2 and allow access to?
??? msr??? mdcr_el2, x0??????????? // all PMU counters from EL1??
??? msr??? vttbr_el2, xzr ----清除Stage-2 translation table base address register

??? adrp??? x0, __hyp_stub_vectors?
??? add??? x0, x0, #:lo12:__hyp_stub_vectors?
??? msr??? vbar_el2, x0 ---------------設(shè)定EL2的異常向量表的基地址

??? mov??? x0, #(PSR_F_BIT | PSR_I_BIT | PSR_A_BIT | PSR_D_BIT |\?
????????????? PSR_MODE_EL1h)?
??? msr??? spsr_el2, x0 ------------------------------(4)?
??? msr??? elr_el2, lr?
??? mov??? w20, #BOOT_CPU_MODE_EL2??????? // This CPU booted in EL2?
??? eret-------------------------------------(5)
ENDPROC(el2_setup)

(1)midr_el1和mpidr_el1都屬于標(biāo)識(shí)該P(yáng)E信息的read only寄存器。MIDR_EL1,Main ID Register主要給出了該P(yáng)E的architecture信息,Implementer是誰(shuí)等等信息。MPIDR_EL1,Multiprocessor Affinity Register,該寄存器保存了processor ID。vpidr_el2和vmpidr_el2是上面的兩個(gè)寄存器是對(duì)應(yīng)的,只不過(guò)是for virtual processor的。

(2)這段代碼實(shí)際上是將0x33d00800(BE)或者0x30d00800(LE)寫入sctlr_el1寄存器。BE和LE的設(shè)定和上面第一段代碼中的描述是類似的,其他bit的設(shè)定請(qǐng)參考ARMv8 ARM文檔

(3)PMCR_EL0,Performance Monitors Control Register,該寄存器的[15:11]標(biāo)識(shí)了支持的Performance Monitors counter的數(shù)目,并將其設(shè)定到MDCR_EL2(Monitor Debug Configuration Register (EL2))中。MDCR_EL2中其他的bit都設(shè)定為0,其結(jié)果就是允許EL0和EL1進(jìn)行debug的操作(而不是trap to EL2),允許EL1訪問(wèn)Performance Monitors counter(而不是trap to EL2)。

(4)當(dāng)系統(tǒng)發(fā)生了異常并進(jìn)入EL2,SPSR_EL2,Saved Program Status Register (EL2)會(huì)保存處理器狀態(tài),ELR_EL2,Exception Link Register (EL2)會(huì)保存返回發(fā)生exception的現(xiàn)場(chǎng)的返回地址。這里是設(shè)定SPSR_EL2和ELR_EL2的初始值。w20寄存器保存了cpu啟動(dòng)時(shí)候的Eexception level ,因此w20被設(shè)定為BOOT_CPU_MODE_EL2。

(5)eret指令是用來(lái)返回發(fā)生exception的現(xiàn)場(chǎng)。實(shí)際上,這個(gè)指令僅僅是模擬了一次異常返回而已,SPSR_EL2和ELR_EL2都已經(jīng)設(shè)定OK,執(zhí)行該指令會(huì)使得CPU返回EL1狀態(tài),并且將SPSR_EL2的值賦給PSTATE,ELR_ELR就是返回地址(實(shí)際上也恰好是函數(shù)的返回地址)。

完成了el2_setup這個(gè)函數(shù)分析之后,我們?cè)倩仡^思考這樣的問(wèn)題:為何是el2_setup?為了沒(méi)有el3_setup?當(dāng)一個(gè)SOC的實(shí)現(xiàn)在包括了EL3的支持,那么CPU CORE缺省應(yīng)該進(jìn)入EL3狀態(tài),為何這里只是判斷EL2還是EL1,從而執(zhí)行不同的流程,如果是EL3狀態(tài),代碼不就有問(wèn)題了嗎?實(shí)際上,即便是由于SOC支持TrustZone而導(dǎo)致cpu core上電后進(jìn)入EL3,這時(shí)候,接管cpu控制的一定不是linux kernel(至少目前來(lái)看linux kernel不會(huì)做Secure monitor),而是Secure Platform Firmware(也就是傳說(shuō)中的secure monitor),它會(huì)進(jìn)行硬件平臺(tái)的初始化,loading trusted OS等等,等到完成了secure world的構(gòu)建之后,把控制權(quán)轉(zhuǎn)交給non-secure world,這時(shí)候,CPU core多半處于EL2(如果支持虛擬化)或者EL1(不支持虛擬化)。因此,對(duì)于linux kernel而言,它感知不到secure world(linux kernel一般也不會(huì)做Trusted OS),僅僅是在non-secure world中呼風(fēng)喚雨,可以是Hypervisor或者rich OS。

3、set_cpu_boot_mode_flag

在進(jìn)入這個(gè)函數(shù)的時(shí)候,有一個(gè)前提條件:w20寄存器保存了cpu啟動(dòng)時(shí)候的Eexception level ,具體代碼如下:

ENTRY(set_cpu_boot_mode_flag)?
??? adr_l??? x1, __boot_cpu_mode?
??? cmp??? w20, #BOOT_CPU_MODE_EL2?
??? b.ne??? 1f?
??? add??? x1, x1, #4?
1:??? str??? w20, [x1]??????????? // This CPU has booted in EL1?
??? dmb??? sy?
??? dc??? ivac, x1??????????? // Invalidate potentially stale cache line?
??? ret?
ENDPROC(set_cpu_boot_mode_flag)

由于系統(tǒng)啟動(dòng)之后仍然需要了解cpu啟動(dòng)時(shí)候的Eexception level,因此,有一個(gè)全局變量__boot_cpu_mode用來(lái)保存啟動(dòng)時(shí)候的CPU mode。代碼很簡(jiǎn)單,大家自行體會(huì)就OK了。

4、__vet_fdt

在進(jìn)入具體函數(shù)之前,x21和x24都被設(shè)定成了指定的值。x21被設(shè)定為fdt在RAM中的物理地址(參考preserve_boot_args函數(shù)),x24被設(shè)定為_(kāi)_PHYS_OFFSET,定義為:

#define __PHYS_OFFSET??? (KERNEL_START - TEXT_OFFSET)

#define KERNEL_START??? _text

KERNEL_START是kernel開(kāi)始運(yùn)行的虛擬地址,更確切的說(shuō)是內(nèi)核正文段開(kāi)始的虛擬地址。 在鏈接腳本文件中(參考arch/arm64/kernel下的vmlinux.lds.S),KERNEL_START被設(shè)定為:

. = PAGE_OFFSET + TEXT_OFFSET;

.head.text : {?
??? _text = .;?
??? HEAD_TEXT?
}

因此,KERNEL_START的值和PAGE_OFFSET以及TEXT_OFFSET這兩個(gè)offset的設(shè)定有關(guān)。TEXT_OFFSET標(biāo)識(shí)了內(nèi)核正文段的offset,其實(shí)如果該宏被定義為KERNEL_TEXT_OFFSET會(huì)更好理解。我們知道,操作系統(tǒng)運(yùn)行在內(nèi)核空間,應(yīng)用程序運(yùn)行在用戶空間,假設(shè)內(nèi)核空間的首地址是x(一般也是RAM的首地址),那么是否讓kernel運(yùn)行在x地址呢?對(duì)于arm,在內(nèi)核空間的開(kāi)始有32kB(0x00008000)的空間用于保存內(nèi)核的頁(yè)表(也就是進(jìn)程0的PGD)以及bootload和kernel之間參數(shù)的傳遞,對(duì)于ARM64,在其Makefile中定義了這個(gè)offset是512KB(0x00080000)。

ifeq ($(CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET), y)?
TEXT_OFFSET := $(shell awk 'BEGIN {srand(); printf "0x%03x000\n", int(512 * rand())}')?
else?
TEXT_OFFSET := 0x00080000?
endif

CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET是randomize內(nèi)核的啟動(dòng)地址,估計(jì)是防止黑客入侵之類的,我們這里簡(jiǎn)化處理,就是固定為0x00080000好了。

搞定了TEXT_OFFSET,我們?cè)賮?lái)看看PAGE_OFFSET,在arch/arm64/include/asm/memory.h中,PAGE_OFFSET被定義為:

#define VA_BITS??????????? (CONFIG_ARM64_VA_BITS)?
#define PAGE_OFFSET??????? (UL(0xffffffffffffffff) << (VA_BITS - 1))

VA_BITS定義了用戶空間虛擬地址的bit數(shù)(該值也就是定義了用戶態(tài)程序能夠訪問(wèn)的地址空間的size),假設(shè)VA_BITS被設(shè)定為39個(gè)bit,那么PAGE_OFFSET就是0xffffffc0-00000000。PAGE_OFFSET的名字也不好(個(gè)人觀點(diǎn),可能有誤),OFFSET表明的是一個(gè)偏移,內(nèi)核空間被劃分成一個(gè)個(gè)的page,PAGE_OFFSET看起來(lái)應(yīng)該是定義以page為單位的偏移。但是,以什么為基準(zhǔn)的偏移呢?PAGE_OFFSET的名字中沒(méi)有給出,當(dāng)然實(shí)際上,這個(gè)符號(hào)是定義以整個(gè)address space的起始地址(也就是0)為基準(zhǔn)。另外,雖然這個(gè)地址是要求page對(duì)齊,但是實(shí)際上,這個(gè)符號(hào)仍然定義的是虛擬地址的offset(而不是page的offset)。根據(jù)上面的理由,我覺(jué)得定義成KERNEL_IMG_OFFSET會(huì)更好理解一些。一句話總結(jié):PAGE_OFFSET定義了將kernel image安放在虛擬地址空間的哪個(gè)位置上。

OK,經(jīng)過(guò)漫長(zhǎng)的說(shuō)明之后,__PHYS_OFFSET實(shí)際上就是kernel image的首地址(并不是__PHYS_OFFSET的位置開(kāi)始就是真實(shí)的kernel image,實(shí)際上從__PHYS_OFFSET開(kāi)始,首先是TEXT_OFFSET的保留區(qū)域,然后才是真正的kernel image)。實(shí)際上,__PHYS_OFFSET定義的是一個(gè)虛擬地址而不是物理地址,這里的PHYS嚴(yán)重影響了該符號(hào)的含義,實(shí)際上adrp這條指令可以將一個(gè)虛擬地址轉(zhuǎn)換成物理地址(在沒(méi)有打開(kāi)MMU的時(shí)候)。而函數(shù)__vet_fdt主要是對(duì)這個(gè)bootloader傳遞給kernel的fdt參數(shù)進(jìn)行驗(yàn)證,看是否OK,主要驗(yàn)證的內(nèi)容包括:

(1)是否是8字節(jié)對(duì)齊的

(2)是否在kernel space的前512M內(nèi)

__vet_fdt:?
??? tst??? x21, #0x7----是否是8字節(jié)對(duì)齊的?
??? b.ne??? 1f?
??? cmp??? x21, x24-----是否在小于kernel space的首地址?
??? b.lt??? 1f?
??? mov??? x0, #(1 << 29)?
??? add??? x0, x0, x24?
??? cmp??? x21, x0?
??? b.ge??? 1f-------是否大于kernel space的首地址+512M?
??? ret?
1:?
??? mov??? x21, #0----------傳遞的fdt地址有誤,清零?
??? ret?
ENDPROC(__vet_fdt)

四、參考文獻(xiàn)

1、Documentation/arm64/booting.txt

2、ARM Architecture Reference Manual


change log:

1、2015-11-30,增加對(duì)el2_setup的思考。

2、2015-12-1,(1)修正對(duì)PAGE_OFFSET的描述。(2)增加adrp和adr_l的描述(3)增加對(duì)__PHYS_OFFSET符號(hào)名字的置疑


原文地址: http://www.wowotech.net/linux_kenrel/arm64_initialize_1.html

與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的ARM64的启动过程之(一):内核第一个脚印的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

日日干视频 | 粉嫩av一区二区三区四区 | 91最新中文字幕 | 国产精品久久嫩一区二区免费 | 99精品欧美一区二区 | 久久久黄视频 | 欧美成人在线免费 | 99久久精品视频免费 | 久草免费手机视频 | 国产精品一区二区av日韩在线 | 国产精品久久久久久久久久99 | 久久狠狠婷婷 | 国产又粗又长又硬免费视频 | 亚洲欧美视频在线 | 麻豆免费精品视频 | 亚洲 精品在线视频 | 国产一级黄色片免费看 | 亚洲专区免费观看 | 国产精品久久久久久久久久免费 | 日韩精品一区在线观看 | 日韩乱理 | 狠狠干.com | 免费观看午夜视频 | 久久情侣偷拍 | 亚洲国产精品第一区二区 | 在线观看亚洲精品 | av一级免费 | 国产老熟| 西西www4444大胆视频 | 91黄色小网站 | 中文字幕在线免费看线人 | 精品国内自产拍在线观看视频 | 精品999在线观看 | 欧美一区,二区 | 国产精品99久久久精品免费观看 | 丁香婷婷综合五月 | 日本中文一级片 | 国产精品一区二区三区在线免费观看 | 国产一区二区三区在线免费观看 | 日韩av电影免费观看 | 综合婷婷| 欧美午夜久久久 | 久久高清免费观看 | 国产精品永久免费在线 | 成人欧美一区二区三区黑人麻豆 | 国内一区二区视频 | 久久综合色天天久久综合图片 | 亚洲欧美日韩精品久久奇米一区 | www成人精品 | 久久亚洲精品电影 | 伊人一级 | 久久久人人人 | 久久综合久久伊人 | 亚洲黄色av网址 | 成人午夜电影在线播放 | 日韩视频免费观看高清完整版在线 | 亚洲精品一区二区三区新线路 | 国产69久久 | 亚洲精品国偷自产在线99热 | 国产a级免费 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 91人人澡人人爽 | 91亚洲精品久久久中文字幕 | 国产高清视频在线播放一区 | 日韩欧美一级二级 | 国产成人在线免费观看 | 天天操操 | 最近中文字幕第一页 | 精品国产诱惑 | 一区中文字幕电影 | 在线一区电影 | 久久国产精品成人免费浪潮 | 日本资源中文字幕在线 | 国产自产高清不卡 | 在线观看中文字幕一区二区 | 亚洲理论电影网 | 黄色免费网站 | 综合色在线观看 | 日韩中文字幕第一页 | 狠狠亚洲 | a在线免费 | 毛片网站观看 | 国产成人精品一区二区三区福利 | 日本中文在线播放 | 996久久国产精品线观看 | 成人久久久久久久久久 | 亚洲精品在线资源 | 免费午夜av | 久久五月天色综合 | 97色免费视频 | 精品久久久久久亚洲综合网站 | 成人av在线看 | 天天操夜夜操国产精品 | 久久综合五月婷婷 | 国产精品ssss在线亚洲 | 色小说av | 国产黄色成人 | 夜夜摸夜夜爽 | 一区二区中文字幕在线观看 | 99精品视频播放 | 久久a v电影 | 91网在线观看 | 亚州欧美精品 | 久草在线视频首页 | 日本精品视频一区二区 | 精品电影一区二区 | 成人午夜电影在线观看 | 久久视精品 | 亚洲黄色高清 | av在线电影播放 | 久精品在线 | 一区二区网 | 久久69精品| 亚洲电影成人 | 夜夜躁狠狠躁日日躁视频黑人 | 国产精品久久久区三区天天噜 | 天堂在线一区二区 | 黄色www在线观看 | av成人动漫在线观看 | 亚洲精品国产精品国自 | 婷婷伊人综合亚洲综合网 | 高清av免费看| 久久撸在线视频 | 日韩av电影一区 | 五月婷婷一级片 | 国产香蕉97碰碰碰视频在线观看 | 欧美另类交在线观看 | av电影免费观看 | 黄色影院在线观看 | 婷婷色站 | 色姑娘综合天天 | 免费视频一二三区 | 日p视频| 欧美激情视频一二区 | www.久久视频 | 干天天| 最近免费观看的电影完整版 | 免费在线观看91 | 久久人人97超碰com | 中文字幕电影网 | 99中文字幕视频 | 日躁夜躁狠狠躁2001 | 亚洲五月六月 | 国产99在线免费 | 免费久久久久久久 | 久久伦理视频 | 久久精品网站免费观看 | 亚洲尺码电影av久久 | 探花视频在线观看+在线播放 | 99国产精品免费网站 | 日韩毛片一区 | 国产精品成人自拍 | 国产一线天在线观看 | 中文字幕一二 | www.99热精品| 色婷在线 | 日韩网站免费观看 | 91精品专区 | 黄色网www | 九九免费在线视频 | 久久精品首页 | 色综合天天 | 久久精品人 | 日日噜噜噜噜夜夜爽亚洲精品 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 在线观看中文字幕一区二区 | 欧洲一区二区在线观看 | 亚洲激情网站免费观看 | 国产无套精品久久久久久 | 手机在线看永久av片免费 | 国产精品九九九九九九 | 91热爆视频| 亚洲人片在线观看 | 特级xxxxx欧美| 97碰碰碰| 久久免费大片 | 日韩在线视频网 | 日韩av高清| 偷拍精品一区二区三区 | 国产精品精品视频 | 国产香蕉久久精品综合网 | 久久免费视频观看 | 日本在线观看中文字幕无线观看 | 中文字幕在线高清 | 久久国产精品偷 | 91久久丝袜国产露脸动漫 | www日韩欧美| 午夜影院一区 | 日韩免费在线观看视频 | 中文在线字幕免费观 | 国产精品视频最多的网站 | 国产精品久久人 | 成人在线视频免费观看 | 欧美日韩网址 | 亚洲狠狠操 | 欧美人牲 | 欧美日韩在线第一页 | 色美女在线 | 久久69精品 | 欧美另类成人 | 久久综合影音 | 99久久精品国产一区二区成人 | 丁香婷婷深情五月亚洲 | 婷婷在线观看视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 日韩免费看视频 | 亚洲婷久久 | 天堂中文在线视频 | av丝袜在线| 国产在线va | 99爱在线 | 黄免费网站 | 日韩av影视 | 97超碰色偷偷 | 国产一区二区三区免费在线观看 | 国产精品久久久久永久免费看 | 99一区二区三区 | 久久精久久精 | 国产精品视频99 | 在线观看视频黄色 | 亚洲国产综合在线 | 免费亚洲视频在线观看 | www.五月天婷婷.com | 国产精品欧美久久久久天天影视 | 精品久久久久久久 | 国产成人三级在线播放 | 亚洲美女视频在线观看 | 久久综合免费视频影院 | 色婷婷午夜 | 欧美精品九九 | 久久亚洲热| 亚洲综合激情小说 | 久久国产高清视频 | www中文在线 | 亚洲第一区在线观看 | 天天干夜夜爱 | 五月天天色 | 国产精品福利久久久 | 国产尤物在线视频 | 国产成人一区二区三区电影 | 一级a毛片高清视频 | 99精品久久久 | 又大又硬又黄又爽视频在线观看 | 高清精品视频 | 免费看片在线观看 | 天天摸天天舔天天操 | 日韩精品一卡 | 中文字幕 欧美性 | 99高清视频有精品视频 | 日韩成人免费在线观看 | 成人一区二区三区中文字幕 | 日韩色一区二区三区 | 色综合久久88色综合天天免费 | 精品在线免费视频 | 日韩中文字幕91 | 顶级bbw搡bbbb搡bbbb | 精品自拍sae8—视频 | 天天在线免费视频 | 日韩欧美在线高清 | 天天狠狠 | 精品黄色在线观看 | 中文久草 | 久久久免费少妇 | 久久久视屏 | 韩国精品在线观看 | www.久久免费视频 | 麻豆视频在线观看 | 免费看三级黄色片 | 91高清视频 | 夜夜操夜夜干 | 国产一二三精品 | 91成年人网站 | 日韩精品 在线视频 | 国产福利在线不卡 | 日日夜夜精品免费观看 | 久久久私人影院 | 久久成人在线视频 | 亚洲精选在线观看 | 国产精品99久久久精品 | 超碰在线人人 | 麻豆国产网站 | 高清免费在线视频 | 精品国产乱码一区二区三区在线 | 欧美天天干 | 白丝av免费观看 | 91麻豆精品久久久久久 | 色网站免费在线观看 | 国产va精品免费观看 | 国产精品一区二区三区视频免费 | 亚洲精品国产精品乱码不99热 | 人人玩人人弄 | 久久久麻豆精品一区二区 | 天天激情 | 永久免费观看视频 | 日韩超碰 | 成人欧美日韩国产 | 亚洲国产精品500在线观看 | 国产中文字幕在线视频 | 欧美一二三区播放 | www.久久com| av中文字幕网址 | 69av网| 九九在线免费视频 | 久久久国产精品久久久 | 国产中文 | 久久艹艹 | 精品国产亚洲一区二区麻豆 | 丁香五婷| 国产精品国产三级国产不产一地 | 久久视频 | 激情视频亚洲 | 五月婷色 | 91精品1区| 日韩av中文字幕在线免费观看 | 久久一级电影 | 久久久久久美女 | 欧美日韩中文国产 | 欧美成人在线网站 | 免费国产亚洲视频 | 成人h视频 | 精品一区二区日韩 | www.五月激情.com | 在线亚洲成人 | 精品女同一区二区三区在线观看 | 在线免费黄 | 91资源在线视频 | 免费在线观看视频一区 | 日本精品午夜 | 亚洲无吗视频在线 | 色亚洲网 | 久久夜色精品国产亚洲aⅴ 91chinesexxx | 日本视频久久久 | 996久久国产精品线观看 | 粉嫩av一区二区三区四区五区 | 久久精品国产精品亚洲 | 精品国产乱码一区二区三区在线 | 亚洲精品tv| 欧美黄色特级片 | 四虎小视频 | 麻豆一精品传二传媒短视频 | 久久蜜桃av | 久久精品79国产精品 | 久久精品免费电影 | 91视频链接 | 在线看黄网站 | 999久久久国产精品 高清av免费观看 | 日韩av影片在线观看 | 婷婷精品国产一区二区三区日韩 | 亚洲精品福利在线观看 | 黄网站色欧美视频 | 中文资源在线官网 | 色综合久久综合中文综合网 | 欧美日韩国产综合网 | 最新日韩在线观看视频 | 91精品免费在线观看 | 激情婷婷色 | 亚洲精品高清一区二区三区四区 | 免费看黄的 | 日韩视频中文字幕在线观看 | 国产黄色a| 91桃色在线播放 | 一区二区三区久久 | 国产日本在线 | 日韩大陆欧美高清视频区 | 国产日产精品久久久久快鸭 | 久久人人爽人人爽人人片av软件 | 深夜福利视频一区二区 | 成人在线免费看视频 | 日本中文字幕在线视频 | 久久久久久免费毛片精品 | 欧美男男tv网站 | 国产精品二区在线 | 天堂网一区| 最近2019中文免费高清视频观看www99 | 中文字幕在线不卡国产视频 | 500部大龄熟乱视频使用方法 | 五月婷婷丁香色 | 伊人资源视频在线 | 免费在线观看中文字幕 | 精品国产伦一区二区三区观看方式 | 狠狠干中文字幕 | 91精品国产网站 | 久久手机免费观看 | 91成人精品一区在线播放69 | 欧美最新另类人妖 | 91视频高清完整版 | av片免费播放| 日韩高清不卡在线 | 91插插影库 | av网址aaa| 日韩在线无 | 国产精品永久久久久久久久久 | 亚洲欧美日韩一区二区三区在线观看 | 一级a性色生活片久久毛片波多野 | 国产美女网站在线观看 | av电影在线观看完整版一区二区 | 麻豆视频国产在线观看 | 免费网站黄 | av再线观看 | 久久精品官网 | 亚洲日本欧美 | 黄a在线看| 999ZYZ玖玖资源站永久 | 国产精品99免费看 | 日韩欧美视频免费看 | 欧美精品在线观看免费 | 免费a网站 | 国产精品一区二区吃奶在线观看 | 国产精品久久嫩一区二区免费 | 狠狠干夜夜操天天爽 | 亚洲一级电影视频 | 免费精品久久久 | 国产破处视频在线播放 | 久久午夜电影 | 久久这里只有精品1 | 波多野结衣动态图 | 国产九九九九九 | 久久精品免费观看 | 国产专区精品 | 久久久久亚洲精品男人的天堂 | 欧美日韩中文国产一区发布 | 日本激情动作片免费看 | 久久久久久久网站 | 久草视频观看 | 麻豆一精品传二传媒短视频 | 激情深爱.com | 精品视频123区在线观看 | 久久av网| 国产精品久久久久久久久久ktv | 国产一级不卡视频 | 草久视频在线观看 | 久久免费在线视频 | 高清在线观看av | 欧美国产高清 | 99精品视频在线观看播放 | 天堂av观看| 婷婷激情久久 | 国产精品久久一区二区三区不卡 | 在线影视 一区 二区 三区 | 午夜精品久久久久久久99水蜜桃 | 婷婷丁香狠狠爱 | 在线观看播放av | 日日久视频 | 久久精品视频免费观看 | 国产精品6999成人免费视频 | 午夜视频在线瓜伦 | 国产丝袜制服在线 | 国产精品三级视频 | 五月天国产 | 亚洲国产三级在线 | 国产精品v欧美精品 | 中文字幕在线观看一区 | 国产精品99久久久久久久久 | 亚洲精品视频一二三 | 九七人人干 | 九九久久婷婷 | 国产精品久久久久永久免费 | 日韩最新在线视频 | 女人18精品一区二区三区 | 色五月色开心色婷婷色丁香 | 看污网站 | 国产一区二区在线播放视频 | 亚洲国产97在线精品一区 | 国产一区二区三区免费视频 | 91精品网站在线观看 | 国产精品免费在线观看视频 | 黄色小说在线免费观看 | 狠狠激情中文字幕 | 狠狠色丁香久久婷婷综合_中 | 在线观看亚洲电影 | 天天综合网~永久入口 | 狠狠色丁香久久婷婷综合_中 | 五月婷婷在线播放 | 欧美99热| 欧亚日韩精品一区二区在线 | 国产在线免费 | 亚洲 精品在线视频 | 9999精品免费视频 | 国产精品久久久久久久久久久久午夜 | a v在线视频 | 国产成免费视频 | 欧美日韩一区久久 | 欧美色综合天天久久综合精品 | 国产精品成人av电影 | 国产不卡片 | 天堂久久电影网 | 国产伦精品一区二区三区照片91 | 最近2019好看的中文字幕免费 | 久草视频免费看 | 一级性视频| 中午字幕在线 | 欧美色婷 | 免费亚洲成人 | 天天曰天天 | 青青草国产成人99久久 | 黄色av一级 | 欧美日韩视频在线观看免费 | 日韩欧美91| 在线免费色 | 一区二区三区电影大全 | 日韩在线 一区二区 | 一区二区三区观看 | 国产精品99免费看 | 一区二区影院 | 国产九九精品视频 | 成人九九视频 | 日韩电影在线一区 | 亚洲欧美在线视频免费 | 五月婷婷视频在线观看 | 日韩成人在线免费观看 | 国产最新91 | 99在线精品视频观看 | 久久精品7| 欧美性性网 | 日韩电影在线视频 | av网在线观看| 免费av观看网站 | 99精品系列 | 99在线视频观看 | 国产日韩欧美在线影视 | 色网免费观看 | 国产精品综合在线 | 91在线精品观看 | www.777奇米| 91麻豆精品 | 亚洲久草网| 狠狠的干狠狠的操 | 九九热re | 四虎影视精品永久在线观看 | 狠狠躁日日躁狂躁夜夜躁 | 一区二区三区四区在线 | 亚洲三级在线播放 | 亚洲狠狠操 | 免费日韩 | 91在线九色| 久久久久免费看 | 999久久久久久久久 69av视频在线观看 | 亚洲欧洲美洲av | 色噜噜色噜噜 | 美女黄久久 | 久久久精品免费观看 | 亚洲欧美日韩一区二区三区在线观看 | 欧美极品少妇xbxb性爽爽视频 | 美女天天操 | 久久五月网| 日韩精品极品视频 | 黄色av影院 | 97视频在线看 | 亚洲午夜久久久综合37日本 | 久久精品免费 | 91av视频导航 | 色偷偷88欧美精品久久久 | 日韩欧美区 | 免费在线观看视频一区 | 99性视频 | 成人免费91| 精品一区91 | 亚洲永久精品在线观看 | 免费看片亚洲 | 国产精品一区二区免费视频 | 久久一精品 | 天天草天天干天天射 | 人人干天天射 | 亚洲丝袜一区 | 色噜噜色噜噜 | 亚洲精品自拍 | 日韩区欧美久久久无人区 | 99在线热播精品免费99热 | 色 免费观看 | 天天射天天添 | 久久精品日本啪啪涩涩 | 91视频 - v11av | 奇米四色影狠狠爱7777 | 六月丁香激情网 | 在线影视 一区 二区 三区 | 久久在线一区 | 国产精品无 | 精品一区二区久久久久久久网站 | 天堂在线一区 | 天堂资源在线观看视频 | 色综合中文字幕 | 成人av电影免费观看 | .国产精品成人自产拍在线观看6 | 国产综合视频在线观看 | 欧美在线1区 | 国产精品视频你懂的 | 亚洲天堂网在线视频观看 | 99久久久久国产精品免费 | 久久精品观看 | 久草影视在线 | 国产一级一片免费播放放 | 麻豆91精品91久久久 | 国产成人在线一区 | 亚洲国产福利视频 | 男女日麻批 | 日韩视频在线一区 | 亚洲精品成人网 | 国产精品入口66mio女同 | 久久视频在线观看中文字幕 | 国产精品剧情在线亚洲 | 九九国产视频 | 国产黄色免费在线观看 | 亚洲三级在线 | 亚洲精品久久视频 | 国产色视频 | 丁香视频全集免费观看 | 97av色 | 国产亚洲精品久久19p | 久久的色 | 97人人网 | 亚洲综合视频在线播放 | 欧美日韩亚洲国产一区 | 国产成人一二三 | 中文字幕影片免费在线观看 | 亚洲精品网址在线观看 | 久久免费视频一区 | 国产精品久久一区二区三区不卡 | 在线国产视频 | 日韩有码第一页 | 人人要人人澡人人爽人人dvd | 日本黄区免费视频观看 | 久久综合五月天婷婷伊人 | av 在线观看 | 亚洲激情在线视频 | 五月婷婷综合在线观看 | 国产成人精品一区二区三区在线观看 | 福利一区二区在线 | 久久艹中文字幕 | 精品久久国产 | 高清av影院 | 97av视频在线观看 | 91精品在线播放 | 色av资源网 | 天天超碰 | 国产精品专区在线 | 免费特级黄色片 | 欧美性粗大hdvideo | 99精品视频在线 | 亚洲 精品在线视频 | www.色午夜| 欧美另类色图 | 人人干狠狠干 | 久久久久久久久影视 | 精品国模一区二区三区 | 免费麻豆视频 | 欧美成人黄色 | 日日操网| 国产91在线看 | 最近免费在线观看 | 96久久欧美麻豆网站 | 波多野结衣亚洲一区二区 | 在线观看中文字幕 | 一级黄色片毛片 | 国产精品久久久久影视 | 在线免费观看国产黄色 | 91麻豆精品久久久久久 | 国产a高清 | 亚洲午夜精品在线观看 | 久久久精品综合 | 日本黄色免费大片 | 成 人 黄 色 片 在线播放 | 超碰99人人| 美女又爽又黄 | 中文在线| 午夜精品成人一区二区三区 | 国产色道| 日本精品一 | 在线视频a | 91国内产香蕉 | 天堂av免费在线 | 国产精品99久久久久久久久久久久 | 久久国色夜色精品国产 | 日本性xxxxx 亚洲精品午夜久久久 | 久久精品国产一区二区 | 91爱在线 | 九色91在线视频 | 草在线视频 | 国产成人在线网站 | 精品国产一区二区三区久久久久久 | 国产高清视频在线播放 | av成人在线网站 | 国产精品99久久久久久久久久久久 | 亚洲无吗av| 国产精品女人网站 | 久久久久久久久久久精 | 日韩欧美在线中文字幕 | 在线观看黄色免费视频 | 中文字幕在线观看91 | 色老板在线 | 91精品国产福利在线观看 | 久久精品久久精品 | 黄色精品免费 | 国产很黄很色的视频 | 婷婷国产在线 | 天天干人人干 | 日韩国产精品久久久久久亚洲 | 在线岛国av | 久久99精品波多结衣一区 | 国产精品99久久久久的智能播放 | 成年人在线免费视频观看 | 蜜臀av网站 | 精品国产精品久久一区免费式 | 亚洲综合欧美精品电影 | 日本在线视频一区二区三区 | 黄色av电影| 亚洲 欧美 另类人妖 | 亚洲伦理电影在线 | 黄色一区三区 | a在线播放 | 日本久久影视 | 日韩视频一区二区 | 亚洲在线精品视频 | 一级精品视频在线观看宜春院 | 免费看黄色91 | 99在线免费观看 | 成年人在线免费视频观看 | 顶级bbw搡bbbb搡bbbb | 手机av看片 | 成人国产精品一区二区 | 国产成人高清在线 | 四虎影视成人精品国库在线观看 | 在线国产一区 | 91mv.cool在线观看 | 2018好看的中文在线观看 | 久久免费99精品久久久久久 | 亚洲精品99久久久久中文字幕 | 在线观看mv的中文字幕网站 | 国内精品视频在线 | 天堂网在线视频 | 日韩在线三区 | 久久亚洲精品国产亚洲老地址 | 91一区啪爱嗯打偷拍欧美 | 国产精品视频专区 | 天天射狠狠干 | 麻豆av一区二区三区在线观看 | 久久福利 | 国产日产精品久久久久快鸭 | 欧美亚洲一区二区在线 | 亚洲精品视频在线观看免费视频 | av不卡中文字幕 | 美女视频a美女大全免费下载蜜臀 | 午夜 免费 | 日韩精品视频在线观看网址 | 韩日成人av | 在线观看的黄色 | 三上悠亚一区二区在线观看 | 国产看片免费 | 中文字幕免费观看 | 色婷婷a | 国产视频每日更新 | 在线观看一区视频 | 日日狠狠| 欧美日韩一区二区三区不卡 | 国产视频午夜 | av官网| 美女视频黄在线 | av午夜电影| 国产视频1 | 日韩精品中文字幕久久臀 | 亚洲国产小视频在线观看 | 成人毛片一区 | 国产精品自产拍在线观看中文 | 99热精品视 | 久久人人爽人人人人片 | 成人黄色在线播放 | 美女久久精品 | 色丁香婷婷 | 手机版av在线 | 日韩欧美在线影院 | 亚洲精品国产精品乱码在线观看 | 一级黄色av | 女女av在线 | 综合色亚洲 | 亚洲狠狠丁香婷婷综合久久久 | 91免费网站在线观看 | 一区二区欧美日韩 | 久久99久久99精品免观看软件 | 五月天婷婷在线观看视频 | 中文字幕国产精品 | 欧美久久久久久久久久久久 | 色欧美成人精品a∨在线观看 | 欧美另类交在线观看 | 91高清视频在线 | 99精品免费久久久久久久久 | 亚洲一级特黄 | 大荫蒂欧美视频另类xxxx | 成人小视频在线观看免费 | 国产五月色婷婷六月丁香视频 | 久久免费公开视频 | 成人av在线亚洲 | 久久免费精品 | 久久精品一区二区三区四区 | 六月丁香伊人 | 精品免费久久久久久 | 中文字幕在线视频一区二区三区 | 在线观看国产www | 国产一区高清在线观看 | 六月色丁香 | 久久久久亚洲精品成人网小说 | 亚洲精品婷婷 | 国产短视频在线播放 | 免费男女羞羞的视频网站中文字幕 | 久久久穴 | 麻豆视频在线免费观看 | 色在线网站| 激情欧美一区二区免费视频 | 亚洲人av免费网站 | 免费麻豆视频 | 国产亚洲精品久久久久久网站 | 成人黄色在线观看视频 | 97超碰福利久久精品 | 美女视频久久久 | 久久婷婷一区二区三区 | 国产精品理论片在线播放 | 欧美性色黄大片在线观看 | 久久国产影视 | 久久精品亚洲综合专区 | 三级黄色网址 | 99色在线视频 | 日韩国产精品一区 | 免费观看丰满少妇做爰 | 国产精品区免费视频 | 精品久久久久久国产偷窥 | 欧洲精品视频一区二区 | av免费电影在线观看 | 天天干天天干天天色 | 国产+日韩欧美 | 免费在线色电影 | 国产黄色精品视频 | 日韩av线观看 | 成人国产精品 | 不卡中文字幕av | 亚洲每日更新 | 日日爽天天爽 | 日产乱码一二三区别免费 | 国产高清综合 | 午夜电影久久久 | 国产做爰视频 | 久久综合九色欧美综合狠狠 | 人人爽人人香蕉 | 亚洲精品视频二区 | 国产中文自拍 | 久久精品国产免费看久久精品 | 最近中文字幕大全中文字幕免费 | 韩国av三级 | 天天色天天射综合网 | 亚洲精品美女久久久久 | 久久精品这里精品 | 国产精品99久久免费黑人 | 91亚洲精品久久久蜜桃借种 | 久久久久久黄 | 天天射综合 | 成人av一区二区兰花在线播放 | 成人av观看 | 中文字幕 国产视频 | 日韩欧美高清一区二区 | 日韩中文字幕免费在线观看 | 综合久久五月天 | 欧美精品在线观看一区 | 国产一区二区精品久久 | 国产在线色视频 | 亚洲视频一 | 欧美网址在线观看 | 69久久久| 成年人在线免费看视频 | 久久亚洲欧美 | 日韩在线观看中文 | 在线欧美小视频 | 亚洲精品一区二区18漫画 | 国产精品18久久久久久首页狼 | 亚洲精品日韩一区二区电影 | 天天操夜夜摸 | 国产日韩在线播放 | 成人av地址| 亚洲最大成人免费网站 | 国产一区高清在线 | 在线观看色视频 | 亚洲aⅴ免费在线观看 | 日本动漫做毛片一区二区 | 97视频一区| 国产午夜精品一区二区三区四区 | 亚洲精品免费在线 | 亚洲精品国产品国语在线 | 国产精品成人自产拍在线观看 | 在线看v片 | 欧美在线free | www色| 久久av一区二区三区亚洲 | 九九导航 | 亚洲国产精选 | 久久久久中文 | 激情综合五月网 | 欧美三级高清 | 91九色在线观看视频 | 免费进去里的视频 | 国产成人亚洲在线电影 | 久久午夜色播影院免费高清 | 久久高清视频免费 | 天天天操天天天干 | 久久久久北条麻妃免费看 | 麻豆系列在线观看 | 91九色蝌蚪视频网站 | 天天干.com | 五月天久久婷 | 黄色小说网站在线 | 免费看的黄色录像 | 一区二三国产 | 日韩啪啪小视频 | 色资源网在线观看 | 成人网大片| 91av福利视频 | 国产欧美在线一区二区三区 | 91福利区一区二区三区 | 亚洲成年人av | 日韩av免费在线看 | 久久久www | 操操操com | 黄污网| 黄色三级网站在线观看 | 人人插人人艹 | 天天爱综合| 玖玖在线资源 | 日韩毛片一区 | 中文字幕在线视频一区二区三区 | 欧美日本啪啪无遮挡网站 | 国产小视频91 | 永久免费精品视频网站 | 日韩在线电影一区 | 亚洲国产精品资源 | 91成人精品一区在线播放 | 欧美一二三视频 | 色www精品视频在线观看 | 国产精品久久久久婷婷 | 国产91精品一区二区绿帽 | 特级毛片在线 | 国产在线观看你懂得 | 99国产视频 | 日本黄色免费播放 | 爱干视频| 人人爽人人爽人人 | 成人在线免费看视频 | 久久综合之合合综合久久 | 国产美女免费 | 日韩三级视频在线观看 | 亚洲成人第一区 | 久久手机免费观看 | 日韩在线视频精品 | 99精品视频免费看 | 国产精品1024 | 久久综合一本 | 欧美午夜理伦三级在线观看 | 亚洲在线成人精品 | 国产视频一 | 久久色亚洲 | 97久久久免费福利网址 | 黄色av一级 | 黄色资源在线观看 | 成人一区电影 | 五月天久久婷 | 最近中文字幕高清字幕免费mv | 亚洲美女在线国产 | 中文免费 | 伊人狠狠色丁香婷婷综合 | 一区二区精品久久 | 美女国产免费 | 欧美日韩后 | 亚洲精品国产精品99久久 | 日韩在线观看三区 | 人人爱在线视频 | 亚洲激情小视频 | 27xxoo无遮挡动态视频 | 欧美日韩高清在线观看 | 91一区二区在线 | 久久精品视频在线免费观看 | 亚洲精品国产第一综合99久久 | 开心激情网五月天 | 精品久久久久久久久久 | 在线不卡的av | 亚洲 中文字幕av | 久在线观看 | 亚洲高清视频一区二区三区 | 亚洲专区一二三 | 精品天堂av| 午夜国产一区 | 日日爽天天| 色噜噜噜噜 | 99激情网| 久久久69| 欧美性极品xxxx娇小 | 免费在线观看av片 | 亚洲va韩国va欧美va精四季 | 免费看av片网站 | 99久久久成人国产精品 | 亚洲精品tv| 欧美精品小视频 | 国产香蕉视频在线观看 | 色丁香综合 | 国产精品一区二区三区在线播放 |