mobile revision 1.2 1 1.2 nia $NetBSD: mobile,v 1.2 2025/05/19 18:02:53 nia Exp $
2 1.1 dholland
3 1.1 dholland NetBSD Mobile Roadmap
4 1.1 dholland =====================
5 1.1 dholland
6 1.1 dholland This roadmap is meant to cover issues specifically pertaining to
7 1.1 dholland mobile use, that is, devices that run on batteries and get carried
8 1.1 dholland around. This includes:
9 1.1 dholland - phones
10 1.1 dholland - tablets
11 1.1 dholland - tablet PCs
12 1.1 dholland - laptops
13 1.1 dholland The typical assumption right now is that phones and tablets have one
14 1.1 dholland software stack (iOS, Android) and work one way, and laptops, including
15 1.1 dholland tablet PCs, have another software stack (Windows, MacOS, Linux) and
16 1.1 dholland work another way. The "laptop" software stack is more or less the same
17 1.1 dholland as the "desktop" software stack, modulo some laptop-specific issues.
18 1.1 dholland Those laptop-specific issues are covered in this file; the rest of
19 1.1 dholland that software stack is discussed in the "desktop" roadmap. This file
20 1.1 dholland also covers the phone/tablet software stack.
21 1.1 dholland
22 1.1 dholland The following elements, projects, and goals are considered strategic
23 1.1 dholland priorities for the project:
24 1.1 dholland
25 1.1 dholland 1. Tickless timers/scheduling
26 1.1 dholland
27 1.1 dholland These elements, projects, and goals are more or less long-term goals:
28 1.1 dholland
29 1.1 dholland 2. Power management concerns
30 1.1 dholland 3. Suspending
31 1.1 dholland 4. atrun considered harmful
32 1.1 dholland 5. (Wireless config issues are in the "desktop" roadmap)
33 1.1 dholland
34 1.1 dholland These elements, projects, and goals are for the time being pretty much
35 1.1 dholland blue sky:
36 1.1 dholland
37 1.1 dholland 6. Touchscreen (phone/tablet) UI
38 1.1 dholland 7. Support for phone hardware
39 1.1 dholland
40 1.1 dholland
41 1.1 dholland Explanations
42 1.1 dholland ============
43 1.1 dholland
44 1.1 dholland 1. Tickless timers/scheduling
45 1.1 dholland
46 1.1 dholland The basic premise with a tickless system is that instead of generating
47 1.1 dholland a timer interrupt HZ times a second, one programs a high-resolution
48 1.1 dholland timer on the fly to interrupt the next time something needs to happen.
49 1.1 dholland This can substantially reduce the number of timer interrupts taken,
50 1.1 dholland and also importantly it avoids waking the system up regularly when
51 1.1 dholland otherwise idle and reduces power consumption and heating.
52 1.1 dholland
53 1.1 dholland There has been a fair amount of talk about this but so far no real
54 1.1 dholland action.
55 1.1 dholland
56 1.1 dholland - As of January 2017 nobody is known to be working on this.
57 1.1 dholland - There is currently no clear timeframe or release target.
58 1.1 dholland - Contact: ? (XXX)
59 1.1 dholland
60 1.1 dholland
61 1.1 dholland 2. Power management concerns
62 1.1 dholland
63 1.1 dholland NetBSD's power management infrastructure is fairly lacking. We don't
64 1.1 dholland have good CPU clock rate throttling, we mostly don't have the ability
65 1.1 dholland to power down idle devices, and we don't have a configuration and
66 1.1 dholland control setup to manage it either. On x86 we also don't support a
67 1.1 dholland number of important ACPI sleep/idle states.
68 1.1 dholland
69 1.1 dholland At the moment there isn't even a good inventory of what needs to be
70 1.1 dholland done in this department. Someone please write it and put it here.
71 1.1 dholland
72 1.1 dholland - As of January 2017 nobody is known to be working on this.
73 1.1 dholland - There is currently no clear timeframe or release target.
74 1.1 dholland - Contact: ? (XXX)
75 1.1 dholland
76 1.1 dholland
77 1.1 dholland 3. Suspending
78 1.1 dholland
79 1.1 dholland Currently suspending mostly doesn't work, and the chances of being
80 1.1 dholland able to suspend any given laptop model successfully are low until
81 1.1 dholland someone using it gets annoyed enough to sit down and make it behave.
82 1.1 dholland
83 1.1 dholland We need to fix this, both by adding suspend hooks to drivers that are
84 1.1 dholland missing them and also (ideally) by coming up with a better way to cope
85 1.1 dholland with drivers that don't know how to suspend.
86 1.1 dholland
87 1.1 dholland - As of January 2017 nobody is known to be specifically working on
88 1.1 dholland this, although work on individual drivers occurs sporadically.
89 1.1 dholland - There is currently no clear timeframe or release target.
90 1.1 dholland - Contact: ? (XXX)
91 1.1 dholland
92 1.1 dholland
93 1.1 dholland 4. atrun considered harmful
94 1.1 dholland
95 1.1 dholland There are a number of things on the system that unnecessarily wake up
96 1.1 dholland and take cpu time and power on a regular basis. One of the big
97 1.1 dholland offenders is atrun -- it should be changed either to be a daemon that
98 1.1 dholland wakes up only when it has a job to run, integrated into cron to the
99 1.1 dholland same end, or changed around in some other similar fashion.
100 1.1 dholland
101 1.1 dholland One can always turn atrun off, but there's no particular reason that
102 1.1 dholland at(1) functionality should be unavailable on laptops.
103 1.1 dholland
104 1.1 dholland - As of January 2017 nobody is known to be specifically working on
105 1.1 dholland this, although work on individual drivers occurs sporadically.
106 1.1 dholland - There is currently no clear timeframe or release target.
107 1.1 dholland - Contact: ? (XXX)
108 1.1 dholland
109 1.1 dholland
110 1.1 dholland 6. Touchscreen (phone/tablet) UI
111 1.1 dholland
112 1.1 dholland We'd rather like to be able to run on phones, and that means having a
113 1.1 dholland UI suitable for a phone -- a shell isn't going to cut it, and even a
114 1.1 dholland shell coupled with a keyboard app isn't really the ticket.
115 1.1 dholland
116 1.1 dholland This has many of the same kinds of issues as desktop software. Some of
117 1.1 dholland the specific issues are different; e.g. location handling is a lot
118 1.1 dholland more critical for phones than for desktops and even laptops.
119 1.1 dholland
120 1.1 dholland While we don't currently run on any phone platforms (see below)
121 1.1 dholland there's nothing stopping working on this using older PDA/palmtop
122 1.1 dholland hardware like hpcarm.
123 1.1 dholland
124 1.1 dholland
125 1.1 dholland 7. Support for phone hardware
126 1.1 dholland
127 1.2 nia As of 2025, much of the underlying work to support various Arm
128 1.2 nia SoCs is done, but this point is heavily dependent on item 6 (UI).
129 1.1 dholland
130