rpi_start.Sを読む (第9回)
		
	
	
今回読むのは次の部分です。
これで終わりです。だと面白くないので、ちょっと振り返ってみましょう。
第6回から第8回までは、第3回でゼロに初期化したL1テーブルを設定する一連の処理でした。
処理は、
mmu_init_tableは、次のようなテーブルでした。
	
これが、L1テーブルに格納されるころには次のようになり、
	
L1テーブルは次のように設定されたということになります。
	
		
	
    186 	.unreq	va
    187 	.unreq	pa
    188 	.unreq	n_sec
    189 	.unreq	attr
    190 	.unreq	itable
    191 	.unreq	l1table
    192 	.unreq	l1sfrm
これは、157行目からの
    157 	l1table	.req r0
    158 	va	.req r1
    159 	pa	.req r2
    160 	n_sec	.req r3
    161 	attr	.req r4
    162 	itable	.req r5
    163 	l1sfrm	.req r6
に対して、反対のことをしているわけですね。これで終わりです。だと面白くないので、ちょっと振り返ってみましょう。
第6回から第8回までは、第3回でゼロに初期化したL1テーブルを設定する一連の処理でした。
処理は、
- mmu_init_tableに設定された三つのva, pa, n_sec, attrによるループ
- n_secによるループ
mmu_init_tableは、次のようなテーブルでした。
| va | pa | nsec | attr | 
|---|---|---|---|
| 0x0 | 0x0 | 0x643033 | 0x412 | 
| 0xC0000000 | 0x0 | 0x643033 | 0x041E | 
| 0xF2000000 | 0x20000000 | 0x010FFFFF | 0x0412 | 
| va | pa | n_sec | 
|---|---|---|
| 0x0000 | 0x00000412 | 0x06 | 
| 0x2000 | 0x0000041E | 0x06 | 
| 0x3C80 | 0x20000412 | 0x10 | 
| L1 offset | L1 entry | 
|---|---|
| 0000 | 0x00000412 | 
| 0004 | 0x00000412 | 
| 0008 | 0x00000412 | 
| 000C | 0x00000412 | 
| 0010 | 0x00000412 | 
| 0014 | 0x00000412 | 
| 0018 | 0x00000000 | 
| 001C | 0x00000000 | 
| (中略) | |
| 1FF8 | 0x00000000 | 
| 1FFC | 0x00000000 | 
| 2000 | 0x0000041E | 
| 2004 | 0x0000041E | 
| 2008 | 0x0000041E | 
| 200C | 0x0000041E | 
| 2010 | 0x0000041E | 
| 2014 | 0x0000041E | 
| 2018 | 0x00000000 | 
| 201C | 0x00000000 | 
| (中略) | |
| 3C78 | 0x00000000 | 
| 3C7C | 0x00000000 | 
| 3C80 | 0x20000412 | 
| 3C84 | 0x20000412 | 
| 3C88 | 0x20000412 | 
| 3C8C | 0x20000412 | 
| 3C90 | 0x20000412 | 
| 3C94 | 0x20000412 | 
| 3C98 | 0x20000412 | 
| 3C9C | 0x20000412 | 
| 3CA0 | 0x20000412 | 
| 3CA4 | 0x20000412 | 
| 3CA8 | 0x20000412 | 
| 3CAC | 0x20000412 | 
| 3CB0 | 0x20000412 | 
| 3CB4 | 0x20000412 | 
| 3CB8 | 0x20000412 | 
| 3CBC | 0x20000412 | 
| 3CC0 | 0x00000000 | 
| 3CC4 | 0x00000000 | 
| (以下略) | |
コメント(0件)
		- TB-URL http://www.tokuda.net/diary/0811/tb/

