ログイン  |  新規登録  |
ログイン
ユーザ名:

パスワード:


SSL
パスワード紛失

新規登録
メインメニュー
オンライン状況
5 人のユーザが現在オンラインです。 (1 人のユーザが 解読室 を参照しています。)

登録ユーザ: 0
ゲスト: 5

もっと...
アクセスカウンタ
今日 : 156156156
昨日 : 470470470
今週 : 1062106210621062
今月 : 6922692269226922
総計 : 2026186202618620261862026186202618620261862026186
平均 : 488488488
LogCounterX by taquino
日本ブログ村
にほんブログ村 住まいブログ 一戸建 注文住宅(施主)へ
にほんブログ村 自転車ブログ 中年サイクリストへ
にほんブログ村 IT技術ブログ ソフトウェアへ
広告
[ リロード ]   [ ソース ]  [ トップ | 一覧 | 単語検索 | 最新 | バックアップ | ヘルプ ]

Counter: 8675, today: 1, yesterday: 0

概要

  • boot-powerpc.Sにて定義。
  • スタックフレームポインタの初期化を行い、entry()を呼び出します。
  • PowerPC405はリセット時にプログラムカウンタが0xFFFF_FFFCに初期化されます。

SUZAKU-Vでは0xFFFF_C000〜0xFFFF_FFFFにはFPGAの内部メモリBRAMがマップされており、ここにはBBootという第1ステージブートローダが入っています。BBootは第2ステージブートローダであるHermiを起動する役割と、モトローラS形式でダウンロードしたHermitをFLASHメモリに書き込む機能を持っています。BBootはFLASHメモリからHermitをSDRAMにコピーしてHermitに制御を渡します。

Start Address End Address ペリフェラル デバイス
0x0000_0000 0x01FF_FFFF PLB-SDRAM Controller SDRAM 32MByte
0x0200_0000 0xEFFF_FFFF Free
0xF000_0000 0xF07F_FFFF PLB-EMC FLASHメモリ8MByte
0xF080_0000 0xF0CF_FFFF Free
0xF0E0_0000 0xF0EF_FFFF PLB-EMC LANコントローラ
0xF0F0_0000 0xF0FF_1FFF Free
0xF0FF_2000 0xF0FF_20FF OPB-UART Lite RS232C
0xF0FF_2100 0xF0FF_2FFF Free
0xF0FF_3000 0xF0FF_30FF OPB-Interrupt Controller
0xF0FF_3100 0xF0FF_9FFF Free
0xF0FF_A000 0xF0FF_A0FF OPB-GPIO ブートモードジャンパ、ソフトウェアリセット
0xFFFF_A100 0xFFFF_BFFF Free
0xFFFF_C000 0xFFFF_FFFF BRAM BRAN 16KByte

引数

  • なし

実装

      1 /*
      2  * boot.S: assembly language bootstrap
      3  *
      4  * Copyright (c) 2003-2005 Atmark Techno, Inc.
      5  *
      6  * Based on:
      7  *      Copyright (c) 2000 Blue Mug, Inc.  All Rights Reserved.
      8  */
      9 
     10 #include "memregions.h"
     11 
     12         .section .boot
     13         .global _start
     14 _start:
     15 
     16         lis     r1, (DRAM_BASEADDR+DRAM_SIZE)@h         /* init stack po  inter */
     17         ori     r1, r1, (DRAM_BASEADDR+DRAM_SIZE)@l     /* set sp to high up */ 
     18 
     19         bl      entry                   /* see entry.c */
     20 
     21 1:      bl      1b

  • 16行目:r1レジスタにDRAM_BASEADDR+DRAM_SIZEの上位16bitをロードする。
  • 17行目:r1レジスタにDRAM_BASEADDR+DRAM_SIZEの下位16bitをロードする。
    • SVR4のABIではr1レジスタはスタックフレームポインタとして使用します。

つまり、上記はスタックフレームポインタをSUZAKU-VのSDRAMの最上位アドレス(0x01FFFFFF)に初期化する処理です。

  • DRAM_BASEADDR、DRAM_SIZEはsrc/target/suzaku/memregions.hで以下のとおり定義されています。

#define DRAM_BASEADDR        XPAR_SDRAM_CONTROLLER_BASEADDR
#define DRAM_SIZE            XPAR_SDRAM_CONTROLLER_HIGHADDR - XPAR_SDRAM_CONTROLLER_BASEADDR + 1
  • XPAR_SDRAM_CONTROLLER_BASEADDR、XPAR_SDRAM_CONTROLLER_HIGHADDRはinclude/powerpc/xparameter.hで以下のとおり定義されています。

#define XPAR_SDRAM_CONTROLLER_BASEADDR 0x00000000
#define XPAR_SDRAM_CONTROLLER_HIGHADDR 0x01FFFFFF
  • 19行目:bssセクションの初期化を行い、Linux起動処理を行うか、ブートローダモードへ移行します。

呼出元


コメント:

履歴

更新日 更新者 更新内容
2007/2/3 悩めるエンジニア 新規作成

コメント/タグ


コメント:

ページコメント
投稿された内容の著作権はコメントの投稿者に帰属します。