11.2Snia$NetBSD: mobile,v 1.2 2025/05/19 18:02:53 nia Exp $ 21.1Sdholland 31.1SdhollandNetBSD Mobile Roadmap 41.1Sdholland===================== 51.1Sdholland 61.1SdhollandThis roadmap is meant to cover issues specifically pertaining to 71.1Sdhollandmobile use, that is, devices that run on batteries and get carried 81.1Sdhollandaround. This includes: 91.1Sdholland - phones 101.1Sdholland - tablets 111.1Sdholland - tablet PCs 121.1Sdholland - laptops 131.1SdhollandThe typical assumption right now is that phones and tablets have one 141.1Sdhollandsoftware stack (iOS, Android) and work one way, and laptops, including 151.1Sdhollandtablet PCs, have another software stack (Windows, MacOS, Linux) and 161.1Sdhollandwork another way. The "laptop" software stack is more or less the same 171.1Sdhollandas the "desktop" software stack, modulo some laptop-specific issues. 181.1SdhollandThose laptop-specific issues are covered in this file; the rest of 191.1Sdhollandthat software stack is discussed in the "desktop" roadmap. This file 201.1Sdhollandalso covers the phone/tablet software stack. 211.1Sdholland 221.1SdhollandThe following elements, projects, and goals are considered strategic 231.1Sdhollandpriorities for the project: 241.1Sdholland 251.1Sdholland 1. Tickless timers/scheduling 261.1Sdholland 271.1SdhollandThese elements, projects, and goals are more or less long-term goals: 281.1Sdholland 291.1Sdholland 2. Power management concerns 301.1Sdholland 3. Suspending 311.1Sdholland 4. atrun considered harmful 321.1Sdholland 5. (Wireless config issues are in the "desktop" roadmap) 331.1Sdholland 341.1SdhollandThese elements, projects, and goals are for the time being pretty much 351.1Sdhollandblue sky: 361.1Sdholland 371.1Sdholland 6. Touchscreen (phone/tablet) UI 381.1Sdholland 7. Support for phone hardware 391.1Sdholland 401.1Sdholland 411.1SdhollandExplanations 421.1Sdholland============ 431.1Sdholland 441.1Sdholland1. Tickless timers/scheduling 451.1Sdholland 461.1SdhollandThe basic premise with a tickless system is that instead of generating 471.1Sdhollanda timer interrupt HZ times a second, one programs a high-resolution 481.1Sdhollandtimer on the fly to interrupt the next time something needs to happen. 491.1SdhollandThis can substantially reduce the number of timer interrupts taken, 501.1Sdhollandand also importantly it avoids waking the system up regularly when 511.1Sdhollandotherwise idle and reduces power consumption and heating. 521.1Sdholland 531.1SdhollandThere has been a fair amount of talk about this but so far no real 541.1Sdhollandaction. 551.1Sdholland 561.1Sdholland - As of January 2017 nobody is known to be working on this. 571.1Sdholland - There is currently no clear timeframe or release target. 581.1Sdholland - Contact: ? (XXX) 591.1Sdholland 601.1Sdholland 611.1Sdholland2. Power management concerns 621.1Sdholland 631.1SdhollandNetBSD's power management infrastructure is fairly lacking. We don't 641.1Sdhollandhave good CPU clock rate throttling, we mostly don't have the ability 651.1Sdhollandto power down idle devices, and we don't have a configuration and 661.1Sdhollandcontrol setup to manage it either. On x86 we also don't support a 671.1Sdhollandnumber of important ACPI sleep/idle states. 681.1Sdholland 691.1SdhollandAt the moment there isn't even a good inventory of what needs to be 701.1Sdhollanddone in this department. Someone please write it and put it here. 711.1Sdholland 721.1Sdholland - As of January 2017 nobody is known to be working on this. 731.1Sdholland - There is currently no clear timeframe or release target. 741.1Sdholland - Contact: ? (XXX) 751.1Sdholland 761.1Sdholland 771.1Sdholland3. Suspending 781.1Sdholland 791.1SdhollandCurrently suspending mostly doesn't work, and the chances of being 801.1Sdhollandable to suspend any given laptop model successfully are low until 811.1Sdhollandsomeone using it gets annoyed enough to sit down and make it behave. 821.1Sdholland 831.1SdhollandWe need to fix this, both by adding suspend hooks to drivers that are 841.1Sdhollandmissing them and also (ideally) by coming up with a better way to cope 851.1Sdhollandwith drivers that don't know how to suspend. 861.1Sdholland 871.1Sdholland - As of January 2017 nobody is known to be specifically working on 881.1Sdholland this, although work on individual drivers occurs sporadically. 891.1Sdholland - There is currently no clear timeframe or release target. 901.1Sdholland - Contact: ? (XXX) 911.1Sdholland 921.1Sdholland 931.1Sdholland4. atrun considered harmful 941.1Sdholland 951.1SdhollandThere are a number of things on the system that unnecessarily wake up 961.1Sdhollandand take cpu time and power on a regular basis. One of the big 971.1Sdhollandoffenders is atrun -- it should be changed either to be a daemon that 981.1Sdhollandwakes up only when it has a job to run, integrated into cron to the 991.1Sdhollandsame end, or changed around in some other similar fashion. 1001.1Sdholland 1011.1SdhollandOne can always turn atrun off, but there's no particular reason that 1021.1Sdhollandat(1) functionality should be unavailable on laptops. 1031.1Sdholland 1041.1Sdholland - As of January 2017 nobody is known to be specifically working on 1051.1Sdholland this, although work on individual drivers occurs sporadically. 1061.1Sdholland - There is currently no clear timeframe or release target. 1071.1Sdholland - Contact: ? (XXX) 1081.1Sdholland 1091.1Sdholland 1101.1Sdholland6. Touchscreen (phone/tablet) UI 1111.1Sdholland 1121.1SdhollandWe'd rather like to be able to run on phones, and that means having a 1131.1SdhollandUI suitable for a phone -- a shell isn't going to cut it, and even a 1141.1Sdhollandshell coupled with a keyboard app isn't really the ticket. 1151.1Sdholland 1161.1SdhollandThis has many of the same kinds of issues as desktop software. Some of 1171.1Sdhollandthe specific issues are different; e.g. location handling is a lot 1181.1Sdhollandmore critical for phones than for desktops and even laptops. 1191.1Sdholland 1201.1SdhollandWhile we don't currently run on any phone platforms (see below) 1211.1Sdhollandthere's nothing stopping working on this using older PDA/palmtop 1221.1Sdhollandhardware like hpcarm. 1231.1Sdholland 1241.1Sdholland 1251.1Sdholland7. Support for phone hardware 1261.1Sdholland 1271.2SniaAs of 2025, much of the underlying work to support various Arm 1281.2SniaSoCs is done, but this point is heavily dependent on item 6 (UI). 1291.1Sdholland 130