freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

黃剛--uboot在mini2440上的移植-資料下載頁

2025-08-05 18:32本頁面
  

【正文】 struct nand_chip *chip = mtdpriv。 DEBUGN(hwcontrol(): 0x%02x 0x%02x\n, cmd, ctrl)。 if (ctrl amp。 NAND_CTRL_CHANGE) { IO_ADDR_W = NF_BASE。 if (!(ctrl amp。 NAND_CLE)) //要寫的是地址 IO_ADDR_W |= S3C2440_ADDR_NALE。 if (!(ctrl amp。 NAND_ALE)) //要寫的是命令 IO_ADDR_W |= S3C2440_ADDR_NCLE。 if (ctrl amp。 NAND_NCE) NFCONT amp。= ~S3C2440_NFCONT_nCE。 //使能nand flash else NFCONT |= S3C2440_NFCONT_nCE。 //禁止nand flash } if (cmd != NAND_CMD_NONE) writeb(cmd,(void *)IO_ADDR_W)。}static int s3c2440_dev_ready(struct mtd_info *mtd){ DEBUGN(dev_ready\n)。 return (NFSTAT amp。 0x01)。}int board_nand_init(struct nand_chip *nand){ u_int32_t cfg。 u_int8_t tacls, twrph0, twrph1。 S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER()。 DEBUGN(board_nand_init()\n)。 clk_powerCLKCON |= (1 4)。 twrph0 = 4。 twrph1 = 2。 tacls = 0。 cfg = (tacls12)|(twrph08)|(twrph14)。 NFCONF = cfg。 cfg = (16)|(14)|(01)|(10)。 NFCONT = cfg。 /* initialize nand_chip data structure */ nandIO_ADDR_R = nandIO_ADDR_W = (void *)0x4e000010。 /* read_buf and write_buf are default */ /* read_byte and write_byte are default */ /* hwcontrol always must be implemented */ nandcmd_ctrl = s3c2440_hwcontrol。 nanddev_ready = s3c2440_dev_ready。 return 0。}其次,在開發(fā)板配置文件include/configs/,如下: gedit include/configs//* Command line configuration. */define CONFIG_CMD_NANDdefine CONFIG_CMDLINE_EDITINGifdef CONFIG_CMDLINE_EDITINGundef CONFIG_AUTO_COMPLETEelsedefine CONFIG_AUTO_COMPLETEendif/* NAND flash settings */if defined(CONFIG_CMD_NAND)define CONFIG_SYS_NAND_BASE0x4E000000 //Nand配置寄存器基地址define CONFIG_SYS_MAX_NAND_DEVICE1 define CONFIG_MTD_NAND_VERIFY_WRITE 1 //define NAND_SAMSUNG_LP_OPTIONS1 //注意:我們這里是64M的Nand Flash,所以不用,如果是128M的大塊Nand Flash,則需加上endif然后,在drivers/mtd/nand/,如下: gedit drivers/mtd/nand/MakefileCOBJSy += COBJS$(CONFIG_NAND_S3C2440) += 最后,重新編譯uboot并使用supervivi的a命令下載到Nand Flash中,把開發(fā)板調(diào)到Nand檔從Nand啟動,啟動結(jié)果圖如下:從上圖可以看出,現(xiàn)在uboot已經(jīng)對我們開發(fā)板上64M的Nand Flash完全支持了。Nand相關(guān)的基本命令也都可以正常使用了。補充內(nèi)容:從以上的啟動信息看,有一個警告信息“*** Warning bad CRC or NAND, using default environment”,我們知道,這是因為我們還沒有將uboot的環(huán)境變量保存nand中的緣故,那現(xiàn)在我們就用uboot的saveenv命令來保存環(huán)境變量,如下:從上圖可以看到保存環(huán)境變量并沒有成功,而且從信息看他將把環(huán)境變量保存到Flash中,顯然這不正確,我們是要保存到Nand中。原來,uboot在默認(rèn)的情況下把環(huán)境變量都是保存到Nor Flash中的,所以我們要修改代碼,讓他保存到Nand中,如下: gedit include/configs///注釋掉環(huán)境變量保存到Flash的宏(注意:如果你要使用上一篇中的從Nor啟動的saveenv命令,則要恢復(fù)這些Flash宏定義)//define CONFIG_ENV_IS_IN_FLASH 1//define CONFIG_ENV_SIZE 0x10000 /* Total Size of Environment Sector *///添加環(huán)境變量保存到Nand的宏(注意:如果你要使用上一篇中的從Nor啟動的saveenv命令,則不要這些Nand宏定義)define CONFIG_ENV_IS_IN_NAND 1define CONFIG_ENV_OFFSET 0x30000 //將環(huán)境變量保存到nand中的0x30000位置define CONFIG_ENV_SIZE 0x10000 /* Total Size of Environment Sector */重新編譯uboot,下載到nand中,啟動開發(fā)板再來保存環(huán)境變量,如下:可以看到,現(xiàn)在成功保存到Nand中了,為了驗證,我們重新啟動開發(fā)板,那條警告信息現(xiàn)在沒有了,如下: (四)上接:(三)在這一篇中,我們首先讓開發(fā)板對CS8900或者DM9000X網(wǎng)卡的支持,然后再分析實現(xiàn)uboot怎樣來引導(dǎo)Linux內(nèi)核啟動。因為測試uboot引導(dǎo)內(nèi)核我們要用到網(wǎng)絡(luò)下載功能。7)uboot對CS8900或者DM9000X網(wǎng)卡的支持。(代碼在drivers/net/目錄下),而且在S3C24XX系列中默認(rèn)對CS8900網(wǎng)卡進(jìn)行配置使用。只是在個別地方要根據(jù)開發(fā)板的具體網(wǎng)卡片選進(jìn)行設(shè)置,就可以對S3C24XX系列中CS8900網(wǎng)卡的支持使用。代碼如下: gedit include/configs//** Hardware drivers*/define CONFIG_DRIVER_CS89001/* we have a CS8900 onboard */define CS8900_BASE0x19000300 //注意:對不同的開發(fā)板就是要修改這個片選地址參數(shù),這個參數(shù)值就看開發(fā)板上網(wǎng)卡的片選引腳是接到ARM芯片存儲控制器的哪個Bank上define CS8900_BUS161/* the Linux driver does accesses as shorts */現(xiàn)在修改對我們開發(fā)板上DM9000X網(wǎng)卡的支持。首先,我們看看drivers/net/目錄下有關(guān)DM9000的代碼,、DM9000_IO宏、DM9000_DATA等宏的依賴,所以我們修改代碼如下: gedit include/configs//* * Hardware drivers */ 屏蔽掉uboot默認(rèn)對CS8900網(wǎng)卡的支持//define CONFIG_DRIVER_CS8900 1 /* we have a CS8900 onboard *///define CS8900_BASE 0x19000300//define CS8900_BUS16 1 /* the Linux driver does accesses as shorts *///添加uboot對DM9000X網(wǎng)卡的支持define CONFIG_DRIVER_DM9000 1 define CONFIG_NET_MULTI 1define CONFIG_DM9000_NO_SROM 1define CONFIG_DM9000_BASE 0x20000300 //網(wǎng)卡片選地址define DM9000_IO CONFIG_DM9000_BASEdefine DM9000_DATA (CONFIG_DM9000_BASE + 4) //網(wǎng)卡數(shù)據(jù)地址//define CONFIG_DM9000_USE_16BIT 1注意: 可以自動檢測DM9000網(wǎng)卡的位數(shù),根據(jù)開發(fā)板原理圖可知網(wǎng)卡的數(shù)據(jù)位為16位,并且網(wǎng)卡位于CPU的BANK4上,所以只需在 board/samsung/my2440/ define B4_BWSCON(DW16)即可,不需要此處的define CONFIG_DM9000_USE_16BIT 1//給uboot加上ping命令,用來測試網(wǎng)絡(luò)通不通define CONFIG_CMD_PING //恢復(fù)被注釋掉的網(wǎng)卡MAC地址和修改你合適的開發(fā)板IP地址define CONFIG_ETHADDR08:00:3e:26:0a:5b //開發(fā)板MAC地址define CONFIG_NETMASKdefine CONFIG_IPADDR //開發(fā)板IP地址define CONFIG_SERVERIP //Linux主機IP地址添加板載DM9000網(wǎng)卡初始化代碼,如下: gedit board/samsung/my2440/include include ifdef CONFIG_DRIVER_DM9000int board_eth_init(bd_t *bis){ return dm9000_initialize(bis)。}endif修改MD9000網(wǎng)卡驅(qū)動代碼,如下: gedit drivers/net/if 0 //屏蔽掉dm9000_init函數(shù)中的這一部分,不然使用網(wǎng)卡的時候會報“could not establish link”的錯誤i = 0。while (!(phy_read(1) amp。 0x20)) {/* autonegation plete bit */udelay(1000)。i++。if (i == 10000) {printf(could not establish link )。return 0。}}endif然后重新編譯uboot,下載到Nand中從Nand啟動,查看啟動信息和環(huán)境變量并使用ping命令測試網(wǎng)卡,操作如下:可以看到,啟動信息里面顯示了Net:dm9000,printenv查看的環(huán)境變量也和include/configs/。但是現(xiàn)在有個問題就是ping不能通過。經(jīng)過一段時間在網(wǎng)上搜索,原來有很多人都碰到了這種情況。出現(xiàn)問題的地方可能是DM9000網(wǎng)卡驅(qū)動中關(guān)閉網(wǎng)卡的地方,如是就試著修改代碼如下:gedit drivers/net/ //屏蔽掉dm9000_halt函數(shù)中的內(nèi)容/*Stop the interface.The interface is stopped when it is brought.*/static void dm9000_halt(struct eth_device *netdev){//DM9000_DBG(%sn, __func__)。///* RESET devie *///phy_write(0, 0x8000)。/* PHY RESET *///DM9000_iow(DM9000_GPR, 0x01)。/* PowerDown PHY *///DM9000_iow(DM9000_IMR, 0x80)。/* Disable all interrupt *///DM9000_iow(DM9000_RCR, 0x00)。/* Di
點擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1