Uboot代碼修改
common 文件夾修改內(nèi)容:
uboot1.1.6/common/cmd_nand.c
# 該文件主要實現(xiàn)Uboot操作NandFlash的命令集合,如執(zhí)行nand write.uboot 會調(diào)用該文件
uboot1.1.6/common/main.c
#用于實現(xiàn)啟動菜單顯示
uboot1.1.6/common/env_nand.c
#執(zhí)行 saveenv命令將調(diào)用該文件,用于存儲環(huán)境變量到NandFlash
cpu文件夾修改內(nèi)容
uboot1.1.6/cpu/s3c64xx/nand.c
# 該文件是NandFlash修改重要文件,定義8位硬件ECC功能。
uboot1.1.6/cpu/s3c64xx/nand_cp.c
# 該文件實現(xiàn)NandFlash 啟動系統(tǒng)關(guān)鍵代碼,比如把Uboot代碼拷貝到內(nèi)存運行。
uboot1.1.6/cpu/s3c64xx/usbd-otg-hs.c
# 用于菜單形式實現(xiàn)DNW燒寫系統(tǒng)功能,這部分與NandFlash關(guān)系不大,但跟Uboot菜單項相關(guān)。
driver文件夾修改內(nèi)容
uboot1.1.6/drivers/nand/nand_base.c
# NandFlash驅(qū)動重要文件,實現(xiàn)NandFlash的讀寫功能。
uboot1.1.6/drivers/nand/nand_ids.c
# NandFlash ID 定義文件,里面定義了我們目前支持的NandFlash類型,當(dāng)然里面有一些類型是系統(tǒng)自帶的。
uboot1.1.6/drivers/nand/nand_util.c
#NandFlash 驅(qū)動文件,實現(xiàn)NandFlash讀寫輔助功能。
include 文件夾修改內(nèi)容
uboot1.1.6/include/configs/smdk6410.h
#NandFlash相關(guān)的宏定義
uboot1.1.6/include/linux/mtd/nand.h
# 定義NandFlash 頁最大空間,OOB最大空間
uboot1.1.6/include/s3c6410.h
# s3c6410頭文件
注意:修改文件后,重新編譯前,需要執(zhí)行make clean 命令
以上是Uboot代碼 2G換成4G需要修改的地方,下面說一下Linux3.0內(nèi)核需要修改的文件。
Linux內(nèi)核修改文件
Linux-3.0.1/arch/arm/mach-s3c64xx/mach-smdk6410.c
# 該文件是6410平臺重要文件,實現(xiàn)平臺設(shè)備的添加,初始化工作,
這個文件里面有一個重要地方,就是對NandFlash的分區(qū)信息,
struct mtd_partition ok6410_nand_part[] = {
{
.name = “Bootloader”,
.offset = 0,
.size = (2 * SZ_1M),
.mask_flags = MTD_CAP_NANDFLASH,
},
{
.name = “Kernel”,
.offset = (2 * SZ_1M),
.size = (5*SZ_1M) ,
.mask_flags = MTD_CAP_NANDFLASH,
},
{
.name = “User”,
.offset = (7 * SZ_1M),
.size = (200*SZ_1M) ,
},
{
.name = “File System”,
.offset = MTDPART_OFS_APPEND,
.size = MTDPART_SIZ_FULL,
}
};
注意:
這個結(jié)構(gòu)體把NandFlash分成了四個分區(qū),之前飛凌發(fā)布的文件系統(tǒng)里面, /etc/init.d/rcS腳本把第四個分區(qū)掛載到了 /mnt目錄下面,這個可根據(jù)自己的需求,如果NandFlash仍然使用三個分區(qū),可以不更改這個文件。如果更改了這個文件,采用4個分區(qū),不要忘了更改 /etc/init.d/rcS文件,把第四個分區(qū)掛載到/mnt目錄下面。
更改之前先確認(rèn)一下文件系統(tǒng)里面 /etc/init.d/rcS文件 有沒有掛載第四個分區(qū),或者執(zhí)行mount 命令看一下目前的系統(tǒng)是三個分區(qū)還是四個分區(qū),根據(jù)具體情況來修改。
Linux-3.0.1/arch/arm/plat-samsung/dev-nand.c
# Nandflash 設(shè)備描述信息。
Linux-3.0.1/drivers/mtd/nand/nand_base.c
# NandFlash 驅(qū)動文件,實現(xiàn)基本的讀寫操作
Linux-3.0.1/drivers/mtd/nand/nand_ids.c
# NandFlash ID信息描述文件,與Uboot代碼中的nand_ids.c文件類似,但不相同。
Linux-3.0.1/drivers/mtd/nand/s3c_nand.c
# NandFlash驅(qū)動文件,實現(xiàn)NandFlash驅(qū)動的注冊,NandFlash設(shè)備掃描等重要。
Linux-3.0.1/include/mtd/mtd-abi.h
# NandFlash驅(qū)動頭文件
注意:修改文件后,重新編譯前,需要執(zhí)行make clean 命令
文件系統(tǒng):
文件系統(tǒng)部分不需要任何的改動,使用2G 版本的Yaffs2的制作工具
mkyaffs2image-256DDR 即可制作適用4G NandFlash.的rootfs.yaffs2.
注意:完成以上操作,系統(tǒng)成功運行后可以在超級終端或者DNW中執(zhí)行 df –h 命令,此時就可以看到NandFlash空間大小了。
----------------------------------------------------------------------------割一下------------------------------------------------------------------------------
Android2.3 2G NandFlash升級4G NandFlash的辦法
需要注意的是,三星6410平臺不適合使用Android2.3系統(tǒng)進(jìn)行產(chǎn)品研發(fā),如果在產(chǎn)品中使用Android系統(tǒng),建議使用三星210處理器或者更高主頻的A8,A9處理器。貌似6410的安卓是開發(fā)板廠商多是自己做的,學(xué)習(xí)可以,也基本只是學(xué)習(xí)用吧。。.
Uboot代碼修改
common 文件夾修改內(nèi)容:
uboot1.1.6/common/cmd_nand.c
# 該文件主要實現(xiàn)Uboot操作NandFlash的命令集合,如執(zhí)行nand write.uboot 會調(diào)用該文件
uboot1.1.6/common/main.c
#用于實現(xiàn)啟動菜單顯示
uboot1.1.6/common/env_nand.c
#執(zhí)行 saveenv命令將調(diào)用該文件,用于存儲環(huán)境變量到NandFlash
cpu文件夾修改內(nèi)容
uboot1.1.6/cpu/s3c64xx/nand.c
# 該文件是NandFlash修改重要文件,定義8位硬件ECC功能。
uboot1.1.6/cpu/s3c64xx/nand_cp.c
# 該文件實現(xiàn)NandFlash 啟動系統(tǒng)關(guān)鍵代碼,比如把Uboot代碼拷貝到內(nèi)存運行。
uboot1.1.6/cpu/s3c64xx/usbd-otg-hs.c
# 用于菜單形式實現(xiàn)DNW燒寫系統(tǒng)功能,這部分與NandFlash關(guān)系不大,但跟Uboot菜單項相關(guān)。
driver文件夾修改內(nèi)容
uboot1.1.6/drivers/nand/nand_base.c
# NandFlash驅(qū)動重要文件,實現(xiàn)NandFlash的讀寫功能。
uboot1.1.6/drivers/nand/nand_ids.c
# NandFlash ID 定義文件,里面定義了我們目前支持的NandFlash類型,當(dāng)然里面有一些類型是系統(tǒng)自帶的。
uboot1.1.6/drivers/nand/nand_util.c
#NandFlash 驅(qū)動文件,實現(xiàn)NandFlash讀寫輔助功能。
include 文件夾修改內(nèi)容
uboot1.1.6/include/configs/smdk6410.h
#NandFlash相關(guān)的宏定義
uboot1.1.6/include/linux/mtd/nand.h
# 定義NandFlash 頁最大空間,OOB最大空間
uboot1.1.6/include/s3c6410.h
# s3c6410頭文件
注意:修改文件后,重新編譯前,需要執(zhí)行make clean 命令
以上是Uboot代碼 2G換成4G需要修改的地方,以下是Android2.3內(nèi)核需要修改的文件。
Linux內(nèi)核修改文件
android2.3_kernel_v1.01/arch/arm/mach-s3c64xx/mach-smdk6410.c
# 該文件是6410平臺重要文件,實現(xiàn)平臺設(shè)備的添加,初始化工作,
這個文件里面有一個重要地方,就是對NandFlash的分區(qū)信息,
struct mtd_partition ok6410_nand_part[] = {
{
.name = “Bootloader”,
.offset = 0,
.size = (2 * SZ_1M),
.mask_flags = MTD_CAP_NANDFLASH,
},
{
.name = “Kernel”,
.offset = (2 * SZ_1M),
.size = (5*SZ_1M) ,
.mask_flags = MTD_CAP_NANDFLASH,
},
{
.name = “User”,
.offset = (7 * SZ_1M),
.size = (200*SZ_1M) ,
},
{
.name = “File System”,
.offset = MTDPART_OFS_APPEND,
.size = MTDPART_SIZ_FULL,
}
};
注意:
這個結(jié)構(gòu)體把NandFlash分成了四個分區(qū),以前發(fā)布的Android系統(tǒng)為三個分區(qū),修改這個文件后注意不要忘了修改文件系統(tǒng),文件系統(tǒng)部分需要把第四個分區(qū)掛載到/mnt/disk下面。
android2.3_kernel_v1.01/arch/arm/plat-samsung/dev-nand.c
# Nandflash 設(shè)備描述信息,定義NandFlash 寄存器地址范圍,是NandFlash驅(qū)動中最基本的文件。
android2.3_kernel_v1.01/drivers/mtd/nand/nand_base.c
# NandFlash 驅(qū)動文件,實現(xiàn)基本的讀寫,擦除操作,是NandFlash驅(qū)動中重要文件,
android2.3_kernel_v1.01/drivers/mtd/nand/nand_ids.c
# NandFlash ID信息描述文件,與Uboot代碼中的nand_ids.c文件類似,但不相同。
android2.3_kernel_v1.01/drivers/mtd/nand/s3c_nand.c
# NandFlash驅(qū)動文件,實現(xiàn)NandFlash驅(qū)動的注冊,NandFlash設(shè)備掃描,硬件ECC等重要功能。
android2.3_kernel_v1.01/include/linux/mtd/nand.h
# NandFlash宏,及重要結(jié)構(gòu)體定義文件,是NandFlash 驅(qū)動中非常重要的頭文件之一。
android2.3_kernel_v1.01/include/mtd/mtd-abi.h
# NandFlash驅(qū)動頭文件,里面定義一些輔助的結(jié)構(gòu)體。
注意:修改文件后,重新編譯前,需要執(zhí)行make clean 命令
文件系統(tǒng):
文件系統(tǒng)部分稍微修改一下,把/mnt/disk文件夾掛載到 /dev/block/mtdblock3塊設(shè)備處,
修改文件:
android2.3.4_32bit/vendor/forlinx/OK6410/init.rc
修改內(nèi)容如下:
on fs
# mount mtd partitions
# Mount /system rw first to give the filesystem a chance to save a checkpoint
mount yaffs2 mtd@system /system
mount yaffs2 mtd@system /system rw remount
mount yaffs2 mtd@userdata /data nosuid nodev
mount yaffs2 mtd@cache /cache nosuid nodev
mount yaffs2 /dev/block/mtdblock3 /mnt/disk
最后一行為新增命令,init.rc 文件已經(jīng)含有了其他的命令。
這個修改是基于OK6410 Linux2.6.28/3.0.1
Uboot代碼修改
common 文件夾修改內(nèi)容:
uboot1.1.6/common/cmd_nand.c
# 該文件主要實現(xiàn)Uboot操作NandFlash的命令集合,如執(zhí)行nand write.uboot 會調(diào)用該文件
uboot1.1.6/common/main.c
#用于實現(xiàn)啟動菜單顯示
uboot1.1.6/common/env_nand.c
#執(zhí)行 saveenv命令將調(diào)用該文件,用于存儲環(huán)境變量到NandFlash
cpu文件夾修改內(nèi)容
uboot1.1.6/cpu/s3c64xx/nand.c
# 該文件是NandFlash修改重要文件,定義8位硬件ECC功能。
uboot1.1.6/cpu/s3c64xx/nand_cp.c
# 該文件實現(xiàn)NandFlash 啟動系統(tǒng)關(guān)鍵代碼,比如把Uboot代碼拷貝到內(nèi)存運行。
uboot1.1.6/cpu/s3c64xx/usbd-otg-hs.c
# 用于菜單形式實現(xiàn)DNW燒寫系統(tǒng)功能,這部分與NandFlash關(guān)系不大,但跟Uboot菜單項相關(guān)。
driver文件夾修改內(nèi)容
uboot1.1.6/drivers/nand/nand_base.c
# NandFlash驅(qū)動重要文件,實現(xiàn)NandFlash的讀寫功能。
uboot1.1.6/drivers/nand/nand_ids.c
# NandFlash ID 定義文件,里面定義了我們目前支持的NandFlash類型,當(dāng)然里面有一些類型是系統(tǒng)自帶的。
uboot1.1.6/drivers/nand/nand_util.c
#NandFlash 驅(qū)動文件,實現(xiàn)NandFlash讀寫輔助功能。
include 文件夾修改內(nèi)容
uboot1.1.6/include/configs/smdk6410.h
#NandFlash相關(guān)的宏定義
uboot1.1.6/include/linux/mtd/nand.h
# 定義NandFlash 頁最大空間,OOB最大空間
uboot1.1.6/include/s3c6410.h
# s3c6410頭文件
注意:修改文件后,重新編譯前,需要執(zhí)行make clean 命令
以上是Uboot代碼 2G換成4G需要修改的地方,下面說一下Linux3.0內(nèi)核需要修改的文件。
Linux內(nèi)核修改文件
Linux-3.0.1/arch/arm/mach-s3c64xx/mach-smdk6410.c
# 該文件是6410平臺重要文件,實現(xiàn)平臺設(shè)備的添加,初始化工作,
這個文件里面有一個重要地方,就是對NandFlash的分區(qū)信息,
struct mtd_partition ok6410_nand_part[] = {
{
.name = “Bootloader”,
.offset = 0,
.size = (2 * SZ_1M),
.mask_flags = MTD_CAP_NANDFLASH,
},
{
.name = “Kernel”,
.offset = (2 * SZ_1M),
.size = (5*SZ_1M) ,
.mask_flags = MTD_CAP_NANDFLASH,
},
{
.name = “User”,
.offset = (7 * SZ_1M),
.size = (200*SZ_1M) ,
},
{
.name = “File System”,
.offset = MTDPART_OFS_APPEND,
.size = MTDPART_SIZ_FULL,
}
};
注意:
這個結(jié)構(gòu)體把NandFlash分成了四個分區(qū),之前飛凌發(fā)布的文件系統(tǒng)里面, /etc/init.d/rcS腳本把第四個分區(qū)掛載到了 /mnt目錄下面,這個可根據(jù)自己的需求,如果NandFlash仍然使用三個分區(qū),可以不更改這個文件。如果更改了這個文件,采用4個分區(qū),不要忘了更改 /etc/init.d/rcS文件,把第四個分區(qū)掛載到/mnt目錄下面。
更改之前先確認(rèn)一下文件系統(tǒng)里面 /etc/init.d/rcS文件 有沒有掛載第四個分區(qū),或者執(zhí)行mount 命令看一下目前的系統(tǒng)是三個分區(qū)還是四個分區(qū),根據(jù)具體情況來修改。
Linux-3.0.1/arch/arm/plat-samsung/dev-nand.c
# Nandflash 設(shè)備描述信息。
Linux-3.0.1/drivers/mtd/nand/nand_base.c
# NandFlash 驅(qū)動文件,實現(xiàn)基本的讀寫操作
Linux-3.0.1/drivers/mtd/nand/nand_ids.c
# NandFlash ID信息描述文件,與Uboot代碼中的nand_ids.c文件類似,但不相同。
Linux-3.0.1/drivers/mtd/nand/s3c_nand.c
# NandFlash驅(qū)動文件,實現(xiàn)NandFlash驅(qū)動的注冊,NandFlash設(shè)備掃描等重要。
Linux-3.0.1/include/mtd/mtd-abi.h
# NandFlash驅(qū)動頭文件
注意:修改文件后,重新編譯前,需要執(zhí)行make clean 命令
文件系統(tǒng):
文件系統(tǒng)部分不需要任何的改動,使用2G 版本的Yaffs2的制作工具
mkyaffs2image-256DDR 即可制作適用4G NandFlash.的rootfs.yaffs2.
注意:完成以上操作,系統(tǒng)成功運行后可以在超級終端或者DNW中執(zhí)行 df –h 命令,此時就可以看到NandFlash空間大小了。
----------------------------------------------------------------------------割一下------------------------------------------------------------------------------
Android2.3 2G NandFlash升級4G NandFlash的辦法
需要注意的是,三星6410平臺不適合使用Android2.3系統(tǒng)進(jìn)行產(chǎn)品研發(fā),如果在產(chǎn)品中使用Android系統(tǒng),建議使用三星210處理器或者更高主頻的A8,A9處理器。貌似6410的安卓是開發(fā)板廠商多是自己做的,學(xué)習(xí)可以,也基本只是學(xué)習(xí)用吧。。.
Uboot代碼修改
common 文件夾修改內(nèi)容:
uboot1.1.6/common/cmd_nand.c
# 該文件主要實現(xiàn)Uboot操作NandFlash的命令集合,如執(zhí)行nand write.uboot 會調(diào)用該文件
uboot1.1.6/common/main.c
#用于實現(xiàn)啟動菜單顯示
uboot1.1.6/common/env_nand.c
#執(zhí)行 saveenv命令將調(diào)用該文件,用于存儲環(huán)境變量到NandFlash
cpu文件夾修改內(nèi)容
uboot1.1.6/cpu/s3c64xx/nand.c
# 該文件是NandFlash修改重要文件,定義8位硬件ECC功能。
uboot1.1.6/cpu/s3c64xx/nand_cp.c
# 該文件實現(xiàn)NandFlash 啟動系統(tǒng)關(guān)鍵代碼,比如把Uboot代碼拷貝到內(nèi)存運行。
uboot1.1.6/cpu/s3c64xx/usbd-otg-hs.c
# 用于菜單形式實現(xiàn)DNW燒寫系統(tǒng)功能,這部分與NandFlash關(guān)系不大,但跟Uboot菜單項相關(guān)。
driver文件夾修改內(nèi)容
uboot1.1.6/drivers/nand/nand_base.c
# NandFlash驅(qū)動重要文件,實現(xiàn)NandFlash的讀寫功能。
uboot1.1.6/drivers/nand/nand_ids.c
# NandFlash ID 定義文件,里面定義了我們目前支持的NandFlash類型,當(dāng)然里面有一些類型是系統(tǒng)自帶的。
uboot1.1.6/drivers/nand/nand_util.c
#NandFlash 驅(qū)動文件,實現(xiàn)NandFlash讀寫輔助功能。
include 文件夾修改內(nèi)容
uboot1.1.6/include/configs/smdk6410.h
#NandFlash相關(guān)的宏定義
uboot1.1.6/include/linux/mtd/nand.h
# 定義NandFlash 頁最大空間,OOB最大空間
uboot1.1.6/include/s3c6410.h
# s3c6410頭文件
注意:修改文件后,重新編譯前,需要執(zhí)行make clean 命令
以上是Uboot代碼 2G換成4G需要修改的地方,以下是Android2.3內(nèi)核需要修改的文件。
Linux內(nèi)核修改文件
android2.3_kernel_v1.01/arch/arm/mach-s3c64xx/mach-smdk6410.c
# 該文件是6410平臺重要文件,實現(xiàn)平臺設(shè)備的添加,初始化工作,
這個文件里面有一個重要地方,就是對NandFlash的分區(qū)信息,
struct mtd_partition ok6410_nand_part[] = {
{
.name = “Bootloader”,
.offset = 0,
.size = (2 * SZ_1M),
.mask_flags = MTD_CAP_NANDFLASH,
},
{
.name = “Kernel”,
.offset = (2 * SZ_1M),
.size = (5*SZ_1M) ,
.mask_flags = MTD_CAP_NANDFLASH,
},
{
.name = “User”,
.offset = (7 * SZ_1M),
.size = (200*SZ_1M) ,
},
{
.name = “File System”,
.offset = MTDPART_OFS_APPEND,
.size = MTDPART_SIZ_FULL,
}
};
注意:
這個結(jié)構(gòu)體把NandFlash分成了四個分區(qū),以前發(fā)布的Android系統(tǒng)為三個分區(qū),修改這個文件后注意不要忘了修改文件系統(tǒng),文件系統(tǒng)部分需要把第四個分區(qū)掛載到/mnt/disk下面。
android2.3_kernel_v1.01/arch/arm/plat-samsung/dev-nand.c
# Nandflash 設(shè)備描述信息,定義NandFlash 寄存器地址范圍,是NandFlash驅(qū)動中最基本的文件。
android2.3_kernel_v1.01/drivers/mtd/nand/nand_base.c
# NandFlash 驅(qū)動文件,實現(xiàn)基本的讀寫,擦除操作,是NandFlash驅(qū)動中重要文件,
android2.3_kernel_v1.01/drivers/mtd/nand/nand_ids.c
# NandFlash ID信息描述文件,與Uboot代碼中的nand_ids.c文件類似,但不相同。
android2.3_kernel_v1.01/drivers/mtd/nand/s3c_nand.c
# NandFlash驅(qū)動文件,實現(xiàn)NandFlash驅(qū)動的注冊,NandFlash設(shè)備掃描,硬件ECC等重要功能。
android2.3_kernel_v1.01/include/linux/mtd/nand.h
# NandFlash宏,及重要結(jié)構(gòu)體定義文件,是NandFlash 驅(qū)動中非常重要的頭文件之一。
android2.3_kernel_v1.01/include/mtd/mtd-abi.h
# NandFlash驅(qū)動頭文件,里面定義一些輔助的結(jié)構(gòu)體。
注意:修改文件后,重新編譯前,需要執(zhí)行make clean 命令
文件系統(tǒng):
文件系統(tǒng)部分稍微修改一下,把/mnt/disk文件夾掛載到 /dev/block/mtdblock3塊設(shè)備處,
修改文件:
android2.3.4_32bit/vendor/forlinx/OK6410/init.rc
修改內(nèi)容如下:
on fs
# mount mtd partitions
# Mount /system rw first to give the filesystem a chance to save a checkpoint
mount yaffs2 mtd@system /system
mount yaffs2 mtd@system /system rw remount
mount yaffs2 mtd@userdata /data nosuid nodev
mount yaffs2 mtd@cache /cache nosuid nodev
mount yaffs2 /dev/block/mtdblock3 /mnt/disk
最后一行為新增命令,init.rc 文件已經(jīng)含有了其他的命令。
這個修改是基于OK6410 Linux2.6.28/3.0.1
Uboot代碼修改
common 文件夾修改內(nèi)容:
uboot1.1.6/common/cmd_nand.c
# 該文件主要實現(xiàn)Uboot操作NandFlash的命令集合,如執(zhí)行nand write.uboot 會調(diào)用該文件
uboot1.1.6/common/main.c
#用于實現(xiàn)啟動菜單顯示
uboot1.1.6/common/env_nand.c
#執(zhí)行 saveenv命令將調(diào)用該文件,用于存儲環(huán)境變量到NandFlash
cpu文件夾修改內(nèi)容
uboot1.1.6/cpu/s3c64xx/nand.c
# 該文件是NandFlash修改重要文件,定義8位硬件ECC功能。
uboot1.1.6/cpu/s3c64xx/nand_cp.c
# 該文件實現(xiàn)NandFlash 啟動系統(tǒng)關(guān)鍵代碼,比如把Uboot代碼拷貝到內(nèi)存運行。
uboot1.1.6/cpu/s3c64xx/usbd-otg-hs.c
# 用于菜單形式實現(xiàn)DNW燒寫系統(tǒng)功能,這部分與NandFlash關(guān)系不大,但跟Uboot菜單項相關(guān)。
driver文件夾修改內(nèi)容
uboot1.1.6/drivers/nand/nand_base.c
# NandFlash驅(qū)動重要文件,實現(xiàn)NandFlash的讀寫功能。
uboot1.1.6/drivers/nand/nand_ids.c
# NandFlash ID 定義文件,里面定義了我們目前支持的NandFlash類型,當(dāng)然里面有一些類型是系統(tǒng)自帶的。
uboot1.1.6/drivers/nand/nand_util.c
#NandFlash 驅(qū)動文件,實現(xiàn)NandFlash讀寫輔助功能。
include 文件夾修改內(nèi)容
uboot1.1.6/include/configs/smdk6410.h
#NandFlash相關(guān)的宏定義
uboot1.1.6/include/linux/mtd/nand.h
# 定義NandFlash 頁最大空間,OOB最大空間
uboot1.1.6/include/s3c6410.h
# s3c6410頭文件
注意:修改文件后,重新編譯前,需要執(zhí)行make clean 命令
以上是Uboot代碼 2G換成4G需要修改的地方,下面說一下Linux3.0內(nèi)核需要修改的文件。
Linux內(nèi)核修改文件
Linux-3.0.1/arch/arm/mach-s3c64xx/mach-smdk6410.c
# 該文件是6410平臺重要文件,實現(xiàn)平臺設(shè)備的添加,初始化工作,
這個文件里面有一個重要地方,就是對NandFlash的分區(qū)信息,
struct mtd_partition ok6410_nand_part[] = {
{
.name = “Bootloader”,
.offset = 0,
.size = (2 * SZ_1M),
.mask_flags = MTD_CAP_NANDFLASH,
},
{
.name = “Kernel”,
.offset = (2 * SZ_1M),
.size = (5*SZ_1M) ,
.mask_flags = MTD_CAP_NANDFLASH,
},
{
.name = “User”,
.offset = (7 * SZ_1M),
.size = (200*SZ_1M) ,
},
{
.name = “File System”,
.offset = MTDPART_OFS_APPEND,
.size = MTDPART_SIZ_FULL,
}
};
注意:
這個結(jié)構(gòu)體把NandFlash分成了四個分區(qū),之前飛凌發(fā)布的文件系統(tǒng)里面, /etc/init.d/rcS腳本把第四個分區(qū)掛載到了 /mnt目錄下面,這個可根據(jù)自己的需求,如果NandFlash仍然使用三個分區(qū),可以不更改這個文件。如果更改了這個文件,采用4個分區(qū),不要忘了更改 /etc/init.d/rcS文件,把第四個分區(qū)掛載到/mnt目錄下面。
更改之前先確認(rèn)一下文件系統(tǒng)里面 /etc/init.d/rcS文件 有沒有掛載第四個分區(qū),或者執(zhí)行mount 命令看一下目前的系統(tǒng)是三個分區(qū)還是四個分區(qū),根據(jù)具體情況來修改。
Linux-3.0.1/arch/arm/plat-samsung/dev-nand.c
# Nandflash 設(shè)備描述信息。
Linux-3.0.1/drivers/mtd/nand/nand_base.c
# NandFlash 驅(qū)動文件,實現(xiàn)基本的讀寫操作
Linux-3.0.1/drivers/mtd/nand/nand_ids.c
# NandFlash ID信息描述文件,與Uboot代碼中的nand_ids.c文件類似,但不相同。
Linux-3.0.1/drivers/mtd/nand/s3c_nand.c
# NandFlash驅(qū)動文件,實現(xiàn)NandFlash驅(qū)動的注冊,NandFlash設(shè)備掃描等重要。
Linux-3.0.1/include/mtd/mtd-abi.h
# NandFlash驅(qū)動頭文件
注意:修改文件后,重新編譯前,需要執(zhí)行make clean 命令
文件系統(tǒng):
文件系統(tǒng)部分不需要任何的改動,使用2G 版本的Yaffs2的制作工具
mkyaffs2image-256DDR 即可制作適用4G NandFlash.的rootfs.yaffs2.
注意:完成以上操作,系統(tǒng)成功運行后可以在超級終端或者DNW中執(zhí)行 df –h 命令,此時就可以看到NandFlash空間大小了。
----------------------------------------------------------------------------割一下------------------------------------------------------------------------------
Android2.3 2G NandFlash升級4G NandFlash的辦法
需要注意的是,三星6410平臺不適合使用Android2.3系統(tǒng)進(jìn)行產(chǎn)品研發(fā),如果在產(chǎn)品中使用Android系統(tǒng),建議使用三星210處理器或者更高主頻的A8,A9處理器。貌似6410的安卓是開發(fā)板廠商多是自己做的,學(xué)習(xí)可以,也基本只是學(xué)習(xí)用吧。。.
Uboot代碼修改
common 文件夾修改內(nèi)容:
uboot1.1.6/common/cmd_nand.c
# 該文件主要實現(xiàn)Uboot操作NandFlash的命令集合,如執(zhí)行nand write.uboot 會調(diào)用該文件
uboot1.1.6/common/main.c
#用于實現(xiàn)啟動菜單顯示
uboot1.1.6/common/env_nand.c
#執(zhí)行 saveenv命令將調(diào)用該文件,用于存儲環(huán)境變量到NandFlash
cpu文件夾修改內(nèi)容
uboot1.1.6/cpu/s3c64xx/nand.c
# 該文件是NandFlash修改重要文件,定義8位硬件ECC功能。
uboot1.1.6/cpu/s3c64xx/nand_cp.c
# 該文件實現(xiàn)NandFlash 啟動系統(tǒng)關(guān)鍵代碼,比如把Uboot代碼拷貝到內(nèi)存運行。
uboot1.1.6/cpu/s3c64xx/usbd-otg-hs.c
# 用于菜單形式實現(xiàn)DNW燒寫系統(tǒng)功能,這部分與NandFlash關(guān)系不大,但跟Uboot菜單項相關(guān)。
driver文件夾修改內(nèi)容
uboot1.1.6/drivers/nand/nand_base.c
# NandFlash驅(qū)動重要文件,實現(xiàn)NandFlash的讀寫功能。
uboot1.1.6/drivers/nand/nand_ids.c
# NandFlash ID 定義文件,里面定義了我們目前支持的NandFlash類型,當(dāng)然里面有一些類型是系統(tǒng)自帶的。
uboot1.1.6/drivers/nand/nand_util.c
#NandFlash 驅(qū)動文件,實現(xiàn)NandFlash讀寫輔助功能。
include 文件夾修改內(nèi)容
uboot1.1.6/include/configs/smdk6410.h
#NandFlash相關(guān)的宏定義
uboot1.1.6/include/linux/mtd/nand.h
# 定義NandFlash 頁最大空間,OOB最大空間
uboot1.1.6/include/s3c6410.h
# s3c6410頭文件
注意:修改文件后,重新編譯前,需要執(zhí)行make clean 命令
以上是Uboot代碼 2G換成4G需要修改的地方,以下是Android2.3內(nèi)核需要修改的文件。
Linux內(nèi)核修改文件
android2.3_kernel_v1.01/arch/arm/mach-s3c64xx/mach-smdk6410.c
# 該文件是6410平臺重要文件,實現(xiàn)平臺設(shè)備的添加,初始化工作,
這個文件里面有一個重要地方,就是對NandFlash的分區(qū)信息,
struct mtd_partition ok6410_nand_part[] = {
{
.name = “Bootloader”,
.offset = 0,
.size = (2 * SZ_1M),
.mask_flags = MTD_CAP_NANDFLASH,
},
{
.name = “Kernel”,
.offset = (2 * SZ_1M),
.size = (5*SZ_1M) ,
.mask_flags = MTD_CAP_NANDFLASH,
},
{
.name = “User”,
.offset = (7 * SZ_1M),
.size = (200*SZ_1M) ,
},
{
.name = “File System”,
.offset = MTDPART_OFS_APPEND,
.size = MTDPART_SIZ_FULL,
}
};
注意:
這個結(jié)構(gòu)體把NandFlash分成了四個分區(qū),以前發(fā)布的Android系統(tǒng)為三個分區(qū),修改這個文件后注意不要忘了修改文件系統(tǒng),文件系統(tǒng)部分需要把第四個分區(qū)掛載到/mnt/disk下面。
android2.3_kernel_v1.01/arch/arm/plat-samsung/dev-nand.c
# Nandflash 設(shè)備描述信息,定義NandFlash 寄存器地址范圍,是NandFlash驅(qū)動中最基本的文件。
android2.3_kernel_v1.01/drivers/mtd/nand/nand_base.c
# NandFlash 驅(qū)動文件,實現(xiàn)基本的讀寫,擦除操作,是NandFlash驅(qū)動中重要文件,
android2.3_kernel_v1.01/drivers/mtd/nand/nand_ids.c
# NandFlash ID信息描述文件,與Uboot代碼中的nand_ids.c文件類似,但不相同。
android2.3_kernel_v1.01/drivers/mtd/nand/s3c_nand.c
# NandFlash驅(qū)動文件,實現(xiàn)NandFlash驅(qū)動的注冊,NandFlash設(shè)備掃描,硬件ECC等重要功能。
android2.3_kernel_v1.01/include/linux/mtd/nand.h
# NandFlash宏,及重要結(jié)構(gòu)體定義文件,是NandFlash 驅(qū)動中非常重要的頭文件之一。
android2.3_kernel_v1.01/include/mtd/mtd-abi.h
# NandFlash驅(qū)動頭文件,里面定義一些輔助的結(jié)構(gòu)體。
注意:修改文件后,重新編譯前,需要執(zhí)行make clean 命令
文件系統(tǒng):
文件系統(tǒng)部分稍微修改一下,把/mnt/disk文件夾掛載到 /dev/block/mtdblock3塊設(shè)備處,
修改文件:
android2.3.4_32bit/vendor/forlinx/OK6410/init.rc
修改內(nèi)容如下:
on fs
# mount mtd partitions
# Mount /system rw first to give the filesystem a chance to save a checkpoint
mount yaffs2 mtd@system /system
mount yaffs2 mtd@system /system rw remount
mount yaffs2 mtd@userdata /data nosuid nodev
mount yaffs2 mtd@cache /cache nosuid nodev
mount yaffs2 /dev/block/mtdblock3 /mnt/disk
最后一行為新增命令,init.rc 文件已經(jīng)含有了其他的命令。
這個修改是基于OK6410 Linux2.6.28/3.0.1
Uboot代碼修改
common 文件夾修改內(nèi)容:
uboot1.1.6/common/cmd_nand.c
# 該文件主要實現(xiàn)Uboot操作NandFlash的命令集合,如執(zhí)行nand write.uboot 會調(diào)用該文件
uboot1.1.6/common/main.c
#用于實現(xiàn)啟動菜單顯示
uboot1.1.6/common/env_nand.c
#執(zhí)行 saveenv命令將調(diào)用該文件,用于存儲環(huán)境變量到NandFlash
cpu文件夾修改內(nèi)容
uboot1.1.6/cpu/s3c64xx/nand.c
# 該文件是NandFlash修改重要文件,定義8位硬件ECC功能。
uboot1.1.6/cpu/s3c64xx/nand_cp.c
# 該文件實現(xiàn)NandFlash 啟動系統(tǒng)關(guān)鍵代碼,比如把Uboot代碼拷貝到內(nèi)存運行。
uboot1.1.6/cpu/s3c64xx/usbd-otg-hs.c
# 用于菜單形式實現(xiàn)DNW燒寫系統(tǒng)功能,這部分與NandFlash關(guān)系不大,但跟Uboot菜單項相關(guān)。
driver文件夾修改內(nèi)容
uboot1.1.6/drivers/nand/nand_base.c
# NandFlash驅(qū)動重要文件,實現(xiàn)NandFlash的讀寫功能。
uboot1.1.6/drivers/nand/nand_ids.c
# NandFlash ID 定義文件,里面定義了我們目前支持的NandFlash類型,當(dāng)然里面有一些類型是系統(tǒng)自帶的。
uboot1.1.6/drivers/nand/nand_util.c
#NandFlash 驅(qū)動文件,實現(xiàn)NandFlash讀寫輔助功能。
include 文件夾修改內(nèi)容
uboot1.1.6/include/configs/smdk6410.h
#NandFlash相關(guān)的宏定義
uboot1.1.6/include/linux/mtd/nand.h
# 定義NandFlash 頁最大空間,OOB最大空間
uboot1.1.6/include/s3c6410.h
# s3c6410頭文件
注意:修改文件后,重新編譯前,需要執(zhí)行make clean 命令
以上是Uboot代碼 2G換成4G需要修改的地方,下面說一下Linux3.0內(nèi)核需要修改的文件。
Linux內(nèi)核修改文件
Linux-3.0.1/arch/arm/mach-s3c64xx/mach-smdk6410.c
# 該文件是6410平臺重要文件,實現(xiàn)平臺設(shè)備的添加,初始化工作,
這個文件里面有一個重要地方,就是對NandFlash的分區(qū)信息,
struct mtd_partition ok6410_nand_part[] = {
{
.name = “Bootloader”,
.offset = 0,
.size = (2 * SZ_1M),
.mask_flags = MTD_CAP_NANDFLASH,
},
{
.name = “Kernel”,
.offset = (2 * SZ_1M),
.size = (5*SZ_1M) ,
.mask_flags = MTD_CAP_NANDFLASH,
},
{
.name = “User”,
.offset = (7 * SZ_1M),
.size = (200*SZ_1M) ,
},
{
.name = “File System”,
.offset = MTDPART_OFS_APPEND,
.size = MTDPART_SIZ_FULL,
}
};
注意:
這個結(jié)構(gòu)體把NandFlash分成了四個分區(qū),之前飛凌發(fā)布的文件系統(tǒng)里面, /etc/init.d/rcS腳本把第四個分區(qū)掛載到了 /mnt目錄下面,這個可根據(jù)自己的需求,如果NandFlash仍然使用三個分區(qū),可以不更改這個文件。如果更改了這個文件,采用4個分區(qū),不要忘了更改 /etc/init.d/rcS文件,把第四個分區(qū)掛載到/mnt目錄下面。
更改之前先確認(rèn)一下文件系統(tǒng)里面 /etc/init.d/rcS文件 有沒有掛載第四個分區(qū),或者執(zhí)行mount 命令看一下目前的系統(tǒng)是三個分區(qū)還是四個分區(qū),根據(jù)具體情況來修改。
Linux-3.0.1/arch/arm/plat-samsung/dev-nand.c
# Nandflash 設(shè)備描述信息。
Linux-3.0.1/drivers/mtd/nand/nand_base.c
# NandFlash 驅(qū)動文件,實現(xiàn)基本的讀寫操作
Linux-3.0.1/drivers/mtd/nand/nand_ids.c
# NandFlash ID信息描述文件,與Uboot代碼中的nand_ids.c文件類似,但不相同。
Linux-3.0.1/drivers/mtd/nand/s3c_nand.c
# NandFlash驅(qū)動文件,實現(xiàn)NandFlash驅(qū)動的注冊,NandFlash設(shè)備掃描等重要。
Linux-3.0.1/include/mtd/mtd-abi.h
# NandFlash驅(qū)動頭文件
注意:修改文件后,重新編譯前,需要執(zhí)行make clean 命令
文件系統(tǒng):
文件系統(tǒng)部分不需要任何的改動,使用2G 版本的Yaffs2的制作工具
mkyaffs2image-256DDR 即可制作適用4G NandFlash.的rootfs.yaffs2.
注意:完成以上操作,系統(tǒng)成功運行后可以在超級終端或者DNW中執(zhí)行 df –h 命令,此時就可以看到NandFlash空間大小了。
Android2.3 2G NandFlash升級4G NandFlash的辦法
需要注意的是,三星6410平臺不適合使用Android2.3系統(tǒng)進(jìn)行產(chǎn)品研發(fā),如果在產(chǎn)品中使用Android系統(tǒng),建議使用三星210處理器或者更高主頻的A8,A9處理器。貌似6410的安卓是開發(fā)板廠商多是自己做的,學(xué)習(xí)可以,也基本只是學(xué)習(xí)用吧。。.
Uboot代碼修改
common 文件夾修改內(nèi)容:
uboot1.1.6/common/cmd_nand.c
# 該文件主要實現(xiàn)Uboot操作NandFlash的命令集合,如執(zhí)行nand write.uboot 會調(diào)用該文件
uboot1.1.6/common/main.c
#用于實現(xiàn)啟動菜單顯示
uboot1.1.6/common/env_nand.c
#執(zhí)行 saveenv命令將調(diào)用該文件,用于存儲環(huán)境變量到NandFlash
cpu文件夾修改內(nèi)容
uboot1.1.6/cpu/s3c64xx/nand.c
# 該文件是NandFlash修改重要文件,定義8位硬件ECC功能。
uboot1.1.6/cpu/s3c64xx/nand_cp.c
# 該文件實現(xiàn)NandFlash 啟動系統(tǒng)關(guān)鍵代碼,比如把Uboot代碼拷貝到內(nèi)存運行。
uboot1.1.6/cpu/s3c64xx/usbd-otg-hs.c
# 用于菜單形式實現(xiàn)DNW燒寫系統(tǒng)功能,這部分與NandFlash關(guān)系不大,但跟Uboot菜單項相關(guān)。
driver文件夾修改內(nèi)容
uboot1.1.6/drivers/nand/nand_base.c
# NandFlash驅(qū)動重要文件,實現(xiàn)NandFlash的讀寫功能。
uboot1.1.6/drivers/nand/nand_ids.c
# NandFlash ID 定義文件,里面定義了我們目前支持的NandFlash類型,當(dāng)然里面有一些類型是系統(tǒng)自帶的。
uboot1.1.6/drivers/nand/nand_util.c
#NandFlash 驅(qū)動文件,實現(xiàn)NandFlash讀寫輔助功能。
include 文件夾修改內(nèi)容
uboot1.1.6/include/configs/smdk6410.h
#NandFlash相關(guān)的宏定義
uboot1.1.6/include/linux/mtd/nand.h
# 定義NandFlash 頁最大空間,OOB最大空間
uboot1.1.6/include/s3c6410.h
# s3c6410頭文件
注意:修改文件后,重新編譯前,需要執(zhí)行make clean 命令
以上是Uboot代碼 2G換成4G需要修改的地方,以下是Android2.3內(nèi)核需要修改的文件。
Linux內(nèi)核修改文件
android2.3_kernel_v1.01/arch/arm/mach-s3c64xx/mach-smdk6410.c
# 該文件是6410平臺重要文件,實現(xiàn)平臺設(shè)備的添加,初始化工作,
這個文件里面有一個重要地方,就是對NandFlash的分區(qū)信息,
struct mtd_partition ok6410_nand_part[] = {
{
.name = “Bootloader”,
.offset = 0,
.size = (2 * SZ_1M),
.mask_flags = MTD_CAP_NANDFLASH,
},
{
.name = “Kernel”,
.offset = (2 * SZ_1M),
.size = (5*SZ_1M) ,
.mask_flags = MTD_CAP_NANDFLASH,
},
{
.name = “User”,
.offset = (7 * SZ_1M),
.size = (200*SZ_1M) ,
},
{
.name = “File System”,
.offset = MTDPART_OFS_APPEND,
.size = MTDPART_SIZ_FULL,
}
};
注意:
這個結(jié)構(gòu)體把NandFlash分成了四個分區(qū),以前發(fā)布的Android系統(tǒng)為三個分區(qū),修改這個文件后注意不要忘了修改文件系統(tǒng),文件系統(tǒng)部分需要把第四個分區(qū)掛載到/mnt/disk下面。
android2.3_kernel_v1.01/arch/arm/plat-samsung/dev-nand.c
# Nandflash 設(shè)備描述信息,定義NandFlash 寄存器地址范圍,是NandFlash驅(qū)動中最基本的文件。
android2.3_kernel_v1.01/drivers/mtd/nand/nand_base.c
# NandFlash 驅(qū)動文件,實現(xiàn)基本的讀寫,擦除操作,是NandFlash驅(qū)動中重要文件,
android2.3_kernel_v1.01/drivers/mtd/nand/nand_ids.c
# NandFlash ID信息描述文件,與Uboot代碼中的nand_ids.c文件類似,但不相同。
android2.3_kernel_v1.01/drivers/mtd/nand/s3c_nand.c
# NandFlash驅(qū)動文件,實現(xiàn)NandFlash驅(qū)動的注冊,NandFlash設(shè)備掃描,硬件ECC等重要功能。
android2.3_kernel_v1.01/include/linux/mtd/nand.h
# NandFlash宏,及重要結(jié)構(gòu)體定義文件,是NandFlash 驅(qū)動中非常重要的頭文件之一。
android2.3_kernel_v1.01/include/mtd/mtd-abi.h
# NandFlash驅(qū)動頭文件,里面定義一些輔助的結(jié)構(gòu)體。
注意:修改文件后,重新編譯前,需要執(zhí)行make clean 命令
文件系統(tǒng):
文件系統(tǒng)部分稍微修改一下,把/mnt/disk文件夾掛載到 /dev/block/mtdblock3塊設(shè)備處,
修改文件:
android2.3.4_32bit/vendor/forlinx/OK6410/init.rc
修改內(nèi)容如下:
on fs
# mount mtd partitions
# Mount /system rw first to give the filesystem a chance to save a checkpoint
mount yaffs2 mtd@system /system
mount yaffs2 mtd@system /system rw remount
mount yaffs2 mtd@userdata /data nosuid nodev
mount yaffs2 mtd@cache /cache nosuid nodev
mount yaffs2 /dev/block/mtdblock3 /mnt/disk
最后一行為新增命令,init.rc 文件已經(jīng)含有了其他的命令。
-
4G
+關(guān)注
關(guān)注
15文章
5579瀏覽量
120912 -
nandflash
+關(guān)注
關(guān)注
0文章
48瀏覽量
20635
發(fā)布評論請先 登錄
淺談4G內(nèi)存對筆記本的影響 2G內(nèi)存剛剛好
發(fā)一個OK6410 2G NandFlash升級到4G的辦法(Linux/Android)
wifi信號/2G/3G/4G 信號振幅和功率
資深軟件研發(fā)工程師 (Wireless(2G/3G/4G)-合肥
2G、3G要退出歷史舞臺了?為何3G比2G淘汰更快?
求大神分享適用于2G/3G/4G的無線終端基帶芯片
2G到4G GSM到WiMAX 常用通信名詞介紹
2G退網(wǎng),選NB還是4G?這里幫你解答
巴帝電信計劃明年關(guān)閉3G網(wǎng)絡(luò)只留下2G和4G網(wǎng)絡(luò)
獨立顯卡2g和4g區(qū)別_獨立顯卡的作用
用于2G、3G、4G、5G蜂窩的方形分形天線

評論