为什么我的V3s 换 32M flash之后 shell执行 reboot 不重启呢?
离线
/usr/bin #
/usr/bin # reboot
/usr/bin # umount: devtmpfs busy - remounted read-only
umount: can't remount /dev/root read-only
can't run '/sbin/swapoff': No such file or directory
The system is going down NOW!
Sent SIGTERM to all processes
Requesting system rebootesses
[ 837.214434] reboot: Restarting system
是不是这样,然后就没有然后了。。。
离线
荔枝派Q群群主说16M 的spi flash reboot正常,32M reboot不起来,
我验证过了,确实如此,
哪位大侠知道如何改吗?
离线
修改: drivers/mtd/devices/m25p80.c
粗体部分是添加的内容:
static int m25p_remove(struct spi_device *spi)
{
struct m25p *flash = spi_get_drvdata(spi);// manfeel note: add spi flash reset code
flash->command[0] = 0x66;
spi_write(flash->spi, flash->command, 1);
flash->command[0] = 0x99;
spi_write(flash->spi, flash->command, 1);
/* Clean up MTD stuff. */
return mtd_device_unregister(&flash->mtd);
}
static struct spi_driver m25p80_driver = {
.driver = {
.name = "m25p80",
.owner = THIS_MODULE,
},
.id_table = m25p_ids,
.probe = m25p_probe,
.remove = m25p_remove,
// manfeel, add shutdown method to reset spi flash
.shutdown = m25p_remove,
/* REVISIT: many of these chips have deep power-down modes, which
* should clearly be entered on suspend() to minimize power use.
* And also when they're otherwise idle...
*/
};
修改原因:
kernel已经能够支持32M SPI Flash的读写以及擦除操作.然而,可能是系统考虑不周,亦或是Linux系统的BUG,在配置了W25Q256的V3s开发板系统上,无法soft reset!经过查阅相关资料,发现,V3s默认支持24bit(3byte)的spi地址模式,而要支持32M以上的spi flash,则必须切换到32bit(4byte)地址模式.在soft reset的时候,spi停留在了32bit模式,没有切换回默认的24bit模式,导致reset后,V3s在默认的24bit模式,无法和32bit模式的spi通讯,系统死机.
感谢:
荔枝派Q群群主,
感谢 csdn的Manfeel大神
离线
为什么我的源码根目录没有这个drivers啊 只有这些
bin Config.in feeds.conf.default LICENSE rules.mk tmp
BSDmakefile dl include Makefile scripts toolchain
build_dir docs key-build package staging_dir tools
config feeds key-build.pub README target
离线
我用的是MT7620a 32M 也是这么改么?
离线
我find到三个文件改哪一个?还是都改?
./build_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/linux-3.18.75/drivers/mtd/devices/m25p80.c
./build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7620/linux-3.18.75/.pc/platform/0044-mtd-add-chunked-read-io-to-m25p80.patch/drivers/mtd/devices/m25p80.c
./build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7620/linux-3.18.75/drivers/mtd/devices/m25p80.c
离线
离线
看起来应该是这个:
./build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7620/linux-3.18.75/drivers/mtd/devices/m25p80.c
有2个简单的方法判断:
1 这个目录下面有没有 m25p80.o 文件?
2. 随便在m25p80.c 乱打打几个字母,编译出错就说明是这个文件了。
离线
三个全改了,编译以后ok了!!感谢大神们指点迷津D
离线
必须的
离线
发现32M spi flash 只能解决软件重启(busybox reboot)的问题,
解决不了硬件 RESET 的问题,
按下复位按键之后, W25Q256/MX25L256 芯片内部的寄存器可能没有切换回第0个bank,
导致V3s的BROM找不到启动头(估计是V3s BROM没有考虑用32M的spi flash),
而且8Pin的 spi flash没有引出RESET#引脚,
但是16pin的 spi flash引出了RESET#引脚,或许用16pin的spi flash能完美解决硬件复位的问题。
离线
# reboot
# Saving random seed... done.
Stopping logging: OK
umount: devtmpfs busy - remounted read-only
[ 1075.465115] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
The system is going down NOW!
Sent SIGTERM to all processes
Sent SIGKILL to[ 1077.487857] reboot: Restarting system
[ 1078.489799] Reboot failed -- System halted
licheepi Nano,16M flash,出现这个问题。
离线
这个问题貌似和flash无关,可能涉及其他问题,貌似Q群提过几次了
离线
怪不得我输入 reboot 没卵用,输完系统就装死。
离线
我也是同样的问题,后面加上硬件看门狗
离线
怪不得我输入 reboot 没卵用,输完系统就装死。
我换16pin的spi flash,flash复位脚和A33复位脚短路,上电一起复位,彻底解决了这个问题,全志brom的bug.
离线