SlideShare a Scribd company logo
“Nghịch”U-boot


      HND
  Tháng 9, 2012
Phần 1

LÝ DO PHẢI NGHỊCH
Build U-boot: vài thắc mắc
• Configure board:
  – #make CROSS_COMPILE=arm-none-eabi-
    da850evm_config.
  – #make CROSS_COMPILE=arm-none-eabi-
• Cái gì thực sự chạy đằng sau các lệnh này?
  – File nào sẽ được khi gọi khi các lệnh trên được
    thực thi?
  – Liệu U-boot lấy từ trên mạng về, có chạy với
    board của mình hay không?
Tại sao “phá” U-boot(1)
• Vai trò quen thuộc:
  – Sử dụng U-boot như là bootloader: boot từ
    flash(nor,nand,MMC), hay boot từ cách kênh giao
    tiếp như: ethernet, uart.
  – Sử dụng U-boot để gọi linux kernel: truyền
    arguments cho kernel.
Tại sao “phá” U-boot(2)
• Vai trò “phá”
  – Dùng U-boot để học nhúng(embedded system).
  – Dùng U-boot để phát triển ứng dụng đơn(stand-
    alone application).
  – Dùng U-boot để thử nghiệm driver: GPIO,uart,spi,
    i2c, ethernet, flashs…
Ai nên “phá” U-boot(1)
• Các “tay mơ”( newbie) chưa biết gì U-boot
  nên “phá”.
• Chưa biết về nhúng.

• Các chuyên gia làm board(hardware expert)
  nên “phá”.
Ai nên “phá” U-boot(2)
• Cho Newbie:
  – Làm quen với cách làm việc của open source: cài
    đặt cross-compiler, Makefile, C source code.
  – Sau đó là làm quen với CPU: starup code, system
    configuration.
  – Làm quen với cách viết code trên C.
Ai nên “phá” U-boot(3)
• Chuyên gia sản xuất development board
  – Tạo u-boot phù hợp với board của mình( chẳng lẽ
    cứ xài u-boot của người khác).
  – Cung cấp nhanh ứng dụng để test hardware.
Phần 2

CHUẨN BỊ “NGHỊCH”
Chuẩn bị môi trường “nghịch”(1)
• Môi trường miễn phí:
  – 1 máy tính “dỏm”, có cài Ubuntu(12.04 or higher).
  – Internet: nhớ có tunnel proxy để vượt tường lửa ->
    truy cập facebook(giải thích sau).
Chuẩn bị môi trường “nghịch”(2)
• Trình biên dịch:
   – Sử dụng Code Sourcery:
      • Có phiên bản miễn phí:
      • Có phiên bản commercial(phòng khi dự án thành công,có tiền
        chuyển từ miễn phí sang).
   – Lưu ý khi download Code Sourcery:
      • Download phiên bản dành cho loại CPU nào(arm,intel,MIPS,…)
      • Môi trường để cài: Linux(Ubuntu), hay Windows.
      • Download the EABI Release: dành cho build U-boot,linux
        kernel( arm-none-eabi-)
      • Download the GNU/Linux Release: dành cho build ứng dụng để
        chạy trên linux(arm-none-linux-gnueabi-gcc- ),chưa cần thiết cho
        build U-boot,kernel linux.
Chuẩn bị môi trường “nghịch”(3)
• Cài đặt cross-compiler:
  – Chạy cài đặt Code Sourcery trên Ubuntu( chọn
    thiết lập mặc định cho chắc). Nếu Ubuntu không
    cho chạy(do thiếu quyền) thì mở Terminal, và thiết
    lập:
     • #chmod +x “file cài đặt code sourcery”
  – Test cross-compiler: mở Terminal, chạy dòng lệnh
    sau:
     • #arm-none-eabi-gcc -v
U-boot source code
• Download phiên bản U-boot mới nhất từ
  đây:http://ftp.denx.de/pub/u-boot/
• Hiện tại( Tháng 9, 2012) phiên bản an toàn
  nhất là: 2012_04 ( tuy nhiên có vấn đề với đọc
  Nand flash của TI).
• Giải nén u-boot:
  – #tar zvf u-boot-2012.04.tar.bz2
Phần 3:

B ẮT ĐẦU “NGHỊCH”
Môi trường phần cứng(1)
• SBC8018.
  – Sử dụng chip AM1808( tương đương L138,nhưng
    không có khối DSP).
  – Các tham số hardware cần lưu ý:
    • DDR: có dung lượng 128MBytes, bắt đầu từ địa chỉ:
      0xc0000000
    • UART:
    • NAND flash:
Giải mã U-boot – Configuration(1)
• Trước khi build u-boot,ta phải config source
  code bằng lệnh:
  – #make CROSS_COMPILE=arm-none-eabi-
    da850evm_config
• Vậy lệnh này ở đâu ra?
• Kiểm tra file board.cfg sẽ có 1 trường dữ liệu:
da850evm arm arm926ejs da8xxevm davinci
  davinci
  da850evm:MAC_ADDR_IN_SPIFLASH
Giải mã U-boot – Configuration(2)
Giá trị          Ý Nghĩa
Target           da850evm: tên của board. Do đó khi
                 config board ta phải chạy lệnh: #make
                 CROSS_COMPILE=arm-none-eabi-
                 da850evm_config
ARCH             arm
CPU              arm926ejs
Board name       da8xxevm
Vendor           davinci
Soc              davinci
Options          da850evm:MAC_ADDR_IN_SPIFLASH
Giải mã U-boot - CPU
• Từ bảng cấu hình, ta sẽ biết ngay đoạn mã
  quan trọng nhất: startup code cho CPU của
  board sẽ nằm ở:
  – /arch/arch’value/cpu/cpu’s value/soc :
    arch/arm/cpu/arm926ejs/davinci
Giải mã U-boot – Board
• Code dành để cấu hình board(sau khi start up) sẽ nằm
  ở:
   – /board/vendor/board name: /board/davinci/da8xxevm
• Vấn đề xuất hiện: trong thư mục
  /board/davinci/da8xxevm có rất nhiều file .c cho từng
  loại board khác( da830 …) vậy căn cứ vào đâu để biên
  dịch đúng file da850evm.c: kiểm tra Makefile ta thấy:
   – COBJS-$(CONFIG_MACH_DAVINCI_DA850_EVM)
      += da850evm.o
   – Điều đó chứng tỏ
     CONFIG_MACH_DAVINCI_DA850_EVM đã được
     “define” đâu đó.
Giải mã U-boot – “Đầu bự”
• U-boot giấu file config cho từng board ở nơi
  khá bí hiểm:
  – includeconfigs
• Toàn bộ các file định nghĩa cho các board phải
  nằm ở đây dưới cái tên: “board_name”.h .
  Trong trường hợp cụ thể ở đây là: da850evm.h
• Mở ra đúng phóc là có
  – #define
    CONFIG_MACH_DAVINCI_DA850_EVM
Giải mã U-boot – Xong
• Tới đây về cơ bản ta đã biết đường đi lối lại của U-boot
  khi nó configure, và biên dịch cho một board mới.
• Để cho rõ, ta nên làm một bài tập nhỏ sau: tạo “code
  base” trên u-boot hỗ trợ custom defined board như sau:
  CPU: am1808, board name: bullet, thiết kế giống như
  da850evm. Yêu cầu: các lệnh sau biên dịch thành công:
   – #make CROSS_COMPILE=arm-none-eabi-
     bullet_config
   – #make CROSS_COMPILE=arm-none-eabi-
• Có thể làm cho atmel, samsung hay freescale arm9
  đang có trên thị trường tùy ý.
Giải mã U-boot – Chữ nhiều quá
   thêm cái hình cho dễ hiểu
Giải mã U-boot: Đã thật sự xong chưa?
• Đã thật sự xong chưa? Liệu biên dịch thành
  công thì nạp xuống board có ra gì không?
• Sự cần thiết của driver.
• Các driver cần lưu ý:
  – UART.
  – Ethernet.
  – NAND flash.
Giải mã U-boot: Driver
• Điều chắc chắn: nếu board của bạn “mông má”
  từ 1 board đã chạy rồi(lưu ý phần UART phải
  giống nhé), quá trình tạo code giống như đã
  trình bày ở trên, thì console chắc cú là xuất ra
  dòng: #u-boot>
• Vậy phải làm gì tiếp theo? Driver tiếp là cái
  chắc vì:
  – Ngoại vi chắc chắn là khác với board gốc.
  – Chân cẳng cũng khác.
Giải mã U-boot: Thực thi U-boot
• U-boot được chạy như thế nào?
  – Tất cả CPU sẽ có phần bootstrap, đoạn code nhỏ này
    khởi tạo PLL, SRAM, SDRAM… Bootstrap này có
    sẵn hay có thể nạp vào SRAM của CPU bằng JTAG.
  – Nếu boot từ flash(nor, nand, spi), bootstrap sẽ truy
    cập( driver đọc flash tích hợp sẵn trong bootstrap) và
    đọc file(trong trường hợp này là u-boot) và để lên
    SDRAM.
  – Sau đó nhảy đến SDRAM tại địa chỉ vừa load để thực
    thi file.
  – Vì bootstrap chạy trên SRAM, nên nó khá nhỏ nên
    thường không có serial, ethernet …
Giải mã U-boot: Driver
• Vị trí source driver thường dùng:
  – /driver/serial: dành cho serial
  – /driver/mtd: memory technology device, nor nand
    và các loại flash vào đây.
  – /driver/gpio
  – /driver/net: lưu ý là các driver cho PHY device
    thường lại được đặt khá lung tung
     • /driver/net/phy.
     • Đôi khi nằm cùng vị trí với CPU,hoặc board( đề cập
       slide 17/18).
Giải mã U-boot: Driver UART
• Nhớ lại file “đầu bự” da850evm.h ở slide 19
  – CONFIG_SYS_NS16550
  – CONFIG_SYS_NS16550_SERIAL
• Tham chiếu vào Makefile ở /drivers/serial ta sẽ
  biết những file nào sẽ biên dịch để sử dụng là
  driver cho board.
Giải mã U-boot: Driver ethernet(1)
• U-boot chia ethernet làm 2 phần:
  – /net : có thể nói đây là lớp TCP/IP , phần này chắc
    chắn đúng, và ít khi cần port lại.
  – /drivers/net và /drivers/net/phy: tương ứng cho lớp
    MAC và PHY, cần port mỗi khi làm cho board
    mới.
  – Đầu mối kết hợp giữa 2 phần trên được thực hiện
    trong phần khởi tạo board, với sbc8018 thì trong
    hàm davinci_emac_initialize gọi bởi cpu_eth_init
Giải mã U-boot: Driver ethernet(2)
• Việc cần làm khi port:
   – Driver cho MAC quan trọng hơn PHY ( PHY gần như
     không cần, chỉ cần theo đúng generic PHY).
   – Nếu liên kết giữa MAC và PHY theo truyền thống( MII
     hay RMII).
      • MAC phát hiện,điều khiển PHY sử dụng MDC.
      • Dữ liệu trao đổi giữa MAC và PHY qua các đường IO độc lập với
        MDC -> MAC có thể không phát hiện PHY nhưng vẫn giao tiếp dữ
        liệu được.
   – Các loại khác: usb, com … : chưa biết.
   – Với sbc8018: căn cứ và Makefile trong /drivers/net để biết
     driver MAC nào được sử dụng:
      • COBJS-$(CONFIG_DRIVER_TI_EMAC) += davinci_emac.o
Giải mã U-boot: Driver NAND
               flash(1)
• Define: CONFIG_USE_NAND nếu sử dụng
  NAND.
• Makefile trong /drivers/mtd/nand cho ta biết file
  driver của NAND:
   – COBJS-$(CONFIG_NAND_DAVINCI) +=
     davinci_nand.o
• Cung cấp các tham số để driver cấu hình:
   – #define CONFIG_SYS_NAND_BASE
      DAVINCI_ASYNC_EMIF_DATA_CE3_BASE
   – #define CONFIG_SYS_NAND_PAGE_2K
   – #define CONFIG_SYS_NAND_CS        3
Giải mã U-boot: Driver NAND
               flash(2)
• Flash rất quan trọng:
  – Nơi chứa biến môi trường.
  – Nới chứa bản thân u-boot, đồng thời là các app được
    gọi bởi u-boot( user app hay linux kernel , rootfs).
• Cấu hình environment:
  – CONFIG_ENV_IS_IN_NAND : biến môi trường
    trong nand flash.
  – CONFIG_ENV_OFFSET: có thể ở đầu flash(block 0
    hay ở đoạn cuối flash).
  – CONFIG_ENV_SIZE: kích cỡ.
Giải mã U-boot: Hết
• Các điểm lưu ý:
  – Khai báo Board : boards.cfg
  – Board config: /include/configs/”boardname.h”
  – CPU/Board initialize: /arch/arch’value/cpu/cpu’s
    và /board/vendor/”boardname”
  – Makefile ở trong các thư mục driver.
     • /drivers/serial
     • /drivers/mtd/nand, /drivers/mtd/nor
     • /drivers/net, /drivers/net/phy

More Related Content

What's hot

07. giáo trình revit structure tiếng việt
07. giáo trình revit structure tiếng việt07. giáo trình revit structure tiếng việt
07. giáo trình revit structure tiếng việt
Hồng Sơn Nguyễn
 
SO SÁNH HIỆU QUẢ TÊ NGOÀI MÀNG CỨNG VÀ TÊ CẠNH CỘT SỐNG TRUYỀN LIÊN TỤC SAU P...
SO SÁNH HIỆU QUẢ TÊ NGOÀI MÀNG CỨNG VÀ TÊ CẠNH CỘT SỐNG TRUYỀN LIÊN TỤC SAU P...SO SÁNH HIỆU QUẢ TÊ NGOÀI MÀNG CỨNG VÀ TÊ CẠNH CỘT SỐNG TRUYỀN LIÊN TỤC SAU P...
SO SÁNH HIỆU QUẢ TÊ NGOÀI MÀNG CỨNG VÀ TÊ CẠNH CỘT SỐNG TRUYỀN LIÊN TỤC SAU P...
SoM
 
Tổng hợp lỗi thường gặp ở Revit - Phiên bản 2.0
Tổng hợp lỗi thường gặp ở Revit - Phiên bản 2.0Tổng hợp lỗi thường gặp ở Revit - Phiên bản 2.0
Tổng hợp lỗi thường gặp ở Revit - Phiên bản 2.0
Huytraining
 
Chương 3 cầu thang
Chương 3 cầu thangChương 3 cầu thang
Chương 3 cầu thang
Vương Hữu
 
Phục hồi chức năng hô hấp cho bệnh nhân copd
Phục hồi chức năng hô hấp cho bệnh nhân copdPhục hồi chức năng hô hấp cho bệnh nhân copd
Phục hồi chức năng hô hấp cho bệnh nhân copd
Bệnh Hô Hấp Mãn Tính
 
Đề tài: Nghiên cứu tối ưu kết cấu dàn bằng phương pháp mới, HOT
Đề tài: Nghiên cứu tối ưu kết cấu dàn bằng phương pháp mới, HOTĐề tài: Nghiên cứu tối ưu kết cấu dàn bằng phương pháp mới, HOT
Đề tài: Nghiên cứu tối ưu kết cấu dàn bằng phương pháp mới, HOT
Dịch vụ viết bài trọn gói ZALO 0917193864
 
SỬ DỤNG THUỐC GIẢM ĐAU PHỐI HỢP Ở NGƯỜI LỚN
SỬ DỤNG THUỐC GIẢM ĐAU PHỐI HỢP Ở NGƯỜI LỚNSỬ DỤNG THUỐC GIẢM ĐAU PHỐI HỢP Ở NGƯỜI LỚN
SỬ DỤNG THUỐC GIẢM ĐAU PHỐI HỢP Ở NGƯỜI LỚN
SoM
 
Câu hỏi đồ án tốt nghiệp khoa xây dựng
Câu hỏi đồ án tốt nghiệp khoa xây dựngCâu hỏi đồ án tốt nghiệp khoa xây dựng
Câu hỏi đồ án tốt nghiệp khoa xây dựng
chiennuce
 
Bài Giảng Đặt Nội Khí Quản Khó Cần Linh Hoạt
Bài Giảng Đặt Nội Khí Quản Khó Cần Linh Hoạt Bài Giảng Đặt Nội Khí Quản Khó Cần Linh Hoạt
Bài Giảng Đặt Nội Khí Quản Khó Cần Linh Hoạt
nataliej4
 
Introduction revit mep 2017
Introduction revit mep 2017Introduction revit mep 2017
Introduction revit mep 2017
HiddenNo
 
Chapitre 1 l'ordinateur
Chapitre 1 l'ordinateurChapitre 1 l'ordinateur
Chapitre 1 l'ordinateur
Mansour Dieng
 
Y HỌC HIỆN ĐẠI - HỘI CHỨNG BỤNG CẤP
Y HỌC HIỆN ĐẠI - HỘI CHỨNG BỤNG CẤP Y HỌC HIỆN ĐẠI - HỘI CHỨNG BỤNG CẤP
Y HỌC HIỆN ĐẠI - HỘI CHỨNG BỤNG CẤP
Great Doctor
 
Các phương pháp gây mê
Các phương pháp  gây mêCác phương pháp  gây mê
Các phương pháp gây mêBác Sĩ Meomeo
 
08 slide dieu chinh pa co2
08 slide dieu chinh pa co208 slide dieu chinh pa co2
08 slide dieu chinh pa co2
SỨC KHỎE VÀ CUỘC SỐNG
 
HC trung that
HC trung thatHC trung that
HC trung that
sangbsdk
 
Các thương tật thứ cấp
Các thương tật thứ cấpCác thương tật thứ cấp
Các thương tật thứ cấp
Cam Ba Thuc
 
Phục hồi chức năng gãy xương
Phục hồi chức năng gãy xươngPhục hồi chức năng gãy xương
Phục hồi chức năng gãy xương
Minh Dat Ton That
 

What's hot (20)

07. giáo trình revit structure tiếng việt
07. giáo trình revit structure tiếng việt07. giáo trình revit structure tiếng việt
07. giáo trình revit structure tiếng việt
 
Systeme
SystemeSysteme
Systeme
 
SO SÁNH HIỆU QUẢ TÊ NGOÀI MÀNG CỨNG VÀ TÊ CẠNH CỘT SỐNG TRUYỀN LIÊN TỤC SAU P...
SO SÁNH HIỆU QUẢ TÊ NGOÀI MÀNG CỨNG VÀ TÊ CẠNH CỘT SỐNG TRUYỀN LIÊN TỤC SAU P...SO SÁNH HIỆU QUẢ TÊ NGOÀI MÀNG CỨNG VÀ TÊ CẠNH CỘT SỐNG TRUYỀN LIÊN TỤC SAU P...
SO SÁNH HIỆU QUẢ TÊ NGOÀI MÀNG CỨNG VÀ TÊ CẠNH CỘT SỐNG TRUYỀN LIÊN TỤC SAU P...
 
Tổng hợp lỗi thường gặp ở Revit - Phiên bản 2.0
Tổng hợp lỗi thường gặp ở Revit - Phiên bản 2.0Tổng hợp lỗi thường gặp ở Revit - Phiên bản 2.0
Tổng hợp lỗi thường gặp ở Revit - Phiên bản 2.0
 
Chương 3 cầu thang
Chương 3 cầu thangChương 3 cầu thang
Chương 3 cầu thang
 
Phục hồi chức năng hô hấp cho bệnh nhân copd
Phục hồi chức năng hô hấp cho bệnh nhân copdPhục hồi chức năng hô hấp cho bệnh nhân copd
Phục hồi chức năng hô hấp cho bệnh nhân copd
 
Đề tài: Nghiên cứu tối ưu kết cấu dàn bằng phương pháp mới, HOT
Đề tài: Nghiên cứu tối ưu kết cấu dàn bằng phương pháp mới, HOTĐề tài: Nghiên cứu tối ưu kết cấu dàn bằng phương pháp mới, HOT
Đề tài: Nghiên cứu tối ưu kết cấu dàn bằng phương pháp mới, HOT
 
Ho hap p2
Ho hap p2Ho hap p2
Ho hap p2
 
SỬ DỤNG THUỐC GIẢM ĐAU PHỐI HỢP Ở NGƯỜI LỚN
SỬ DỤNG THUỐC GIẢM ĐAU PHỐI HỢP Ở NGƯỜI LỚNSỬ DỤNG THUỐC GIẢM ĐAU PHỐI HỢP Ở NGƯỜI LỚN
SỬ DỤNG THUỐC GIẢM ĐAU PHỐI HỢP Ở NGƯỜI LỚN
 
Câu hỏi đồ án tốt nghiệp khoa xây dựng
Câu hỏi đồ án tốt nghiệp khoa xây dựngCâu hỏi đồ án tốt nghiệp khoa xây dựng
Câu hỏi đồ án tốt nghiệp khoa xây dựng
 
Bài Giảng Đặt Nội Khí Quản Khó Cần Linh Hoạt
Bài Giảng Đặt Nội Khí Quản Khó Cần Linh Hoạt Bài Giảng Đặt Nội Khí Quản Khó Cần Linh Hoạt
Bài Giảng Đặt Nội Khí Quản Khó Cần Linh Hoạt
 
Introduction revit mep 2017
Introduction revit mep 2017Introduction revit mep 2017
Introduction revit mep 2017
 
Chapitre 1 l'ordinateur
Chapitre 1 l'ordinateurChapitre 1 l'ordinateur
Chapitre 1 l'ordinateur
 
Y HỌC HIỆN ĐẠI - HỘI CHỨNG BỤNG CẤP
Y HỌC HIỆN ĐẠI - HỘI CHỨNG BỤNG CẤP Y HỌC HIỆN ĐẠI - HỘI CHỨNG BỤNG CẤP
Y HỌC HIỆN ĐẠI - HỘI CHỨNG BỤNG CẤP
 
Các phương pháp gây mê
Các phương pháp  gây mêCác phương pháp  gây mê
Các phương pháp gây mê
 
GMHS - Chăm sóc bệnh nhân sau mổ
GMHS - Chăm sóc bệnh nhân sau mổGMHS - Chăm sóc bệnh nhân sau mổ
GMHS - Chăm sóc bệnh nhân sau mổ
 
08 slide dieu chinh pa co2
08 slide dieu chinh pa co208 slide dieu chinh pa co2
08 slide dieu chinh pa co2
 
HC trung that
HC trung thatHC trung that
HC trung that
 
Các thương tật thứ cấp
Các thương tật thứ cấpCác thương tật thứ cấp
Các thương tật thứ cấp
 
Phục hồi chức năng gãy xương
Phục hồi chức năng gãy xươngPhục hồi chức năng gãy xương
Phục hồi chức năng gãy xương
 

Similar to U boot

tài liệu Mã nguồn mở 02 sudung
tài liệu Mã nguồn mở  02 sudungtài liệu Mã nguồn mở  02 sudung
tài liệu Mã nguồn mở 02 sudung
Thuyet Nguyen
 
Báo cáo chuyên đề công nghệ mới
Báo cáo chuyên đề công nghệ mớiBáo cáo chuyên đề công nghệ mới
Báo cáo chuyên đề công nghệ mới
Phạm Ái
 
Chương 2 căn bản cisco ios
Chương 2 căn bản cisco iosChương 2 căn bản cisco ios
Chương 2 căn bản cisco ios
nguyenhoangbao
 
Mô phỏng vi điều khiển
Mô phỏng vi điều khiểnMô phỏng vi điều khiển
Mô phỏng vi điều khiển
Nguyễn Trung
 
L C D Demo Cho Microblaze
L C D Demo Cho MicroblazeL C D Demo Cho Microblaze
L C D Demo Cho Microblaze
iuui
 
Linux07 khoidong&dongtat
Linux07 khoidong&dongtatLinux07 khoidong&dongtat
Linux07 khoidong&dongtatanhbinhminhpro
 
Bao cao thuc tap tuan2
Bao cao thuc tap tuan2Bao cao thuc tap tuan2
Bao cao thuc tap tuan2duytruyen1993
 
Cài đặt quản trị hệ điều hành Ubuntu 12.0
Cài đặt quản trị  hệ điều hành Ubuntu 12.0Cài đặt quản trị  hệ điều hành Ubuntu 12.0
Cài đặt quản trị hệ điều hành Ubuntu 12.0
Cường Nguyễn Tam
 
Tai lieu quan tri he thong erp oracle
Tai lieu quan tri he thong erp oracleTai lieu quan tri he thong erp oracle
Tai lieu quan tri he thong erp oracle
Kiet Tran
 
Báo cáo thực tập tuần 1
Báo cáo thực tập tuần 1Báo cáo thực tập tuần 1
Báo cáo thực tập tuần 1tran thai
 
Thực hành cơ sở mạng truyền thông
Thực hành cơ sở mạng truyền thôngThực hành cơ sở mạng truyền thông
Thực hành cơ sở mạng truyền thông
Ai Tôi
 
Lesson 2 - Install Linux & Command Line Environment
Lesson 2 - Install Linux & Command Line EnvironmentLesson 2 - Install Linux & Command Line Environment
Lesson 2 - Install Linux & Command Line EnvironmentThang Man
 
Cau hinh router coban
Cau hinh router coban Cau hinh router coban
Cau hinh router coban Hate To Love
 
Linux Network Administration (LPI-1,LPI-2)
Linux Network Administration (LPI-1,LPI-2)Linux Network Administration (LPI-1,LPI-2)
Linux Network Administration (LPI-1,LPI-2)
laonap166
 
Bai1laprapcaidat ttth
Bai1laprapcaidat ttthBai1laprapcaidat ttth
Bai1laprapcaidat ttthut1101833
 
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intel
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intelCài đặt ubuntu server cho main supermicro x9 scl trên raid intel
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intellaonap166
 
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intel
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intelCài đặt ubuntu server cho main supermicro x9 scl trên raid intel
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intel
laonap166
 
Cấu hình Router cơ bản(Cisco)
Cấu hình Router cơ bản(Cisco)Cấu hình Router cơ bản(Cisco)
Cấu hình Router cơ bản(Cisco)
NamPhmHoi1
 
Spartan 3e-vietnamese
Spartan 3e-vietnameseSpartan 3e-vietnamese
Spartan 3e-vietnamesebuianhminh
 
07 booting and shutting down
07  booting and shutting down07  booting and shutting down
07 booting and shutting downCơn Gió
 

Similar to U boot (20)

tài liệu Mã nguồn mở 02 sudung
tài liệu Mã nguồn mở  02 sudungtài liệu Mã nguồn mở  02 sudung
tài liệu Mã nguồn mở 02 sudung
 
Báo cáo chuyên đề công nghệ mới
Báo cáo chuyên đề công nghệ mớiBáo cáo chuyên đề công nghệ mới
Báo cáo chuyên đề công nghệ mới
 
Chương 2 căn bản cisco ios
Chương 2 căn bản cisco iosChương 2 căn bản cisco ios
Chương 2 căn bản cisco ios
 
Mô phỏng vi điều khiển
Mô phỏng vi điều khiểnMô phỏng vi điều khiển
Mô phỏng vi điều khiển
 
L C D Demo Cho Microblaze
L C D Demo Cho MicroblazeL C D Demo Cho Microblaze
L C D Demo Cho Microblaze
 
Linux07 khoidong&dongtat
Linux07 khoidong&dongtatLinux07 khoidong&dongtat
Linux07 khoidong&dongtat
 
Bao cao thuc tap tuan2
Bao cao thuc tap tuan2Bao cao thuc tap tuan2
Bao cao thuc tap tuan2
 
Cài đặt quản trị hệ điều hành Ubuntu 12.0
Cài đặt quản trị  hệ điều hành Ubuntu 12.0Cài đặt quản trị  hệ điều hành Ubuntu 12.0
Cài đặt quản trị hệ điều hành Ubuntu 12.0
 
Tai lieu quan tri he thong erp oracle
Tai lieu quan tri he thong erp oracleTai lieu quan tri he thong erp oracle
Tai lieu quan tri he thong erp oracle
 
Báo cáo thực tập tuần 1
Báo cáo thực tập tuần 1Báo cáo thực tập tuần 1
Báo cáo thực tập tuần 1
 
Thực hành cơ sở mạng truyền thông
Thực hành cơ sở mạng truyền thôngThực hành cơ sở mạng truyền thông
Thực hành cơ sở mạng truyền thông
 
Lesson 2 - Install Linux & Command Line Environment
Lesson 2 - Install Linux & Command Line EnvironmentLesson 2 - Install Linux & Command Line Environment
Lesson 2 - Install Linux & Command Line Environment
 
Cau hinh router coban
Cau hinh router coban Cau hinh router coban
Cau hinh router coban
 
Linux Network Administration (LPI-1,LPI-2)
Linux Network Administration (LPI-1,LPI-2)Linux Network Administration (LPI-1,LPI-2)
Linux Network Administration (LPI-1,LPI-2)
 
Bai1laprapcaidat ttth
Bai1laprapcaidat ttthBai1laprapcaidat ttth
Bai1laprapcaidat ttth
 
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intel
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intelCài đặt ubuntu server cho main supermicro x9 scl trên raid intel
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intel
 
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intel
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intelCài đặt ubuntu server cho main supermicro x9 scl trên raid intel
Cài đặt ubuntu server cho main supermicro x9 scl trên raid intel
 
Cấu hình Router cơ bản(Cisco)
Cấu hình Router cơ bản(Cisco)Cấu hình Router cơ bản(Cisco)
Cấu hình Router cơ bản(Cisco)
 
Spartan 3e-vietnamese
Spartan 3e-vietnameseSpartan 3e-vietnamese
Spartan 3e-vietnamese
 
07 booting and shutting down
07  booting and shutting down07  booting and shutting down
07 booting and shutting down
 

Recently uploaded

CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
Nguyen Thanh Tu Collection
 
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
ngocnguyensp1
 
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptxDẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
nvlinhchi1612
 
ÔN-TẬP-CHƯƠNG1 Lịch sử đảng Việt Nam chủ đề 2
ÔN-TẬP-CHƯƠNG1 Lịch sử đảng Việt Nam chủ đề 2ÔN-TẬP-CHƯƠNG1 Lịch sử đảng Việt Nam chủ đề 2
ÔN-TẬP-CHƯƠNG1 Lịch sử đảng Việt Nam chủ đề 2
nhanviet247
 
HỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docx
HỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docxHỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docx
HỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docx
giangnguyen312210254
 
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
duykhoacao
 
Ngân hàng điện tử số ptit - giảng viên cô Hà
Ngân hàng điện tử số ptit - giảng viên cô HàNgân hàng điện tử số ptit - giảng viên cô Hà
Ngân hàng điện tử số ptit - giảng viên cô Hà
onLongV
 
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsgSinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
vivan030207
 
Chương 3 Linh kien ban dan và KD dien tu - Copy.ppt
Chương 3 Linh kien ban dan và KD dien tu - Copy.pptChương 3 Linh kien ban dan và KD dien tu - Copy.ppt
Chương 3 Linh kien ban dan và KD dien tu - Copy.ppt
PhiTrnHngRui
 
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nayẢnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
chinhkt50
 
Quan Tri Doi Moi Sang Tao_ Innovation Management
Quan Tri Doi Moi Sang Tao_ Innovation ManagementQuan Tri Doi Moi Sang Tao_ Innovation Management
Quan Tri Doi Moi Sang Tao_ Innovation Management
ChuPhan32
 
Chuong 2 Ngu am hoc - Dẫn luận ngôn ngữ - FTU
Chuong 2 Ngu am hoc - Dẫn luận ngôn ngữ - FTUChuong 2 Ngu am hoc - Dẫn luận ngôn ngữ - FTU
Chuong 2 Ngu am hoc - Dẫn luận ngôn ngữ - FTU
nvlinhchi1612
 

Recently uploaded (12)

CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
CHUYÊN ĐỀ BỒI DƯỠNG HỌC SINH GIỎI KHOA HỌC TỰ NHIÊN 9 CHƯƠNG TRÌNH MỚI - PHẦN...
 
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
30 - ĐỀ THI HSG - HÓA HỌC 9 - NĂM HỌC 2021 - 2022.pdf
 
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptxDẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
Dẫn luận ngôn ngữ - Tu vung ngu nghia.pptx
 
ÔN-TẬP-CHƯƠNG1 Lịch sử đảng Việt Nam chủ đề 2
ÔN-TẬP-CHƯƠNG1 Lịch sử đảng Việt Nam chủ đề 2ÔN-TẬP-CHƯƠNG1 Lịch sử đảng Việt Nam chủ đề 2
ÔN-TẬP-CHƯƠNG1 Lịch sử đảng Việt Nam chủ đề 2
 
HỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docx
HỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docxHỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docx
HỆ THỐNG 432 CÂU HỎI TRẮC NGHIỆM MÔN TTHCM.docx
 
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
Chương III (Nội dung vẽ sơ đồ tư duy chương 3)
 
Ngân hàng điện tử số ptit - giảng viên cô Hà
Ngân hàng điện tử số ptit - giảng viên cô HàNgân hàng điện tử số ptit - giảng viên cô Hà
Ngân hàng điện tử số ptit - giảng viên cô Hà
 
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsgSinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
Sinh-12-Chuyên-2022-2023.dành cho ôn thi hsg
 
Chương 3 Linh kien ban dan và KD dien tu - Copy.ppt
Chương 3 Linh kien ban dan và KD dien tu - Copy.pptChương 3 Linh kien ban dan và KD dien tu - Copy.ppt
Chương 3 Linh kien ban dan và KD dien tu - Copy.ppt
 
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nayẢnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
Ảnh hưởng của nhân sinh quan Phật giáo đến đời sống tinh thần Việt Nam hiện nay
 
Quan Tri Doi Moi Sang Tao_ Innovation Management
Quan Tri Doi Moi Sang Tao_ Innovation ManagementQuan Tri Doi Moi Sang Tao_ Innovation Management
Quan Tri Doi Moi Sang Tao_ Innovation Management
 
Chuong 2 Ngu am hoc - Dẫn luận ngôn ngữ - FTU
Chuong 2 Ngu am hoc - Dẫn luận ngôn ngữ - FTUChuong 2 Ngu am hoc - Dẫn luận ngôn ngữ - FTU
Chuong 2 Ngu am hoc - Dẫn luận ngôn ngữ - FTU
 

U boot

  • 1. “Nghịch”U-boot HND Tháng 9, 2012
  • 2. Phần 1 LÝ DO PHẢI NGHỊCH
  • 3. Build U-boot: vài thắc mắc • Configure board: – #make CROSS_COMPILE=arm-none-eabi- da850evm_config. – #make CROSS_COMPILE=arm-none-eabi- • Cái gì thực sự chạy đằng sau các lệnh này? – File nào sẽ được khi gọi khi các lệnh trên được thực thi? – Liệu U-boot lấy từ trên mạng về, có chạy với board của mình hay không?
  • 4. Tại sao “phá” U-boot(1) • Vai trò quen thuộc: – Sử dụng U-boot như là bootloader: boot từ flash(nor,nand,MMC), hay boot từ cách kênh giao tiếp như: ethernet, uart. – Sử dụng U-boot để gọi linux kernel: truyền arguments cho kernel.
  • 5. Tại sao “phá” U-boot(2) • Vai trò “phá” – Dùng U-boot để học nhúng(embedded system). – Dùng U-boot để phát triển ứng dụng đơn(stand- alone application). – Dùng U-boot để thử nghiệm driver: GPIO,uart,spi, i2c, ethernet, flashs…
  • 6. Ai nên “phá” U-boot(1) • Các “tay mơ”( newbie) chưa biết gì U-boot nên “phá”. • Chưa biết về nhúng. • Các chuyên gia làm board(hardware expert) nên “phá”.
  • 7. Ai nên “phá” U-boot(2) • Cho Newbie: – Làm quen với cách làm việc của open source: cài đặt cross-compiler, Makefile, C source code. – Sau đó là làm quen với CPU: starup code, system configuration. – Làm quen với cách viết code trên C.
  • 8. Ai nên “phá” U-boot(3) • Chuyên gia sản xuất development board – Tạo u-boot phù hợp với board của mình( chẳng lẽ cứ xài u-boot của người khác). – Cung cấp nhanh ứng dụng để test hardware.
  • 9. Phần 2 CHUẨN BỊ “NGHỊCH”
  • 10. Chuẩn bị môi trường “nghịch”(1) • Môi trường miễn phí: – 1 máy tính “dỏm”, có cài Ubuntu(12.04 or higher). – Internet: nhớ có tunnel proxy để vượt tường lửa -> truy cập facebook(giải thích sau).
  • 11. Chuẩn bị môi trường “nghịch”(2) • Trình biên dịch: – Sử dụng Code Sourcery: • Có phiên bản miễn phí: • Có phiên bản commercial(phòng khi dự án thành công,có tiền chuyển từ miễn phí sang). – Lưu ý khi download Code Sourcery: • Download phiên bản dành cho loại CPU nào(arm,intel,MIPS,…) • Môi trường để cài: Linux(Ubuntu), hay Windows. • Download the EABI Release: dành cho build U-boot,linux kernel( arm-none-eabi-) • Download the GNU/Linux Release: dành cho build ứng dụng để chạy trên linux(arm-none-linux-gnueabi-gcc- ),chưa cần thiết cho build U-boot,kernel linux.
  • 12. Chuẩn bị môi trường “nghịch”(3) • Cài đặt cross-compiler: – Chạy cài đặt Code Sourcery trên Ubuntu( chọn thiết lập mặc định cho chắc). Nếu Ubuntu không cho chạy(do thiếu quyền) thì mở Terminal, và thiết lập: • #chmod +x “file cài đặt code sourcery” – Test cross-compiler: mở Terminal, chạy dòng lệnh sau: • #arm-none-eabi-gcc -v
  • 13. U-boot source code • Download phiên bản U-boot mới nhất từ đây:http://ftp.denx.de/pub/u-boot/ • Hiện tại( Tháng 9, 2012) phiên bản an toàn nhất là: 2012_04 ( tuy nhiên có vấn đề với đọc Nand flash của TI). • Giải nén u-boot: – #tar zvf u-boot-2012.04.tar.bz2
  • 14. Phần 3: B ẮT ĐẦU “NGHỊCH”
  • 15. Môi trường phần cứng(1) • SBC8018. – Sử dụng chip AM1808( tương đương L138,nhưng không có khối DSP). – Các tham số hardware cần lưu ý: • DDR: có dung lượng 128MBytes, bắt đầu từ địa chỉ: 0xc0000000 • UART: • NAND flash:
  • 16. Giải mã U-boot – Configuration(1) • Trước khi build u-boot,ta phải config source code bằng lệnh: – #make CROSS_COMPILE=arm-none-eabi- da850evm_config • Vậy lệnh này ở đâu ra? • Kiểm tra file board.cfg sẽ có 1 trường dữ liệu: da850evm arm arm926ejs da8xxevm davinci davinci da850evm:MAC_ADDR_IN_SPIFLASH
  • 17. Giải mã U-boot – Configuration(2) Giá trị Ý Nghĩa Target da850evm: tên của board. Do đó khi config board ta phải chạy lệnh: #make CROSS_COMPILE=arm-none-eabi- da850evm_config ARCH arm CPU arm926ejs Board name da8xxevm Vendor davinci Soc davinci Options da850evm:MAC_ADDR_IN_SPIFLASH
  • 18. Giải mã U-boot - CPU • Từ bảng cấu hình, ta sẽ biết ngay đoạn mã quan trọng nhất: startup code cho CPU của board sẽ nằm ở: – /arch/arch’value/cpu/cpu’s value/soc : arch/arm/cpu/arm926ejs/davinci
  • 19. Giải mã U-boot – Board • Code dành để cấu hình board(sau khi start up) sẽ nằm ở: – /board/vendor/board name: /board/davinci/da8xxevm • Vấn đề xuất hiện: trong thư mục /board/davinci/da8xxevm có rất nhiều file .c cho từng loại board khác( da830 …) vậy căn cứ vào đâu để biên dịch đúng file da850evm.c: kiểm tra Makefile ta thấy: – COBJS-$(CONFIG_MACH_DAVINCI_DA850_EVM) += da850evm.o – Điều đó chứng tỏ CONFIG_MACH_DAVINCI_DA850_EVM đã được “define” đâu đó.
  • 20. Giải mã U-boot – “Đầu bự” • U-boot giấu file config cho từng board ở nơi khá bí hiểm: – includeconfigs • Toàn bộ các file định nghĩa cho các board phải nằm ở đây dưới cái tên: “board_name”.h . Trong trường hợp cụ thể ở đây là: da850evm.h • Mở ra đúng phóc là có – #define CONFIG_MACH_DAVINCI_DA850_EVM
  • 21. Giải mã U-boot – Xong • Tới đây về cơ bản ta đã biết đường đi lối lại của U-boot khi nó configure, và biên dịch cho một board mới. • Để cho rõ, ta nên làm một bài tập nhỏ sau: tạo “code base” trên u-boot hỗ trợ custom defined board như sau: CPU: am1808, board name: bullet, thiết kế giống như da850evm. Yêu cầu: các lệnh sau biên dịch thành công: – #make CROSS_COMPILE=arm-none-eabi- bullet_config – #make CROSS_COMPILE=arm-none-eabi- • Có thể làm cho atmel, samsung hay freescale arm9 đang có trên thị trường tùy ý.
  • 22. Giải mã U-boot – Chữ nhiều quá thêm cái hình cho dễ hiểu
  • 23. Giải mã U-boot: Đã thật sự xong chưa? • Đã thật sự xong chưa? Liệu biên dịch thành công thì nạp xuống board có ra gì không? • Sự cần thiết của driver. • Các driver cần lưu ý: – UART. – Ethernet. – NAND flash.
  • 24. Giải mã U-boot: Driver • Điều chắc chắn: nếu board của bạn “mông má” từ 1 board đã chạy rồi(lưu ý phần UART phải giống nhé), quá trình tạo code giống như đã trình bày ở trên, thì console chắc cú là xuất ra dòng: #u-boot> • Vậy phải làm gì tiếp theo? Driver tiếp là cái chắc vì: – Ngoại vi chắc chắn là khác với board gốc. – Chân cẳng cũng khác.
  • 25. Giải mã U-boot: Thực thi U-boot • U-boot được chạy như thế nào? – Tất cả CPU sẽ có phần bootstrap, đoạn code nhỏ này khởi tạo PLL, SRAM, SDRAM… Bootstrap này có sẵn hay có thể nạp vào SRAM của CPU bằng JTAG. – Nếu boot từ flash(nor, nand, spi), bootstrap sẽ truy cập( driver đọc flash tích hợp sẵn trong bootstrap) và đọc file(trong trường hợp này là u-boot) và để lên SDRAM. – Sau đó nhảy đến SDRAM tại địa chỉ vừa load để thực thi file. – Vì bootstrap chạy trên SRAM, nên nó khá nhỏ nên thường không có serial, ethernet …
  • 26. Giải mã U-boot: Driver • Vị trí source driver thường dùng: – /driver/serial: dành cho serial – /driver/mtd: memory technology device, nor nand và các loại flash vào đây. – /driver/gpio – /driver/net: lưu ý là các driver cho PHY device thường lại được đặt khá lung tung • /driver/net/phy. • Đôi khi nằm cùng vị trí với CPU,hoặc board( đề cập slide 17/18).
  • 27. Giải mã U-boot: Driver UART • Nhớ lại file “đầu bự” da850evm.h ở slide 19 – CONFIG_SYS_NS16550 – CONFIG_SYS_NS16550_SERIAL • Tham chiếu vào Makefile ở /drivers/serial ta sẽ biết những file nào sẽ biên dịch để sử dụng là driver cho board.
  • 28. Giải mã U-boot: Driver ethernet(1) • U-boot chia ethernet làm 2 phần: – /net : có thể nói đây là lớp TCP/IP , phần này chắc chắn đúng, và ít khi cần port lại. – /drivers/net và /drivers/net/phy: tương ứng cho lớp MAC và PHY, cần port mỗi khi làm cho board mới. – Đầu mối kết hợp giữa 2 phần trên được thực hiện trong phần khởi tạo board, với sbc8018 thì trong hàm davinci_emac_initialize gọi bởi cpu_eth_init
  • 29. Giải mã U-boot: Driver ethernet(2) • Việc cần làm khi port: – Driver cho MAC quan trọng hơn PHY ( PHY gần như không cần, chỉ cần theo đúng generic PHY). – Nếu liên kết giữa MAC và PHY theo truyền thống( MII hay RMII). • MAC phát hiện,điều khiển PHY sử dụng MDC. • Dữ liệu trao đổi giữa MAC và PHY qua các đường IO độc lập với MDC -> MAC có thể không phát hiện PHY nhưng vẫn giao tiếp dữ liệu được. – Các loại khác: usb, com … : chưa biết. – Với sbc8018: căn cứ và Makefile trong /drivers/net để biết driver MAC nào được sử dụng: • COBJS-$(CONFIG_DRIVER_TI_EMAC) += davinci_emac.o
  • 30. Giải mã U-boot: Driver NAND flash(1) • Define: CONFIG_USE_NAND nếu sử dụng NAND. • Makefile trong /drivers/mtd/nand cho ta biết file driver của NAND: – COBJS-$(CONFIG_NAND_DAVINCI) += davinci_nand.o • Cung cấp các tham số để driver cấu hình: – #define CONFIG_SYS_NAND_BASE DAVINCI_ASYNC_EMIF_DATA_CE3_BASE – #define CONFIG_SYS_NAND_PAGE_2K – #define CONFIG_SYS_NAND_CS 3
  • 31. Giải mã U-boot: Driver NAND flash(2) • Flash rất quan trọng: – Nơi chứa biến môi trường. – Nới chứa bản thân u-boot, đồng thời là các app được gọi bởi u-boot( user app hay linux kernel , rootfs). • Cấu hình environment: – CONFIG_ENV_IS_IN_NAND : biến môi trường trong nand flash. – CONFIG_ENV_OFFSET: có thể ở đầu flash(block 0 hay ở đoạn cuối flash). – CONFIG_ENV_SIZE: kích cỡ.
  • 32. Giải mã U-boot: Hết • Các điểm lưu ý: – Khai báo Board : boards.cfg – Board config: /include/configs/”boardname.h” – CPU/Board initialize: /arch/arch’value/cpu/cpu’s và /board/vendor/”boardname” – Makefile ở trong các thư mục driver. • /drivers/serial • /drivers/mtd/nand, /drivers/mtd/nor • /drivers/net, /drivers/net/phy