NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
port-cobalt/55009: Fatal defects on cobalt panel -> lcdpanel rename
>Number: 55009
>Category: port-cobalt
>Synopsis: Fatal defects on cobalt panel -> lcdpanel rename
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: port-cobalt-maintainer
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Feb 24 06:00:01 +0000 2020
>Originator: Izumi Tsutsui
>Release: NetBSD 9.0
>Organization:
>Environment:
System: NetBSD 9.0 (GENERIC) #0: Fri Feb 14 00:06:28 UTC 2020 mkrepro%mkrepro.NetBSD.org@localhost:/usr/src/sys/arch/cobalt/compile/GENERIC
Architecture: mipsel
Machine: cobalt
>Description:
/dev/panel device for cobalt was renaned from "panel" to "lcdpanel"
to avoid a conflict against FDT device back on April 2018:
https://mail-index.netbsd.org/source-changes/2018/04/09/msg094149.html
https://mail-index.netbsd.org/source-changes/2018/04/09/msg094151.html
https://mail-index.netbsd.org/source-changes/2018/04/09/msg094156.html
https://mail-index.netbsd.org/source-changes/2018/04/09/msg094158.html
But there were at least three fatal defects in these changes
so the LCD panel device on NetBSD/cobalt 9.0 is not functional at all.
1) src/sys/arch/cobalt/conf/majors.cobalt was not changed on the rename
This means cobalt kernels have no device node corresponding to
a new renamed "lcdpanel" attribute.
2) The device name in /dev should not be changed
In etc/etc.cobalt/MAKEDEV.conf the device node name "/dev/panel0" was
also renamed to "/dev/lcdpanel0".
However it was not necessary to avoid a confict at all
(cobalt doesn't need FDT and naming strategy can be handled in MD)
and chaning userland exported names breaks compatibility.
3) Updated etc/etc.cobalt/MAKEDEV.conf contains "%lcdpanel_chr%" format
The %foo_chr% format only valid in MI src/etc/MAKEDEV.tmpl template.
/dev/MAKEDEV script in the release etc.tgz created by current
MD etc.cobalt/MAKEDEV.conf fails to create panel device:
>> mtree: invalid number `%lcdpanel_chr%'
>How-To-Repeat:
See above.
>Fix:
(1) Set proper attribute.
Index: sys/arch/cobalt/conf/majors.cobalt
===================================================================
RCS file: /cvsroot/src/sys/arch/cobalt/conf/majors.cobalt,v
retrieving revision 1.32
diff -u -p -d -r1.32 majors.cobalt
--- sys/arch/cobalt/conf/majors.cobalt 28 Jan 2019 02:28:57 -0000 1.32
+++ sys/arch/cobalt/conf/majors.cobalt 23 Feb 2020 14:55:29 -0000
@@ -39,7 +39,7 @@ device-major ld char 27 block 10 ld
device-major clockctl char 33 clockctl
#device-major obsolete char 34 obsolete (systrace)
device-major cgd char 35 block 11 cgd
-device-major panel char 36 panel
+device-major lcdpanel char 36 lcdpanel
device-major ksyms char 37 ksyms
device-major pci char 38 pci
device-major zstty char 39 zstty
(2)(3) Restore old "panel" name and remove invald %foo_chr% format.
Note if device name is different from attribute
(defined in majors.${MACHINE}) src/etc/MAKEDEV.awk
doesn't seem to handle it as before.
Index: etc/etc.cobalt/MAKEDEV.conf
===================================================================
RCS file: /cvsroot/src/etc/etc.cobalt/MAKEDEV.conf,v
retrieving revision 1.16
diff -u -p -d -r1.16 MAKEDEV.conf
--- etc/etc.cobalt/MAKEDEV.conf 23 Sep 2018 09:20:58 -0000 1.16
+++ etc/etc.cobalt/MAKEDEV.conf 23 Feb 2020 14:55:29 -0000
@@ -12,7 +12,7 @@ all_md)
makedev ld0 ld1 ld2 ld3
makedev usbs
makedev pci0
- makedev lcdpanel
+ makedev panel
makedev altq
makedev nsmb
;;
@@ -25,8 +25,8 @@ minimal)
makedev bpf
;;
-lcdpanel)
- mkdev lcdpanel0 c %lcdpanel_chr% 0 660
+panel)
+ mkdev panel0 c 36 0 660
;;
---
Izumi Tsutsui
Home |
Main Index |
Thread Index |
Old Index