我用的的是MX25L25645G 在里面没有找到相对应的型号
但是在static const struct spi_device_id m25p_ids[] 中找不大相对应的型号
离线
{ "mx25l25635e", INFO(0xc22019, 0, 64 * 1024, 512, 0) },
没记错的话, 应该对应的是这个, 软件只核对 Id, Id相同就认为是同一个。
我添加你上面所说的 现在也烧写了程序 ,尽然一点反应都没有了
离线
串口输出什么?
啥都没有
我现在对着这个修改下fel的代码试试
离线
无情一刀 说:晕哥 说:串口输出什么?
啥都没有
我现在对着这个修改下fel的代码试试对,要修改 sunxi-fel 源码,否则会绕回写前面16M了
我sunxi-fel 我修改了 还是起不来 然后里面说的那个需要增加bank切换支持。是在ubunt里面哪里设置哦哦
离线
我去昨天已经烧了32M 还是没有起来 现在想擦除都不好擦除
离线
你是不是烧 32M了, 只少 u-boot 试一试.
或者试一下 这个: https://whycan.cn/t_444.html
----------------------------------------------------------------------
以下是 2018-12-19 更新 (16楼):为了不再给大家造成困扰,我把文件重新整理了 V3s 和 F1C100s 两个文件夹,
晕哥用的那个在windows下可以烧写程序 有信息出来
离线
现在用你的那个windows下面烧写工具 烧写了内核 可以启动起来 可以正常进入界面
对于修改了 sunfei 的文件 我只make 是不是还要make install
离线
无情一刀 说:现在用你的那个windows下面烧写工具 烧写了内核 可以启动起来 可以正常进入界面
对于修改了 sunfei 的文件 我只make 是不是还要make install
如果命令前面没有加路径就要 make install,
最好 make install,反正不损失什么
我make intall 发现就是没有没有烧写进去,刚才用windows下烧写成功了 然后我有擦除了 到里linux下去烧写 就是没有打印信息出来
离线
这就尴尬了,应该是代码没有改到位吧,或者执行有问题
这是我下面的修改的地方 修改后 我make 还有就是make install
#define CMD_WRITE_ENABLE 0x06
#define SPI_FLASH_16MB_BOUN 0x1000000
# define CMD_BANKADDR_BRWR 0x17 //only SPANSION flash use it
# define CMD_BANKADDR_BRRD 0x16
# define CMD_EXTNADDR_WREAR 0xC5
# define CMD_EXTNADDR_RDEAR 0xC8
size_t bank_curr = 0;
void aw_fel_spiflash_write_helper(feldev_handle *dev,
uint32_t offset, void *buf, size_t len,
size_t erase_size, uint8_t erase_cmd,
size_t program_size, uint8_t program_cmd)
{
uint8_t *buf8 = (uint8_t *)buf;
size_t max_chunk_size = dev->soc_info->scratch_addr - dev->soc_info->spl_addr;
size_t cmd_idx, bank_sel;
if (max_chunk_size > 0x1000)
max_chunk_size = 0x1000;
uint8_t *cmdbuf = malloc(max_chunk_size);
cmd_idx = 0;
prepare_spi_batch_data_transfer(dev, dev->soc_info->spl_addr);
//add bank support
{
cmd_idx = 0;
bank_sel = offset /SPI_FLASH_16MB_BOUN;
if (bank_sel == bank_curr)
goto bar_end;
/* Emit write enable command */
cmdbuf[cmd_idx++] = 0;
cmdbuf[cmd_idx++] = 1;
cmdbuf[cmd_idx++] = CMD_WRITE_ENABLE;
/* Emit write bank */
cmdbuf[cmd_idx++] = 0;
cmdbuf[cmd_idx++] = 2;
cmdbuf[cmd_idx++] = CMD_EXTNADDR_WREAR;
cmdbuf[cmd_idx++] = offset >> 24;
/* Emit wait for completion */
cmdbuf[cmd_idx++] = 0xFF;
cmdbuf[cmd_idx++] = 0xFF;
/* Emit the end marker */
cmdbuf[cmd_idx++] = 0;
cmdbuf[cmd_idx++] = 0;
aw_fel_write(dev, cmdbuf, dev->soc_info->spl_addr, cmd_idx);
aw_fel_remotefunc_execute(dev, NULL);
bar_end:
bank_curr = bank_sel;
}
cmd_idx = 0;
free(cmdbuf);
}
离线
代码貌似看不出什么问题
不知道为什么 就是起不来 而且在烧写的时候就是烧写速度 很快 就感觉不正常,
问下 那个SD卡启动 是不是只要修改sun8i.h这个文件 从SD卡启动就可以可以从SD卡启动了 ,然后按照你那个帖子操作 分两个去就可以了
离线
是的, TF卡/SD NAND/eMMC 就按这个帖子做就 OK:
我今天下午就是按照这个帖子去配置了,插卡了好像一直是从flash里面启动的,我flash里面以前也弄 了启动文件,就是一直从flash启动,最可恨的就是还不打印信息,都不好将flash里面的启动文件给擦除,这会有冲突吗 我flash里面也有启动文件
最近编辑记录 无情一刀 (2019-04-14 21:09:01)
离线
TF卡的优先顺序高于 SPI NOR FLASH, 你得检查一下 uboot 确实烧到了 TF 卡, 用 dd 命令从 TF 卡读回来比较一下, 用 beyond compare
不过为了保险起见, 最好把 flash 前面几个扇区随便写点什么, 让他没办法启动.
好的 明天来试试 ,TF卡在Windows下要不要先格式化哦哦 还有那个顺序 是先写Ubuntu的文件到sdb 还是先分区后再去写了 我记得以前用TF可以启动了
离线