Jetson TK1 核心啟動過程中依照 board_info 參數配置硬體. board_info 存在於 EEPROM 中偏移量 0x04.

<< Jetson TK1 版本編號定義於 tegra-board-id.h >>

/* Processor Board ID */
#define BOARD_PM375 0x0177
/* Board SKU */
#define BOARD_SKU_0 0x0000
/* Board Fab version */
#define BOARD_FAB_A02 0x2

<< 資料結構定義於 board.h >>

struct board_info {
        u16 board_id;
        u16 sku;
        u8 fab;
        u8 major_revision;
        u8 minor_revision;
};

<< EEPROM 中裝置序號定義 >>

(include/configs/jetson-tk1.h)
#define EEPROM_I2C_BUS 1
#define EEPROM_I2C_ADDRESS 0x56
#define EEPROM_SERIAL_OFFSET 0x04
#define NUM_SERIAL_ID_BYTES 8

<< U-Boot 從 EEPROM 讀取裝置序號 >>

(board/nvidia/common/board.c)
get_board_serial() 讀取裝置序號.
fdt_serial_tag_setup() 建立裝置樹節點 chosen/board_info 並填寫 id, sku, fab, major_revision, minor_revion.

<< 核心讀取裝置樹節點 >>

(arch/arm/mach-tegra/common.c)
tegra_get_board_info() 取裝置樹節點 "chosen/board_info".

<< Command Line 中 board_info 參數在 R21.2 並未使用 >>

APPEND console=ttyS0,115200n8 console=tty1 no_console_suspend=1 lp0_vec=2064@0xf46ff000 mem=2015M@2048M memtype=255 ddr_die=2048M@2048M section=256M pmuboard=0x0177:0x0000:0x02:0x43:0x00 tsec=32M@3913M otf_key=c75e5bb91eb3bd947560357b64422f85 usbcore.old_scheme_first=1 core_edp_mv=1150 core_edp_ma=4000 tegraid=40.1.1.0.0 debug_uartport=lsport,3 power_supply=Adapter audio_codec=rt5640 modem_id=0 android.kerneltype=normal fbcon=map:1 commchip_id=0 usb_port_owner_info=0 lane_owner_info=6 emc_max_dvfs=0 touch_id=0@0 board_info=0x0177:0x0000:0x02:0x43:0x00 root=/dev/mmcblk0p1 rw rootwait tegraboot=sdmmc gpt

(完成) 

 

文章標籤
創作者介紹
創作者 版大 的頭像
版大

嵌入式系統

版大 發表在 痞客邦 留言(0) 人氣()