mips / ci20_linux Goto Github PK
View Code? Open in Web Editor NEWThis project forked from torvalds/linux
Linux kernel source tree with MIPS Creator CI20 (JZ4780 based) board patches/development for upstreaming
License: Other
This project forked from torvalds/linux
Linux kernel source tree with MIPS Creator CI20 (JZ4780 based) board patches/development for upstreaming
License: Other
Hi there,
to get hostapd working on the ci20 I need a cfg80211 or mac80211 driver.
The Broadcom 4330 on the ci20 is supported by the brcm80211 (brcmsmac) driver:
http://wireless.kernel.org/en/users/Drivers/brcm80211
So I followed the debian doc to install the firmware:
https://wiki.debian.org/brcm80211
but it seems that package does not include the modules (modprobe fails, module brcmsmac not found).
Is there a way to get the driver working? I don't need the bluetooth chip, if that is the issue.
Cheers,
acidicX
The headers install procedure in ci20-3.0.8 kernel skips two files which affect some utilities such as ebtables-2.0.10-4. To fix this I suggest to apply following patch:
diff -b --unified -Nr linux-ci20-3.0.8-20150728-orig/include/linux/Kbuild linux-ci20-3.0.8-20150728/include/linux/Kbuild
--- linux-ci20-3.0.8-20150728-orig/include/linux/Kbuild 2015-07-28 13:34:24.000000000 +0300
+++ linux-ci20-3.0.8-20150728/include/linux/Kbuild 2015-08-30 12:55:21.512390511 +0300
@@ -182,6 +182,8 @@
header-y += if_ppp.h
header-y += if_pppol2tp.h
header-y += if_pppox.h
+header-y += if_pppolac.h
+header-y += if_pppopns.h
header-y += if_slip.h
header-y += if_strip.h
header-y += if_tr.h
This commit adds JZ4780 UART support into generic 8250 driver:
commit 3939d3a65122eb40beec6aed1484c04ffc20cc27
Author: Paul Burton <[email protected]>
Date: Tue Jul 9 09:42:22 2013 +0100
serial/8250: add support for Ingenic jz47xx UART quirks
The UART block used in Ingenic SoCs is advertised as NS16550 compatible,
however it isn't quite. The only difference relevant to basic usage is
the presence of a 'UART module enable' bit in the FCR register which
must be set at all times in order for the UART block to function. This
patch introduces a new UART port type for Ingenic jz47xx UARTs which
simply sets that bit.
But this "jz47xx" code does not work on JZ4755: too many characters are lost during output!
Here is my workaround for JZ4755:
--- a/drivers/tty/serial/8250/8250_core.c
+++ b/drivers/tty/serial/8250/8250_core.c
@@ -325,10 +325,8 @@ static const struct serial8250_config uart_config[] = {
},
[PORT_INGENIC_JZ] = {
.name = "Ingenic JZ UART",
- .fifo_size = 64,
- .tx_loadsz = 32,
- .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10,
- .flags = UART_CAP_FIFO | UART_CAP_RTOIE,
+ .fifo_size = 1,
+ .tx_loadsz = 1,
},
};
Can we use more accurate compatible
value? The ingenic,jz-uart
is too generic.
I think #25 contained two separate bugs and my related one got lost when it was closed, so I'll create a new one here.
When using 3.18 with SMP enabled, /proc/stat
, top
and htop
say that there is 100% irq usage on the second CPU. The statistics are correct when using 3.0.8.
Example I posted in #25:
$ cat /proc/stat
# user nice system idle io irq softirq
cpu 890971 212506 266051 254229651 37111 254761780 168504 0 0 0
cpu0 490938 91070 266051 254229651 37111 0 168504 0 0 0
cpu1 400033 121436 0 0 0 254761780 0 0 0 0
$ top
top - 22:42:59 up 17 min, 1 user, load average: 0.01, 0.08, 0.13
Tasks: 65 total, 1 running, 64 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 50.0 id, 0.0 wa, 49.8 hi, 0.0 si, 0.0 st
^^^^
Commit c172849 broke the userspace bluetooth API by increasing the size of the hci_conn_info
struct. This causes buffer overflows in userspace programs (notably blueman crashes when doing almost anything).
The patch was submitted upstream but was NAKed for this reason here:
https://lkml.org/lkml/2014/6/6/147
It is becoming harder to compile the current 3.18.3 with recent GCC (eg 6.3.0):
CHK include/config/kernel.release
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
CC kernel/bounds.s
In file included from include/linux/compiler.h:54:0,
from include/uapi/linux/stddef.h:1,
from include/linux/stddef.h:4,
from ./include/uapi/linux/posix_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from include/linux/page-flags.h:8,
from kernel/bounds.c:9:
include/linux/compiler-gcc.h:106:30: fatal error: linux/compiler-gcc6.h: No such file or directory
#include gcc_header(__GNUC__)
^
compilation terminated.
Kbuild:35: recipe for target 'kernel/bounds.s' failed
When I succeeded in building v3.18.3+ on the ci20 it booted fine but the 2nd CPU sits at 100%
top was reporting rpcbind as 100% (or 50% of total CPU use) when I killed rpcbind the CPU load still did not drop but it was not in any process shown by top...
I was using top with "1" and "I" to show individual CPU stats in the totalled vs non-totalled mode
Please help for jessie
How to fix
ingenic-ci20-audio audio-ci20: ASoC: CODEC DAI dw-hdmi-hifi not registered
Error: Driver 'jz4780_drm' is already registered, aborting...
i2c i2c-4: I2C xfer failed
Some commits like c83d62d rename upstream drivers.
This will be rejected by upstream developers; the original name of the driver should remain even if it is extended to support a broader panel of hardware.
If you compile the kernel with CONFIG_DETECT_HUNG_TASK=y
[ 240.] INFO: task kinteractiveup:64 blocked for more than 120 seconds.
[ 240.] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 240.] kinteractiveup D 00000000 0 64 2 0x00100000
[ 240.] Stack : 00000003 00000001 00000000 8003ca80 00000000 00000000 00000000 00000000
[ 240.] 8c031e44 8c031e40 10000000 00000000 80484244 00000000 00000000 00000000
[ 240.] 8c031e30 00000000 80484244 00000000 00000000 00000000 00000000 00000000
[ 240.] 00000000 800735f0 00000000 00000000 00000000 00000000 00000000 00000000
[ 240.] 00000000 00000000 dead4ead ffffffff ffffffff 8c3cfefc 8c3cfefc 81c0cfa0
[ 240.] ...
[ 240.] Call Trace:
[ 240.] [<8066c218>] __schedule+0x2b8/0x7fc
[ 240.] [<800735f0>] kthread+0x6c/0x90
[ 240.] [<8001e9ac>] kernel_thread_helper+0x10/0x18
[ 240.]
[ 300.] JZ4780-EFUSE: vddq_set 0
[ 360.] INFO: task kinteractiveup:64 blocked for more than 120 seconds.
[ 360.] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 360.] kinteractiveup D 00000000 0 64 2 0x00100000
[ 360.] Stack : 00000003 00000001 00000000 8003ca80 00000000 00000000 00000000 00000000
[ 360.] 8c031e44 8c031e40 10000000 00000000 80484244 00000000 00000000 00000000
[ 360.] 8c031e30 00000000 80484244 00000000 00000000 00000000 00000000 00000000
[ 360.] 00000000 800735f0 00000000 00000000 00000000 00000000 00000000 00000000
[ 360.] 00000000 00000000 dead4ead ffffffff ffffffff 8c3cfefc 8c3cfefc 81c0cfa0
[ 360.] ...
[ 360.] Call Trace:
[ 360.] [<8066c218>] __schedule+0x2b8/0x7fc
[ 360.] [<800735f0>] kthread+0x6c/0x90
[ 360.] [<8001e9ac>] kernel_thread_helper+0x10/0x18
[ 360.]
Btw. I have deleted the ms in the dmesg times to make it easier to read here.
I try to build the kernel (3.18 commit: 8ef5089) but it failed.
First of all the default ci20_defconfig fail on building firmware of wireless sdio card. Anyway I removed for the moment the driver, and I'll look it later.
It failed during building of z4780_drv.o (I try to build it as module and not built-in) I add a log at the end of the message.
I'm using this compiler:
--- Compiler ---
mips-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=mips-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/home/alexjan/build/mips_qemu/output/host/opt/ext-toolchain/bin/../libexec/gcc/mips-linux-gnu/4.9.1/lto-wrapper
Target: mips-linux-gnu
Configured with: /scratch/cmoore/final-2014.11-linux-lite/src/gcc-4.9-2014.11/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=mips-linux-gnu --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-arch-32=mips32r2 --with-arch-64=mips64r2 --with-float=hard --with-mips-plt --enable-extra-sgxxlite-multilibs --with-gnu-as --with-gnu-ld --with-specs='%{save-temps: -fverbose-asm} -D__CS_SOURCERYGXX_MAJ__=2014 -D__CS_SOURCERYGXX_MIN__=11 -D__CS_SOURCERYGXX_REV__=22' --enable-languages=c,c++ --enable-shared --enable-lto --enable-symvers=gnu --enable-__cxa_atexit --with-glibc-version=2.20 --with-pkgversion='Sourcery CodeBench Lite 2014.11-22' --with-bugurl=https://sourcery.mentor.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/mips-linux-gnu/libc --with-build-sysroot=/scratch/cmoore/final-2014.11-linux-lite/install/opt/codesourcery/mips-linux-gnu/libc --with-gmp=/scratch/cmoore/final-2014.11-linux-lite/obj/pkg-2014.11-22-mips-linux-gnu/mips-2014.11-22-mips-linux-gnu.extras/host-libs-i686-pc-linux-gnu/usr --with-mpfr=/scratch/cmoore/final-2014.11-linux-lite/obj/pkg-2014.11-22-mips-linux-gnu/mips-2014.11-22-mips-linux-gnu.extras/host-libs-i686-pc-linux-gnu/usr --with-mpc=/scratch/cmoore/final-2014.11-linux-lite/obj/pkg-2014.11-22-mips-linux-gnu/mips-2014.11-22-mips-linux-gnu.extras/host-libs-i686-pc-linux-gnu/usr --with-isl=/scratch/cmoore/final-2014.11-linux-lite/obj/pkg-2014.11-22-mips-linux-gnu/mips-2014.11-22-mips-linux-gnu.extras/host-libs-i686-pc-linux-gnu/usr --with-cloog=/scratch/cmoore/final-2014.11-linux-lite/obj/pkg-2014.11-22-mips-linux-gnu/mips-2014.11-22-mips-linux-gnu.extras/host-libs-i686-pc-linux-gnu/usr --with-libelf=/scratch/cmoore/final-2014.11-linux-lite/obj/pkg-2014.11-22-mips-linux-gnu/mips-2014.11-22-mips-linux-gnu.extras/host-libs-i686-pc-linux-gnu/usr --enable-libgomp --disable-libitm --enable-libatomic --disable-libssp --enable-poison-system-directories --with-build-time-tools=/scratch/cmoore/final-2014.11-linux-lite/install/opt/codesourcery/mips-linux-gnu/bin --with-build-time-tools=/scratch/cmoore/final-2014.11-linux-lite/install/opt/codesourcery/mips-linux-gnu/bin SED=sed
Thread model: posix
gcc version 4.9.1 (Sourcery CodeBench Lite 2014.11-22)
--- End Compiler ---
--- Log ---
CC [M] drivers/gpu/drm/jz4780/jz4780_drv.o
In file included from include/linux/printk.h:5:0,
from include/linux/kernel.h:13,
from include/linux/clk.h:16,
from drivers/gpu/drm/jz4780/jz4780_drv.h:21,
from drivers/gpu/drm/jz4780/jz4780_drv.c:20:
include/linux/init.h:328:27: error: redefinition of 'inittest'
static inline initcall_t __inittest(void)
^
drivers/gpu/drm/jz4780/jz4780_drv.c:374:1: note: in expansion of macro 'module_init'
module_init(jz4780_drm_init);
^
include/linux/init.h:328:27: note: previous definition of '__inittest' was here
static inline initcall_t __inittest(void)
^
include/linux/init.h:320:28: note: in expansion of macro 'module_init'
#define late_initcall(fn) module_init(fn)
^
drivers/gpu/drm/jz4780/jz4780_drv.c:373:1: note: in expansion of macro 'late_initcall'
late_initcall(jz4780_drm_init);
^
include/linux/init.h:330:6: error: redefinition of 'init_module'
int init_module(void) __attribute((alias(#initfn)));
^
drivers/gpu/drm/jz4780/jz4780_drv.c:374:1: note: in expansion of macro 'module_init'
module_init(jz4780_drm_init);
^
include/linux/init.h:330:6: note: previous definition of 'init_module' was here
int init_module(void) attribute((alias(#initfn)));
^
include/linux/init.h:320:28: note: in expansion of macro 'module_init'
#define late_initcall(fn) module_init(fn)
^
drivers/gpu/drm/jz4780/jz4780_drv.c:373:1: note: in expansion of macro 'late_initcall'
late_initcall(jz4780_drm_init);
^
make[4]: *** [drivers/gpu/drm/jz4780/jz4780_drv.o] Error 1
make[3]: *** [drivers/gpu/drm/jz4780] Error 2
make[2]: *** [drivers/gpu/drm] Error 2
make[1]: *** [drivers/gpu] Error 2
make: *** [drivers] Error 2
--- End Log ---
Hello.
I found some issue with OpenGL driver, then dynamicly updating texture using glTexImage2d() or glTexSubImage2d().
I've tested this with Debian 8 beta.
Here are my OpenGL calls:
glBindTexture(); //Bind a texture ID.
glTexImage2d(); //Upload first texture.
glDrawArrays(); //Bug here, the second texture is displayed here instead of first.
glTexImage2d(); //Upload second texture.
glDrawArrays(); //Second texture is correctly displayed here.
Hi there,
when connected to a gigabit router (in this case a Netgear WNDR 3700 v2), the auto-negotiation fails and the LAN port only blinks orange (indicating wrong speed). Auto-negotiation works fine with the same router and a RBPi (also 10/100 Mbit card).
I can get a connection when I use a crossover cable and connect it to my Linux PC with a static 10 or 100 Mbit/s speed (set via mii-tool on the PC). Auto-negotiation however also fails with the crossover cable (PC has a gigabit ethernet card).
I have not tried it on a 100 Mbit/s switch/router yet.
// edit:
It did not work with the stock image, and still does not work after running apt-get upgrade.
When highmem is enabled on 3.18, userspace applications are very likely to crash with a SIGILL / SIGSEGV / SIGBUS signal.
Disabling highmem in the kernel, or reducing the RAM amount to 256 MiB in u-boot's command line, make those issues disappear.
Boot the default debian from NAND.
Plug in an SD card before powering on. It mounts and works.
Remove SD card. Plug in again. Try mounting. And you get errors.
[ 848.991832] jzmmc jzmmc.0: err1 cmd18 iflg00002204 status1F000942
[ 848.998335] jzmmc jzmmc.0: err1 cmd13 iflg00002204 status1F000942
[ 849.004742] mmcblk0: error -1 sending status command, retrying
[ 849.010875] jzmmc jzmmc.0: err1 cmd13 iflg00002204 status1F000942
[ 849.017515] mmcblk0: error -1 sending status command, retrying
[ 849.023623] jzmmc jzmmc.0: err1 cmd13 iflg00002305 status1F001843
[ 849.030302] mmcblk0: error -1 sending status command, aborting
[ 849.036461] end_request: I/O error, dev mmcblk0, sector 4096
[ 849.042659] jzmmc jzmmc.0: err1 cmd18 iflg00002204 status1F000942
[ 849.049121] jzmmc jzmmc.0: err1 cmd13 iflg00002204 status1F000942
[ 849.055486] mmcblk0: error -1 sending status command, retrying
[ 849.061553] jzmmc jzmmc.0: err1 cmd13 iflg00002204 status1F000942
[ 849.068079] mmcblk0: error -1 sending status command, retrying
[ 849.074579] jzmmc jzmmc.0: err1 cmd13 iflg00002204 status1F000942
[ 849.080926] mmcblk0: error -1 sending status command, aborting
[ 849.087279] end_request: I/O error, dev mmcblk0, sector 4096
[ 849.095229] jzmmc jzmmc.0: err1 cmd18 iflg00002204 status1F000942
[ 849.101611] jzmmc jzmmc.0: err1 cmd13 iflg00002204 status1F000942
[ 849.108067] mmcblk0: error -1 sending status command, retrying
[ 849.114182] jzmmc jzmmc.0: err1 cmd13 iflg00002204 status1F000942
[ 849.120772] mmcblk0: error -1 sending status command, retrying
[ 849.127123] jzmmc jzmmc.0: err1 cmd13 iflg00002204 status1F000942
[ 849.133514] mmcblk0: error -1 sending status command, aborting
[ 849.139730] end_request: I/O error, dev mmcblk0, sector 4098
[ 849.145803] EXT4-fs (mmcblk0p1): unable to read superblock
[ 849.195142] jzmmc jzmmc.0: err1 cmd18 iflg00002204 status1F000942
[ 849.201525] jzmmc jzmmc.0: err1 cmd13 iflg00002204 status1F000942
[ 849.208031] mmcblk0: error -1 sending status command, retrying
[ 849.214579] jzmmc jzmmc.0: err1 cmd13 iflg00002204 status1F000942
[ 849.220952] mmcblk0: error -1 sending status command, retrying
[ 849.227637] jzmmc jzmmc.0: err1 cmd13 iflg00002204 status1F000942
[ 849.233984] mmcblk0: error -1 sending status command, aborting
[ 849.240122] end_request: I/O error, dev mmcblk0, sector 4098
[ 849.246091] EXT4-fs (mmcblk0p1): unable to read superblock
[ 849.285107] jzmmc jzmmc.0: err1 cmd18 iflg00002204 status1F000942
[ 849.291490] jzmmc jzmmc.0: err1 cmd13 iflg00002204 status1F000942
[ 849.297897] mmcblk0: error -1 sending status command, retrying
[ 849.304285] jzmmc jzmmc.0: err1 cmd13 iflg00002204 status1F000942
[ 849.310735] mmcblk0: error -1 sending status command, retrying
[ 849.316949] jzmmc jzmmc.0: err1 cmd13 iflg00002204 status1F000942
[ 849.323263] mmcblk0: error -1 sending status command, aborting
[ 849.329375] end_request: I/O error, dev mmcblk0, sector 4098
[ 849.335312] EXT4-fs (mmcblk0p1): unable to read superblock
[ 849.375039] jzmmc jzmmc.0: err1 cmd17 iflg00002204 status1F000942
[ 849.381404] jzmmc jzmmc.0: err1 cmd13 iflg00002205 status1F001842
[ 849.387869] mmcblk0: error -1 sending status command, retrying
[ 849.393940] jzmmc jzmmc.0: err1 cmd13 iflg00002205 status1F001842
[ 849.400492] mmcblk0: error -1 sending status command, retrying
[ 849.406707] jzmmc jzmmc.0: err1 cmd13 iflg00002205 status1F001842
[ 849.413026] mmcblk0: error -1 sending status command, aborting
[ 849.419198] end_request: I/O error, dev mmcblk0, sector 4096
[ 849.425140] FAT-fs (mmcblk0p1): unable to read boot sector
mount: /dev/mmcblk0p1: can't read superblock
The TCU driver currently relies upon internal constants & implicit knowledge to find the rate of its parent clocks. It could & probably should be a clock consumer, accepting appropriate clock specifiers in DT. See https://groups.google.com/forum/#!topic/mips-creator-ci20-dev/gW4CC4wrcek
uboot nand. kernel on nand. boots
uboot mmc. kernel on mmc. Hangs at https://gist.github.com/Etn40ff/e485226c35a250078a46
uboot mmc. tftp loading the kernel. boots.
Very strange.
Disabling mmc in kernel boots too.
Tested buildroot filesystem.
Same rootfs works via sd card.
Same nfs export mounts via nfs rootfs using 3.0.8
Same nfs export mounts via terminal in 3.16 once booted using mmc.
Bootlog here
http://pastebin.com/yVKyFiQ8
Bootargs
setenv bootargs console=ttyS4,115200 console=ttyS0 mem=256M@0x0 mem=768M@0x30000000 root=/dev/nfs nfsroot=192.168.154.89:/export,nfsvers=3,nolock nfsrootdebug ip=dhcp devtmpfs.mount=1 rw rootwait
Are you sell device for Linux!
Here repo for Linux!
Where you source code for Linux!?
I've just tried to rebuild the full Debian kernel with all the different CPU flavours with the CI20 patches applied. The Loongson flavours build fine but the Octeon flavour fails with:
arch/mips/built-in.o: In function `jz_wait_irqoff':
idle.c:(.text+0x1d118): undefined reference to `r4k_blast_dcache'
idle.c:(.text+0x1d11c): undefined reference to `r4k_blast_dcache'
/home/jcowgill/linux/linux/Makefile:891: recipe for target 'vmlinux' failed
Presumably because arch/mips/mm/c-r4k.c
where r4k_blast_dcache
is not included in Octeon builds.
Etn40ff on #ci20 mentioned cpu stalling after a while.
Traced it to WiFi possibly.
Long file download triggers it reproducibly on 3.16 and 3.18.
iperf triggers it as well.
rootfs is on SD card.
3.18 completely stalls without any error messages.
But 3.16 does give error messages. On ttyS0.
Some race condition/locking issue perhaps.
root@ci20:~#
[ 138.344000] INFO: rcu_sched self-detected stall on CPU { 0} (t=5250 jiffies g=5697 c=5696 q=21)
[ 138.344000] CPU: 0 PID: 46 Comm: kworker/u4:3 Not tainted 3.16.0-00104-g2f7dfd4 #1
[ 138.344000] Workqueue: brcmf_wq brcmf_sdio_dataworker
[ 138.344000] Stack : 00000006 00000000 00000000 805ff35c 00000001 80ddf518 00000002 00000000
8b464a80 80751860 80620000 807e0d88 807e8680 807e000 8121c420 00000000
807e000 805ff35c 8085359c 800439a0 00000000 00000000 8078e608 8b45572c
8b45572c 80021c84 00000000 8003e52c 8075751c 80750000 800707c0 00000000
00000000 00000000 00000000 00000000 00000000 00000000 6d637262 71775f66
...
[ 138.344000] Call Trace:
[ 138.344000] [<8000a028>] show_stack+0x64/0x7c
[ 138.344000] [<806032c0>] dump_stack+0x70/0x9c
[ 138.344000] [<8007e8b8>] rcu_check_callbacks+0x4cc/0x840
[ 138.344000] [<8002e414>] update_process_times+0x48/0x88
[ 138.344000] [<800898a4>] tick_handle_periodic+0x38/0xe4
[ 138.344000] [<8049af28>] jz47xx_tcu_single_channel_irq+0x98/0xcc
[ 138.344000] [<800732cc>] handle_irq_event_percpu+0x64/0x190
[ 138.344000] [<8007344c>] handle_irq_event+0x54/0x98
[ 138.344000] [<80076828>] handle_level_irq+0xdc/0x1a4
[ 138.344000] [<8007292c>] generic_handle_irq+0x38/0x4c
[ 138.344000] [<8007292c>] generic_handle_irq+0x38/0x4c
[ 138.344000] [<800063b0>] do_IRQ+0x18/0x28
[ 138.344000] [<80004390>] ret_from_irq+0x0/0x4
[ 138.344000] [<80026b24>] __do_softirq+0xcc/0x2a8
[ 138.344000] [<80026fbc>] irq_exit+0x78/0x84
[ 138.344000] [<80004390>] ret_from_irq+0x0/0x4
[ 138.344000] [<80499e88>] jz47xx_mmc_request+0x64/0xb0
[ 138.344000] [<8048699c>] __mmc_start_req+0x68/0x94
[ 138.344000] [<80486ed0>] mmc_wait_for_req+0x1c/0x38
[ 138.344000] [<804922e0>] mmc_io_rw_extended+0x32c/0x360
[ 138.344000] [<80493b28>] sdio_io_rw_ext_helper+0x1dc/0x270
[ 138.344000] [<80493e18>] sdio_readsb+0x1c/0x28
[ 138.344000] [<8043ea1c>] brcmf_sdiod_buffrw.isra.10+0x48/0xc8
[ 138.344000] [<8043f9a0>] brcmf_sdiod_recv_pkt+0x54/0x68
[ 138.344000] [<8043d73c>] brcmf_sdio_dataworker+0x1228/0x1d14
[ 138.344000] [<8003bafc>] process_one_work+0x1c0/0x45c
[ 138.344000] [<8003c6c0>] worker_thread+0x15c/0x57c
[ 138.344000] [<800430d4>] kthread+0xd0/0xe8
[ 138.344000] [<800043d8>] ret_from_kernel_thread+0x14/0x1c
[ 138.344000]
[ 154.592000] mmcblk0: error -145 sending status command, retrying
[ 159.712000] mmcblk0: error -145 sending status command, retrying
[ 164.832000] mmcblk0: error -145 sending status command, aborting
[ 164.836000] end_request: I/O error, dev mmcblk0, sector 4463120
[ 164.840000] end_request: I/O error, dev mmcblk0, sector 4463128
[ 164.848000] end_request: I/O error, dev mmcblk0, sector 4463136
[ 164.852000] Aborting journal on device mmcblk0p1-8.
[ 175.072000] mmcblk0: error -145 sending status command, retrying
[ 180.192000] mmcblk0: error -145 sending status command, retrying
[ 185.312000] mmcblk0: error -145 sending status command, aborting
[ 185.316000] end_request: I/O error, dev mmcblk0, sector 8694616
[ 185.320000] end_request: I/O error, dev mmcblk0, sector 8694624
[ 185.328000] end_request: I/O error, dev mmcblk0, sector 8694632
[ 185.332000] end_request: I/O error, dev mmcblk0, sector 8694640
[ 195.552000] mmcblk0: error -145 sending status command, retrying
[ 200.672000] mmcblk0: error -145 sending status command, retrying
[ 201.356000] INFO: rcu_sched self-detected stall on CPU { 0} (t=21003 jiffies g=5697 c=5696 q=84)
[ 201.356000] CPU: 0 PID: 46 Comm: kworker/u4:3 Not tainted 3.16.0-00104-g2f7dfd4 #1
[ 201.356000] Workqueue: brcmf_wq brcmf_sdio_dataworker
[ 201.356000] Stack : 00000006 00000000 00000000 805ff35c 00000001 80ddf518 00000002 00000000
8b464a80 80751860 80620000 807e0d88 807e8680 807e000 8121c420 00000000
807e000 805ff35c 8085359c 800439a0 00000000 00000000 8078e608 8b45572c
8b45572c 80021c84 00000000 8003e52c 8075751c 80750000 800707c0 00000000
00000000 00000000 00000000 00000000 00000000 00000000 6d637262 71775f66
...
[ 201.356000] Call Trace:
[ 201.356000] [<8000a028>] show_stack+0x64/0x7c
[ 201.356000] [<806032c0>] dump_stack+0x70/0x9c
[ 201.356000] [<8007e8b8>] rcu_check_callbacks+0x4cc/0x840
[ 201.356000] [<8002e414>] update_process_times+0x48/0x88
[ 201.356000] [<800898a4>] tick_handle_periodic+0x38/0xe4
[ 201.356000] [<8049af28>] jz47xx_tcu_single_channel_irq+0x98/0xcc
[ 201.356000] [<800732cc>] handle_irq_event_percpu+0x64/0x190
[ 201.356000] [<8007344c>] handle_irq_event+0x54/0x98
[ 201.356000] [<80076828>] handle_level_irq+0xdc/0x1a4
[ 201.356000] [<8007292c>] generic_handle_irq+0x38/0x4c
[ 201.356000] [<8007292c>] generic_handle_irq+0x38/0x4c
[ 201.356000] [<800063b0>] do_IRQ+0x18/0x28
[ 201.356000] [<80004390>] ret_from_irq+0x0/0x4
[ 201.356000] [<80026b24>] __do_softirq+0xcc/0x2a8
[ 201.356000] [<80026fbc>] irq_exit+0x78/0x84
[ 201.356000] [<80004390>] ret_from_irq+0x0/0x4
[ 201.356000] [<80499e88>] jz47xx_mmc_request+0x64/0xb0
[ 201.356000] [<8048699c>] __mmc_start_req+0x68/0x94
[ 201.356000] [<80486ed0>] mmc_wait_for_req+0x1c/0x38
[ 201.356000] [<804922e0>] mmc_io_rw_extended+0x32c/0x360
[ 201.356000] [<80493b28>] sdio_io_rw_ext_helper+0x1dc/0x270
[ 201.356000] [<80493e18>] sdio_readsb+0x1c/0x28
[ 201.356000] [<8043ea1c>] brcmf_sdiod_buffrw.isra.10+0x48/0xc8
[ 201.356000] [<8043f9a0>] brcmf_sdiod_recv_pkt+0x54/0x68
[ 201.356000] [<8043d73c>] brcmf_sdio_dataworker+0x1228/0x1d14
[ 201.356000] [<8003bafc>] process_one_work+0x1c0/0x45c
[ 201.356000] [<8003c6c0>] worker_thread+0x15c/0x57c
[ 201.356000] [<800430d4>] kthread+0xd0/0xe8
[ 201.356000] [<800043d8>] ret_from_kernel_thread+0x14/0x1c
[ 201.356000]
[ 205.792000] mmcblk0: error -145 sending status command, aborting
[ 205.796000] end_request: I/O error, dev mmcblk0, sector 8694744
[ 205.800000] end_request: I/O error, dev mmcblk0, sector 8694752
[ 205.808000] end_request: I/O error, dev mmcblk0, sector 8694760
[ 205.812000] end_request: I/O error, dev mmcblk0, sector 8694768
[ 205.820000] end_request: I/O error, dev mmcblk0, sector 8694776
[ 205.824000] end_request: I/O error, dev mmcblk0, sector 8694784
[ 216.032000] mmcblk0: error -145 sending status command, retrying
[ 221.152000] mmcblk0: error -145 sending status command, retrying
[ 226.272000] mmcblk0: error -145 sending status command, aborting
[ 226.276000] end_request: I/O error, dev mmcblk0, sector 4460544
[ 226.280000] Buffer I/O error on device mmcblk0p1, logical block 557056
[ 226.288000] lost page write due to I/O error on mmcblk0p1
[ 226.292000] JBD2: Error -5 detected when updating journal superblock for mmcblk0p1-8.
This issue can be solved changing reset-gpios with reset-gpio in ci20.dts or patching dm9000.c.
The first one is the fastest.
A diff can be done easily but, what is the preferred solution?
If you do an fdisk -l (the letter 'L' in lowercase) you get the following errors
[ 1052.076943] jz4780-bch jz4780-bch.0: uncorrectable errors when do request from jz4780-nand.0
[ 1052.093560] jz4780-bch jz4780-bch.0: uncorrectable errors when do request from jz4780-nand.0
[ 1052.110466] jz4780-bch jz4780-bch.0: uncorrectable errors when do request from jz4780-nand.0
[ 1052.127171] jz4780-bch jz4780-bch.0: uncorrectable errors when do request from jz4780-nand.0
[ 1052.143722] nand_do_read_ops: return -EBADMSG!
[ 1052.156056] end_request: I/O error, dev mtdblock0, sector 24
[ 1052.169310] Buffer I/O error on device mtdblock0, logical block 3
[ 1052.184283] jz4780-bch jz4780-bch.0: uncorrectable errors when do request from jz4780-nand.0
[ 1052.200971] jz4780-bch jz4780-bch.0: uncorrectable errors when do request from jz4780-nand.0
more detailed log here
Reproduced on 3.0.8 kernel compile boot from mmc. rootfs on mmc.
Reproduced on booting 3.0.8 from nand.
looks like when fdisk -l runs it probes devices.
it can probe the mmc driver correctly. but probing the nand device fails with dmesg outputs.
Building the generic target results in the error:
DTC arch/mips/jz4780/dts/generic.dtb
ERROR (duplicate_label): Duplicate label 'extal' on /clocks/oscillator and /clocks/extal
ERROR: Input tree has errors, aborting (use -f to force output)
make[3]: *** [arch/mips/jz4780/dts/generic.dtb] Error 2
make[2]: *** [arch/mips/jz4780/dts] Error 2
make[1]: *** [arch/mips/jz4780] Error 2
make[1]: *** Waiting for unfinished jobs....
I'm using the IA32 compiler here:
https://sourcery.mentor.com/GNUToolchain/release2791?cmpid=7108
I'd be grateful for any help/guidance.
I've just got my C120 and have loaded installed the android4.4.2_20141126 image.
The kernel is 3.0.8-12479-g505af31.
I presume the kernel is also used with Debian 8 as there is a note against that stating Mplayer is removed and PowerVR core driver has not yet been ported. Does anyone know if this is the reason the camera (the same one cited in the hardware pages) does not work? Before I installed Android I ran the Debian demos and the PowerVR ones worked fine but the desktop camera application reported Mplayer was missing.
I'd be very grateful if anyone know the status of these two drivers.
The kernel compile uses 64 bit addresses when building on a 32 bit host either on the ci20 itself or on a x86 32 bit host. When built on a 64 bit host it throws away the high 32 bits of the load address, but on both mips and x86 it will stop processing in the mkimage strtoul at one 32 bit word's worth of data which is that annoying freeze or crash where it trys to uncompress to address 0xffffffff
Booting kernel from Legacy Image at 88000000 ...
Image Name: Linux-3.18.3+
Image Type: MIPS Linux Kernel Image (gzip compressed)
Data Size: 3816747 Bytes = 3.6 MiB
Load Address: ffffffff <=== Problem
Entry Point: 805bdc10
Verifying Checksum ... OK
Uncompressing Kernel Image ...
and I have not found a way to set it in u-boot. Also you can't change the 0xffffffff80001000 in arch/mips/jz47[48]0/Platform because it is being used as some sort of magic flag and without the 0xffffffff part it doesn't know how to build a uImage. Currently I have patched mkimage to see if that fixes it, it took 1 hour to compile with make -j3 on the ci20.
Alas markdown does not seem to have a way to turn itself off so I can't include the two line patch so here is a sed script to do it instead.
sed -i "s/strtoul /strtoull /" tools/mkimage.c
The kernel really should be fixed to be 32 bit clean, magiclly dropping the high bits of the load address seems way out there.
Hi.
I'm spending a lot of time buiding different versions of GCC on my Ci20.
Usually the board will freeze up fairly early on during the build. I will typically need to reboot the board three times, before I get a build which runs all the way through.
I have no idea what causes the problem - the board simply becomes unresponsive and I have to reboot/power cycle.
I have a high quality 2 amp power supply (Anker) with a USB cable designed for power rather than data. I've never seen the board draw more than 0.5 amps anyway, though.
This is with the latest stable Debian 8.
Connectivity is over ethernet (but the wifi has not been actually disabled). The SD card is being used as swap, but actually far as I can tell it's never used during a GCC build.
When trying to build Linux kernel by placing kernel object files outside tree the build fails with following error message:
CC drivers/video/jz4780-hdmi/api/api.o
Assembler messages:
Fatal error: can't create drivers/video/jz4780-hdmi/api/api.o: No such file or directory
make[6]: *** [drivers/video/jz4780-hdmi/api/api.o] Error 2
Command to replicate issue:
make ARCH=mips CROSS_COMPILE=mips-linux-gnu- uImage O=../build/kernel/
Workaround to continue building:
mkdir -p ../build/kernel/drivers/video/jz4780-hdmi/{api,bsp,core,edid,hdcp,phy,test,util}
To repeat:
This is not fixed by reducing the memory to 256M as per #18
Tthe ci20_defconfig has
CONFIG_EXTRA_FIRMWARE="brcm/brcmfmac4330-sdio.bin brcm/brcmfmac4330-sdio.txt"
neither file shows up when cloned and no directions for downloading them from elsewhere are on the wiki page.
This causes the compile to fail with unresolved dependancies.
Building on the ci20 requires several packages to be installed in the latest debian image
apt-get install bc u-boot-tools
and then
make -j3 ci20_defconfig uImage
When compiled on my ext4 uSD card it takes about a hour
Personally I don't like to do things like compiles on non-removable media.
If you want to use menuconfig add libncurses5-dev
If you want access to the NAND filesystem you will need to install mtd-utils for the ubiattach command unless you are using the NAND as the boot device.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.