Difference between revisions of "Poky migration from rocko to warrior"
From ElphelWiki
(Created page with "==Note 1== * /dev/xdevfg got obsolete - there's fpga manager instead which cannot load *.bit (only *.bin or *.bit.bin) * '''Solution:''' Brought back the old driver (drivers/...") |
(→Elphel's kernel tree) |
||
(17 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | ==Note 1== | + | ==Elphel's kernel tree== |
+ | . | ||
+ | ├── <font color='green'>arch</font> | ||
+ | │ └── <font color='green'>arm</font> | ||
+ | │ └── <font color='green'>boot</font> | ||
+ | │ └── <font color='green'>dts/</font> # device trees for 393 cameras, considering tested | ||
+ | ├── drivers | ||
+ | │ ├── ata | ||
+ | │ │ ├── ahci_elphel.c | ||
+ | │ │ ├── ahci_elphel.h | ||
+ | │ │ ├── Kconfig | ||
+ | │ │ ├── libata-eh.c | ||
+ | │ │ └── Makefile | ||
+ | │ ├── <font color='green'>char</font> | ||
+ | │ │ ├── <font color='green'>Kconfig</font> | ||
+ | │ │ ├── <font color='green'>Makefile</font> | ||
+ | │ │ └── <font color='green'>xilinx_devcfg.c</font> # '''tested bitstream loading''' - brought back the old character device driver, it's simpler this way than the new one FPGA manager that can load only .bit.bin files | ||
+ | │ ├── clk | ||
+ | │ │ ├── clk-si5338.c | ||
+ | │ │ ├── Kconfig | ||
+ | │ │ └── Makefile | ||
+ | │ ├── elphel | ||
+ | │ │ ├── cci2c.h | ||
+ | │ │ ├── circbuf.c | ||
+ | │ │ ├── circbuf.h | ||
+ | │ │ ├── clock10359.c | ||
+ | │ │ ├── clock10359.h | ||
+ | │ │ ├── command_sequencer.c | ||
+ | │ │ ├── command_sequencer.h | ||
+ | │ │ ├── cxi2c.c | ||
+ | │ │ ├── debug393.h | ||
+ | │ │ ├── detect_sensors.c | ||
+ | │ │ ├── detect_sensors.h | ||
+ | │ │ ├── elphel393-init.c | ||
+ | │ │ ├── elphel393-mem.c | ||
+ | │ │ ├── elphel393-pwr.c | ||
+ | │ │ ├── exif393.c | ||
+ | │ │ ├── exif393.h | ||
+ | │ │ ├── exif.h | ||
+ | │ │ ├── fpgajtag353.c | ||
+ | │ │ ├── framepars.c | ||
+ | │ │ ├── framepars.h | ||
+ | │ │ ├── gamma_tables.c | ||
+ | │ │ ├── gamma_tables.h | ||
+ | │ │ ├── histograms.c | ||
+ | │ │ ├── histograms.h | ||
+ | │ │ ├── imu_log393.c | ||
+ | │ │ ├── imu_log393.h | ||
+ | │ │ ├── jpeghead.c | ||
+ | │ │ ├── jpeghead.h | ||
+ | │ │ ├── Kconfig | ||
+ | │ │ ├── klogger_393.c | ||
+ | │ │ ├── klogger_393.h | ||
+ | │ │ ├── latency.h | ||
+ | │ │ ├── lepton.c | ||
+ | │ │ ├── lepton.h | ||
+ | │ │ ├── Makefile | ||
+ | │ │ ├── mt9f002.c | ||
+ | │ │ ├── mt9f002.h | ||
+ | │ │ ├── mt9x001.c | ||
+ | │ │ ├── mt9x001.h | ||
+ | │ │ ├── multi10359.c | ||
+ | │ │ ├── multi10359.h | ||
+ | │ │ ├── param_depend.h | ||
+ | │ │ ├── pgm_functions.c | ||
+ | │ │ ├── pgm_functions.h | ||
+ | │ │ ├── quantization_tables.c | ||
+ | │ │ ├── quantization_tables.h | ||
+ | │ │ ├── sensor_common.c | ||
+ | │ │ ├── sensor_common.h | ||
+ | │ │ ├── sensor_i2c.c | ||
+ | │ │ ├── sensor_i2c.h | ||
+ | │ │ ├── x393.c | ||
+ | │ │ ├── x393_defs.h | ||
+ | │ │ ├── x393_fpga_functions.c | ||
+ | │ │ ├── x393_fpga_functions.h | ||
+ | │ │ ├── x393.h | ||
+ | │ │ ├── x393_macro.h | ||
+ | │ │ ├── x393_map.h | ||
+ | │ │ ├── x393_types.h | ||
+ | │ │ ├── x393_videomem.c | ||
+ | │ │ └── x393_videomem.h | ||
+ | │ ├── misc | ||
+ | │ │ ├── Kconfig | ||
+ | │ │ ├── ltc3589.c | ||
+ | │ │ ├── Makefile | ||
+ | │ │ └── vsc330x.c | ||
+ | │ ├── <font color='green'>mmc</font> | ||
+ | │ │ └── <font color='green'>host</font> | ||
+ | │ │ ├── <font color='green'>sdhci.c</font> # this needed chip detect ORed with dat3: SDHCI_ANY_PRESENT = SDHCI_CARD_PRESENT | SDHCI_DAT3_PRESENT | ||
+ | │ │ └── <font color='green'>sdhci.h</font> | ||
+ | │ ├── <font color='green'>mtd</font> | ||
+ | │ │ └── <font color='green'>nand</font> # added functions to work with OTP, tested only reading | ||
+ | │ │ ├── <font color='green'>Kconfig</font> | ||
+ | │ │ ├── <font color='green'>Makefile</font> | ||
+ | │ │ ├── <font color='green'>nand_base.c</font> | ||
+ | │ │ ├── <font color='green'>nandchip-micron.c</font> | ||
+ | │ │ ├── <font color='green'>nand.h</font> | ||
+ | │ │ └── <font color='green'>pl35x_nand.c</font> | ||
+ | │ ├── <font color='green'>net</font> | ||
+ | │ │ └── <font color='green'>ethernet</font> | ||
+ | │ │ └── <font color='green'>cadence</font> | ||
+ | │ │ └── <font color='green'>macb_main.c</font> # needed fixup for Atheros chip - disable SmartEEE | ||
+ | │ └── <font color='green'>rtc</font> | ||
+ | │ └── <font color='green'>rtc-m41t80.c</font> # updated to latest version. Our changes only ignore Oscillator failure at boot at m41t80_get_datetime(). | ||
+ | ├── helpers | ||
+ | │ └── si5338_register_map_dts.py | ||
+ | ├── include | ||
+ | │ ├── elphel | ||
+ | │ │ ├── driver_numbers.h | ||
+ | │ │ ├── elphel393-init.h | ||
+ | │ │ ├── elphel393-mem.h | ||
+ | │ │ └── fpgaconfa.h | ||
+ | │ ├── linux | ||
+ | │ │ ├── i2c | ||
+ | │ │ │ └── ltc3589.h | ||
+ | │ │ └── mtd | ||
+ | │ │ └── rawnand.h | ||
+ | │ └── uapi | ||
+ | │ ├── elphel | ||
+ | │ │ ├── ahci_cmd.h | ||
+ | │ │ ├── c313a.h | ||
+ | │ │ ├── exifa.h | ||
+ | │ │ ├── Kbuild | ||
+ | │ │ └── x393_devices.h | ||
+ | │ └── Kbuild | ||
+ | ├── other | ||
+ | │ └── mem.py | ||
+ | └── patches | ||
+ | ├── ahci.patch | ||
+ | ├── drivers-elphel.patch | ||
+ | ├── garmin_usb.c.patch | ||
+ | ├── libahci.patch | ||
+ | ├── libata-eh.c.patch_noneed | ||
+ | ├── README | ||
+ | ├── si5338_vsc330x.patch_noneed | ||
+ | ├── xilinx_emacps.c.patch_noneed | ||
+ | └── xilinx_uartps.c.patch_noneed | ||
+ | |||
+ | ==<font color='green'>'''[SOLVED]'''</font> Note 1== | ||
* /dev/xdevfg got obsolete - there's fpga manager instead which cannot load *.bit (only *.bin or *.bit.bin) | * /dev/xdevfg got obsolete - there's fpga manager instead which cannot load *.bit (only *.bin or *.bit.bin) | ||
* '''Solution:''' | * '''Solution:''' | ||
− | Brought back the old driver (drivers/char/xilinx_devcfg.c)- it works | + | Brought back the old driver (drivers/char/xilinx_devcfg.c and edited Kconfig and Makefile)- it works as it used to |
− | ==Note 2== | + | ==<font color='green'>'''[SOLVED]'''</font> Note 2== |
− | * php 5.6.40 - EOL and won't build | + | * php 5.6.40 - EOL and won't build - mysql supposedly moved header files. |
* '''Solution:''' | * '''Solution:''' | ||
Disabled mysql extension: | Disabled mysql extension: | ||
Line 11: | Line 150: | ||
PACKAGECONFIG[mysql] = "--without-mysql --without-mysqli --without-pdo-mysql" | PACKAGECONFIG[mysql] = "--without-mysql --without-mysqli --without-pdo-mysql" | ||
CFLAGS += " -ldl" | CFLAGS += " -ldl" | ||
+ | |||
+ | ==<font color='green'>'''[SOLVED]'''</font> Note 3== | ||
+ | * New package '''rng-tools''' is whining: ''Failed to init entropy source hwrng'' | ||
+ | * '''Solution:''' | ||
+ | Leave as is for now. The full log is: | ||
+ | <font size='1'>''Initalizing available sources | ||
+ | Failed to init entropy source hwrng | ||
+ | Enabling JITTER rng support | ||
+ | Initalizing entropy source jitter''</font> | ||
+ | * Comments: | ||
+ | ** Haven't found if Xilinx uses any driver for /dev/hwrng | ||
+ | ** TODO: Find out if the order of entropy sources can be changed | ||
+ | |||
+ | ==<font color='green'>'''-'''</font> Note 4== | ||
+ | * php, what's that? | ||
+ | <font size='1'>[ 35.872118] BUG: unsupported FP instruction in kernel mode | ||
+ | [ 35.877621] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM | ||
+ | [ 35.883380] Modules linked in: | ||
+ | [ 35.886498] CPU: 1 PID: 1756 Comm: php Not tainted 4.14.0-xilinx-v2018.3 #1 | ||
+ | [ 35.893459] Hardware name: Xilinx Zynq Platform | ||
+ | [ 35.897989] task: ee83f280 task.stack: ef1d6000 | ||
+ | [ 35.902527] PC is at vfp_reload_hw+0x30/0x44 | ||
+ | [ 35.906802] LR is at __und_usr_fault_32+0x0/0x8 | ||
+ | [ 35.911338] pc : [<c0102e10>] lr : [<c010c280>] psr: a0000013 | ||
+ | [ 35.917529] sp : ef1d7fb0 ip : 00000051 fp : 00000001 | ||
+ | [ 35.922813] r10: ef1d61f8 r9 : c010c308 r8 : ee9893c0 | ||
+ | [ 35.928040] r7 : 00000001 r6 : 00400100 r5 : c0138d08 r4 : ecd600f8 | ||
+ | [ 35.934569] r3 : c0c6c064 r2 : b67bde8c r1 : ecd9a224 r0 : eeb00a40 | ||
+ | [ 35.941098] Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none | ||
+ | [ 35.948241] Control: 18c5387d Table: 2cda404a DAC: 00000051 | ||
+ | [ 35.953993] Process php (pid: 1756, stack limit = 0xef1d6210) | ||
+ | [ 35.959740] Stack: (0xef1d7fb0 to 0xef1d8000) | ||
+ | [ 35.964020] 7fa0: a5f43f50 a5f43e18 00000080 00000000 | ||
+ | [ 35.972269] 7fc0: 00000000 a5f43f4c b687b338 000000ae 00000000 bedcdfe4 00000001 a5f43ffc | ||
+ | [ 35.980385] 7fe0: a5f43f50 a5f43d7c b676cf78 b67bde8c 60000010 ffffffff 00000000 00000000 | ||
+ | [ 35.988626] Code: 128aa080 e89a0162 e3110102 0a000003 (eee96a10) | ||
+ | [ 35.994724] ---[ end trace 06029778db6d2d90 ]--- | ||
+ | [ 35.999422] note: php[1756] exited with preempt_count 2</font> | ||
+ | |||
+ | ==<font color='green'>'''[SOLVED]'''</font> Note 5== | ||
+ | * MAC is not read from NAND, displays the default: 00:0e:64:10:00:00 | ||
+ | * Problem? | ||
+ | [ 3.639851] elphel393-init: Flash page read, code -95 | ||
+ | * Comments: | ||
+ | ** Lookup what had changed. | ||
+ | * '''Solution:''' (for xlnx_rebase_v4.14 branch of linux-xlnx): | ||
+ | In drivers/mtd/nand_base.c in nand_scan_tail() they call nand_manufacturer_init() | ||
+ | which is mapped to a new driver drivers/mtd/nand_micron.c. | ||
+ | So, when it fails - the driver init fails - mtd functions do not get assigned. | ||
+ | (And the driver (drivers/elphel/elphel393_init.c) that reads from OTP area returns | ||
+ | -95 which is EOPNOTSUPP.) | ||
+ | We just need to fall through for a quick fix. | ||
+ | |||
+ | The reason that function exits with an error is it decides that it does not support | ||
+ | forcefully enabled on-die ECC. And this needs to be investigated. | ||
+ | |||
+ | ==<font color='green'>'''[SOLVED]'''</font> Note 6== | ||
+ | * Problem: | ||
+ | [ 5.817352] udevd[1478]: starting version 3.2.7 | ||
+ | [ 5.918028] udevd[1478]: specified group 'kvm' unknown | ||
+ | [ 5.986364] udevd[1479]: starting eudev-3.2.7 | ||
+ | [ 6.142897] udevd[1479]: specified group 'kvm' unknown | ||
+ | |||
+ | * Solution: | ||
+ | KVM == Kernel-based Virtual Machine. Remove for now (and maybe forever) | ||
+ | . | ||
+ | └── udev | ||
+ | ├── eudev | ||
+ | │ └── 50-udev-default.rules | ||
+ | └── eudev_3.2.7.bbappend | ||
+ | |||
+ | 50-udev-default.rules - gets installed over the original file. | ||
+ | |||
+ | ==<font color='green'>'''[SOLVED]'''</font> Note 7== | ||
+ | * Problem: | ||
+ | Ethernet driver's structure has changed. It was split into several files. | ||
+ | Lives at /driver/net/ethernet/cadence/ | ||
+ | * Soluton: | ||
+ | For out ethernet chip (Atheros 80xx) a fixup had to be added to disable SmartEEE. | ||
+ | It's a single function, call and a couple defines - added all back to the new driver structure. |
Revision as of 11:38, 30 July 2019
Contents
Elphel's kernel tree
. ├── arch │ └── arm │ └── boot │ └── dts/ # device trees for 393 cameras, considering tested ├── drivers │ ├── ata │ │ ├── ahci_elphel.c │ │ ├── ahci_elphel.h │ │ ├── Kconfig │ │ ├── libata-eh.c │ │ └── Makefile │ ├── char │ │ ├── Kconfig │ │ ├── Makefile │ │ └── xilinx_devcfg.c # tested bitstream loading - brought back the old character device driver, it's simpler this way than the new one FPGA manager that can load only .bit.bin files │ ├── clk │ │ ├── clk-si5338.c │ │ ├── Kconfig │ │ └── Makefile │ ├── elphel │ │ ├── cci2c.h │ │ ├── circbuf.c │ │ ├── circbuf.h │ │ ├── clock10359.c │ │ ├── clock10359.h │ │ ├── command_sequencer.c │ │ ├── command_sequencer.h │ │ ├── cxi2c.c │ │ ├── debug393.h │ │ ├── detect_sensors.c │ │ ├── detect_sensors.h │ │ ├── elphel393-init.c │ │ ├── elphel393-mem.c │ │ ├── elphel393-pwr.c │ │ ├── exif393.c │ │ ├── exif393.h │ │ ├── exif.h │ │ ├── fpgajtag353.c │ │ ├── framepars.c │ │ ├── framepars.h │ │ ├── gamma_tables.c │ │ ├── gamma_tables.h │ │ ├── histograms.c │ │ ├── histograms.h │ │ ├── imu_log393.c │ │ ├── imu_log393.h │ │ ├── jpeghead.c │ │ ├── jpeghead.h │ │ ├── Kconfig │ │ ├── klogger_393.c │ │ ├── klogger_393.h │ │ ├── latency.h │ │ ├── lepton.c │ │ ├── lepton.h │ │ ├── Makefile │ │ ├── mt9f002.c │ │ ├── mt9f002.h │ │ ├── mt9x001.c │ │ ├── mt9x001.h │ │ ├── multi10359.c │ │ ├── multi10359.h │ │ ├── param_depend.h │ │ ├── pgm_functions.c │ │ ├── pgm_functions.h │ │ ├── quantization_tables.c │ │ ├── quantization_tables.h │ │ ├── sensor_common.c │ │ ├── sensor_common.h │ │ ├── sensor_i2c.c │ │ ├── sensor_i2c.h │ │ ├── x393.c │ │ ├── x393_defs.h │ │ ├── x393_fpga_functions.c │ │ ├── x393_fpga_functions.h │ │ ├── x393.h │ │ ├── x393_macro.h │ │ ├── x393_map.h │ │ ├── x393_types.h │ │ ├── x393_videomem.c │ │ └── x393_videomem.h │ ├── misc │ │ ├── Kconfig │ │ ├── ltc3589.c │ │ ├── Makefile │ │ └── vsc330x.c │ ├── mmc │ │ └── host │ │ ├── sdhci.c # this needed chip detect ORed with dat3: SDHCI_ANY_PRESENT = SDHCI_CARD_PRESENT | SDHCI_DAT3_PRESENT │ │ └── sdhci.h │ ├── mtd │ │ └── nand # added functions to work with OTP, tested only reading │ │ ├── Kconfig │ │ ├── Makefile │ │ ├── nand_base.c │ │ ├── nandchip-micron.c │ │ ├── nand.h │ │ └── pl35x_nand.c │ ├── net │ │ └── ethernet │ │ └── cadence │ │ └── macb_main.c # needed fixup for Atheros chip - disable SmartEEE │ └── rtc │ └── rtc-m41t80.c # updated to latest version. Our changes only ignore Oscillator failure at boot at m41t80_get_datetime(). ├── helpers │ └── si5338_register_map_dts.py ├── include │ ├── elphel │ │ ├── driver_numbers.h │ │ ├── elphel393-init.h │ │ ├── elphel393-mem.h │ │ └── fpgaconfa.h │ ├── linux │ │ ├── i2c │ │ │ └── ltc3589.h │ │ └── mtd │ │ └── rawnand.h │ └── uapi │ ├── elphel │ │ ├── ahci_cmd.h │ │ ├── c313a.h │ │ ├── exifa.h │ │ ├── Kbuild │ │ └── x393_devices.h │ └── Kbuild ├── other │ └── mem.py └── patches ├── ahci.patch ├── drivers-elphel.patch ├── garmin_usb.c.patch ├── libahci.patch ├── libata-eh.c.patch_noneed ├── README ├── si5338_vsc330x.patch_noneed ├── xilinx_emacps.c.patch_noneed └── xilinx_uartps.c.patch_noneed
[SOLVED] Note 1
- /dev/xdevfg got obsolete - there's fpga manager instead which cannot load *.bit (only *.bin or *.bit.bin)
- Solution:
Brought back the old driver (drivers/char/xilinx_devcfg.c and edited Kconfig and Makefile)- it works as it used to
[SOLVED] Note 2
- php 5.6.40 - EOL and won't build - mysql supposedly moved header files.
- Solution:
Disabled mysql extension: To meta-elphel393/recipes-devtools/php/php_5.6.%.bbappend: PACKAGECONFIG[mysql] = "--without-mysql --without-mysqli --without-pdo-mysql" CFLAGS += " -ldl"
[SOLVED] Note 3
- New package rng-tools is whining: Failed to init entropy source hwrng
- Solution:
Leave as is for now. The full log is: Initalizing available sources Failed to init entropy source hwrng Enabling JITTER rng support Initalizing entropy source jitter
- Comments:
- Haven't found if Xilinx uses any driver for /dev/hwrng
- TODO: Find out if the order of entropy sources can be changed
- Note 4
- php, what's that?
[ 35.872118] BUG: unsupported FP instruction in kernel mode [ 35.877621] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM [ 35.883380] Modules linked in: [ 35.886498] CPU: 1 PID: 1756 Comm: php Not tainted 4.14.0-xilinx-v2018.3 #1 [ 35.893459] Hardware name: Xilinx Zynq Platform [ 35.897989] task: ee83f280 task.stack: ef1d6000 [ 35.902527] PC is at vfp_reload_hw+0x30/0x44 [ 35.906802] LR is at __und_usr_fault_32+0x0/0x8 [ 35.911338] pc : [<c0102e10>] lr : [<c010c280>] psr: a0000013 [ 35.917529] sp : ef1d7fb0 ip : 00000051 fp : 00000001 [ 35.922813] r10: ef1d61f8 r9 : c010c308 r8 : ee9893c0 [ 35.928040] r7 : 00000001 r6 : 00400100 r5 : c0138d08 r4 : ecd600f8 [ 35.934569] r3 : c0c6c064 r2 : b67bde8c r1 : ecd9a224 r0 : eeb00a40 [ 35.941098] Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none [ 35.948241] Control: 18c5387d Table: 2cda404a DAC: 00000051 [ 35.953993] Process php (pid: 1756, stack limit = 0xef1d6210) [ 35.959740] Stack: (0xef1d7fb0 to 0xef1d8000) [ 35.964020] 7fa0: a5f43f50 a5f43e18 00000080 00000000 [ 35.972269] 7fc0: 00000000 a5f43f4c b687b338 000000ae 00000000 bedcdfe4 00000001 a5f43ffc [ 35.980385] 7fe0: a5f43f50 a5f43d7c b676cf78 b67bde8c 60000010 ffffffff 00000000 00000000 [ 35.988626] Code: 128aa080 e89a0162 e3110102 0a000003 (eee96a10) [ 35.994724] ---[ end trace 06029778db6d2d90 ]--- [ 35.999422] note: php[1756] exited with preempt_count 2
[SOLVED] Note 5
- MAC is not read from NAND, displays the default: 00:0e:64:10:00:00
- Problem?
[ 3.639851] elphel393-init: Flash page read, code -95
- Comments:
- Lookup what had changed.
- Solution: (for xlnx_rebase_v4.14 branch of linux-xlnx):
In drivers/mtd/nand_base.c in nand_scan_tail() they call nand_manufacturer_init() which is mapped to a new driver drivers/mtd/nand_micron.c. So, when it fails - the driver init fails - mtd functions do not get assigned. (And the driver (drivers/elphel/elphel393_init.c) that reads from OTP area returns -95 which is EOPNOTSUPP.) We just need to fall through for a quick fix.
The reason that function exits with an error is it decides that it does not support forcefully enabled on-die ECC. And this needs to be investigated.
[SOLVED] Note 6
- Problem:
[ 5.817352] udevd[1478]: starting version 3.2.7 [ 5.918028] udevd[1478]: specified group 'kvm' unknown [ 5.986364] udevd[1479]: starting eudev-3.2.7 [ 6.142897] udevd[1479]: specified group 'kvm' unknown
- Solution:
KVM == Kernel-based Virtual Machine. Remove for now (and maybe forever) . └── udev ├── eudev │ └── 50-udev-default.rules └── eudev_3.2.7.bbappend
50-udev-default.rules - gets installed over the original file.
[SOLVED] Note 7
- Problem:
Ethernet driver's structure has changed. It was split into several files. Lives at /driver/net/ethernet/cadence/
- Soluton:
For out ethernet chip (Atheros 80xx) a fixup had to be added to disable SmartEEE. It's a single function, call and a couple defines - added all back to the new driver structure.