/srv/irclogs.ubuntu.com/2011/02/17/#ubuntu-arm.txt

dasilva333hey guys01:40
=== panda is now known as Guest59538
=== asac_ is now known as asac
XorA|gonemorning02:58
prpplaguehey bud02:59
prpplagueXorA|gone: you get a chance to fill in the pandaboard survey?02:59
XorA|goneprpplague: already done02:59
prpplagueXorA|gone: dandy02:59
XorA|goneprobably the only hope I have of getting one :-D03:00
prpplaguea chronos watch?03:00
prpplagueXorA|gone: you still haven't gotten a pandaboard?03:00
=== Guest59538 is now known as panda|x201
XorA|goneprpplague: nope04:18
* XorA|gone is now starting to hate hardware designers04:19
XorA|goneprpplague: thats not you BTW :D04:19
prpplaguehehe04:19
=== fta` is now known as fta
hrwflash-kernel needs changes for panda ;(09:00
hrw1. 2.6.38-rc has "OMAP4 Panda board" not "OMAP4430 Panda Board"09:01
hrw2. linaro kernel is 'omap' not 'omap4' flaovour09:01
=== asac_ is now known as asac
janimohrw, you mean /proc/cpuinfo changed for panda?09:42
hrwyes10:00
hrwwho knows, maybe one day there will be 4440 based panda10:00
janimoon a panda, how can I pass boot arguments to the kernel from u-boot without adding a new boot.scr ? I'd like to pass nosmp10:42
hrweasiest it to edit boot.scr10:43
loolhrw: I'm afraid there are multiple versions of the kernel which can boot panda in natty and the latest flash-kernel changes don't allow this10:47
hrwI know10:48
ograwell, -omap is tricky, tres is trivial10:52
ogras/tres/the rest/10:52
* ogra doesnt get where the letters went, i definitely typed them10:52
hrwI prefer to not touch flash-kernel. my changes ends in ogra's merge queue which is huge enough10:53
ograhrw, i will surely fix the cpuinfo bit but would appreciate a patch to handle the case where the package is named -omap10:54
ograi fear that will break NCommander's changes for generic kernel installation10:54
persiaWhy does flash-kernel limit which kernels can boot?  Shouldn't it take the latest usefully installed kernel, and perform the appropriate action?10:54
ograhmm, wait, you are right, flash-kernel doesnt care for package names at all10:55
* ogra re-checks10:55
hrwit cares for flavour names10:55
ograit shouldnt10:55
persiaIf it cares for flavour names, it needs to be fixed.10:55
hrwthen kill sub_arch check10:55
persiaHrm, but it ought care about subarch.10:59
ograpersia, it does that since NCommander added his subarch stuff11:00
ograuname -r | sed -e 's/.*-//'11:00
ograit doesnt care for package names but for flavour in uname11:00
persiaRight.11:01
ograwhich also breaks blaze11:01
persiaDebian flash-kernel uses kfile to determine subarchi.11:02
persiaWith subarch=$(echo "$kfile" | sed -e 's/.*-//')11:02
persiaThe confusing bit is that the Debian version seems to be willing to accept kfile=/boot/vmlinuz and I'm unsure how that works with check_subarch11:04
hrwflash-kernel require rewrite I think11:07
persiaAh, I see.  if subarch="", check_subarch always returns true.11:08
ograthat doesnt matter11:11
ograwhat matters is that check_subarch is completely ignored on dove omap and omap4 arches11:11
persiaAh, because there are no "machine" entries.  I see.11:12
ograyep11:13
ograthe prob is that instead of guessing for a proper kernel the code just makes it ignore the check11:13
ograand installs whatever kernel is available11:13
ograto be proper implemented it would need more of a database and some clever algorhythms to do guesswork11:14
persiaRight.  I see the issue now.  flash-kernel is just entirely different for omap|omap4 than everything else, which is a bit confusing.11:15
ograa proper implementation would be possible with devicetree db's11:15
ograyou could match kernel features against the actual hw11:16
persiaHow would that work?11:16
ograthe kernel ships the devicetree data anyway11:16
ograso you iterate over the devices and match them against the actual HW of the board on your first run or from d-i11:17
ograif you find the kernel supports a) the arch and b) enough devices for booting, you write a flag11:18
ograthat flag is looked up on flash-kernel run11:18
persiaHow does one define b) ?11:18
ograrootfs device, serial support and basic init ... you need a db for that indeed11:19
persiaWhy do we care about serial?  How can we identify "basic init" for arbitrary boards?11:19
ograyou could spill a warning if not everything is supported11:19
ograyou cant you will always need a matching db about whats needed for init11:20
ograbut that way you can at least support a wider range of HW without breaking it for totally unsupported stuff11:20
persiaMakes porting new devices kinda annoying.  I thought with devicetree, we were expecting the kernel to be able to do discovery-boot on arbitrary devices.11:21
ograonly for devices it has a machine file for11:21
persiaI thought you would be able to specify a machine file on the kernel command line.11:21
ograyou still have the toplevel subarch11:21
ograi.e. take the touchbook ...11:22
ograessentially its a beagle11:22
ograand you can use a beagle kernel on it11:22
ograbut wont have much devices11:22
ograsince the devices are special and never have been pushed upstream11:22
ograyou will still be able to boot into serial with any std beagle kernel though11:23
persiaSo, let's say there is a device with necessary upstream support.  Should that just work?11:25
persiaAnd with the current model, what ought be done differently for the touchbook?  It seems to me that it wouldn't be any different to use the machine specifier or running_subarch.11:26
persia(as the subarch isn't changing)11:26
ograit would be able to tell you that you only have minimal kernel support and optionally ask you about proceeding or not11:28
persiaSo, increase the verbosity of the "Generic Subarch" warning, and ask the user to confirm the operation?11:28
ograleave the user the option to not mess up his system11:29
persiaI can't reconcile wanting to be able to boot (perhaps with confirmation) on devices the code doesn't know about and wanting to have a comprehensive DB controlling the booting.11:31
persiaHow would that work?11:31
ograheh, well, if you run flash-kernel you already have a working system11:31
ograif you would run it on a kernel that drops features you surely would want a warning11:32
persiaYes, but if you run flash-kernel-installer, you may not have a working system yet.11:33
ograif you run flash-kernel-installer on such a system, d-i has a bug11:34
persiaHuh?  Why?11:34
ograit shouldnt install on unsupported HW11:34
ograactually the check should happen way way earlier11:34
persiaSo, I'm a user.  I copy some data I downloaded off the internet onto my card.  I stick it in my device.  I turn it on.11:36
ograand d-i (or whgatever else) politely tells you that you in max will run that device with a serial console11:37
persiaAt this point, there are three options.  If I'm booting an alternate image, base-installer checks to make sure I'm installing an acceptable kernel.11:37
ograor tell you its not supported at all11:37
ograor it just works11:37
persiaIf I'm booting a live image, there is no check.11:37
persiaif I'm booting a pre-installed image, there is no check.11:37
ograright, we should add that to jasper11:37
persiajasper should probably leverage base-installer to do that.11:37
ograyes11:38
persiaBut there's still the live image case.11:38
ograits on my WI list11:38
persiaHeh, OK.11:38
ograthats why i asked you about your tool in main ;)11:38
persiaHow is that related?11:38
ogradevice-detect gets me more detailed info11:38
persiaThan what?11:38
ograarchdetect (which is what base-installer uses)11:39
persiaPlease *don't* use devicetype-detect for that.11:41
persiaYou'd just be duplicating the test suite, etc.11:41
ograbut i need to match against more detailed data than archdetect can deliver11:41
persiaNo you don't.11:42
ograjasper *is* duplicating stuff11:42
persiaIf you need more specificity, you need to get that into archdetect11:42
ograthats its whole purpose11:42
ograno, i dont11:42
persiaI thought we had a UDS session about that.11:42
ograarchdetect does exactly what its supposed to do11:42
persiaAnd decided that jasper should *not* duplicate stuff.11:42
ograbut doesnt get me enough data back11:42
ograjasper *has* to duplicate casper functions11:43
ograthats its whole purpose11:43
persiaWhat data do you need?11:43
ograif you would check live images you would have to implement it in casper11:43
ograarch *and* device11:43
persiaWhy?11:43
ograbecause our kernels can support more than one device11:44
persiaSo, back to my story.11:44
persiaI boot into the live image.  Everything is working.  I press install.11:44
ograand it would be clever to i.e. be able to shut off gdm if you detect you run on a beagle C411:45
persiaIt installs, the install runs flash-kernel installer.  It installs the kernel that I booted.11:45
persiaWhy do I care if I'm using a device that you've never heard about?11:45
ograyeah, thats no issue11:45
persiaIt is if you care about device.11:45
persiaBecause if you care about device, you're going to tell me it doesn't work, and maybe try not to install.11:45
ograexactly11:46
persiaSo it is an issue, which is a bug.  Let's look at another way to do it that doesn't have that problem.11:46
persiaAs I see it, we have two ways we can fail.11:47
persiaWe fail if we write a kernel to a device which can't use it, and render it unbootable.11:48
persiaWe fail if we refuse to work on a device on which the kernel works.11:48
persiaDo you see any others?11:48
ograhalf way working devices11:48
ograand devices for which this image isnt suited11:49
ogra(beagle C4 with a full desktop for example)11:49
persiaI refuse to have an opinion on whether someone wants to run a given image on a given device.  That decision belongs to the user.  All we can do is suggest things.11:49
ograwe can adjust defaults11:49
persiaI don't think that's being nice.11:50
ograif i turn off gdm on a C4 thats helping the user and gdm is still there to be started if he wants to11:50
persiaLet's imagine someone has a beagle C4 that they hacked to have 1G ram and are running overclocked in liquid nitrogen bath: who are we to say they can't run normal desktop?11:50
ograthey can11:50
ograand given they were clever enough to hack it that way i would trust them to find out how to re-renable gdm11:51
persiaAnyway, we're getting sidetracked.  Let's ignore all the defaults for now.11:51
persiaSo, about devices that only kinda work: is the failure if we boot our kernel, or if we don't boot our kernel?11:52
persiaI'll claim the failure is to not boot the kernel, as otherwise we can never collect useful bug reports.11:52
ograyes, i agree11:52
ograbut the user needs to know about it11:52
persiaI've no issue with that.11:53
ograif you boot a kernel that has no display support at all the user needs to know that11:53
persiaHow can you tell the user this?  There's no display...11:53
ogramors code on an LED :P11:54
ogra*morse11:54
persiaYou're mad!11:54
ograno, indeed you are right, if we are in first boot that doesnt help11:55
persiaGoing back something useful.11:55
ograif i install a development kernel it does though11:55
persiaSo, we've booted the first time with a downloaded install image.11:55
ograright, that either boots or doesnt11:55
persiaAs a result, we have confidence that the kernel we booted is sufficient to allow the user interaction, which implies able to boot off install media, input/output of some sort, etc.11:56
ograyes11:56
persiaAnd I claim we can trust the user to have selected the appropriate input/output (serial console, KVM, etc.) for their needs.11:56
ograif the user sees it booting he should, yeah11:57
persiaNext, we do the install steps (jasper/ubiquity/d-i).11:57
persiaAt this point, we end up calling flash-kernel-installer11:57
persiaThis should succeed.  I've no issues with warning the user in the event that it's a device we don't know, but since we booted on that kernel, we ought to be able to install that kernel on the device.11:58
ograthen flash-kernel-installer should have no checks at all11:59
persiaNow, here's where it gets tricky.11:59
persiaThere's N different kernels in the archive, and K different ways to mangle the kernel to make it bootable.12:00
ograthe point is that you need to identify the way the device boots12:00
ograin which case you again need the data about the device, not the arch12:00
persiaSo, we care about K, but not about N?12:00
ograyou just said yourself, if we are booted from that kernel to a point where it works, we dont need to care about N12:01
ograflash-kernel will only dump the kernel in a different place12:02
ograthe place is the point12:02
ograand that depends on the device data12:02
persiaOK, so for that we want the machine info from CPUinfo12:02
ograright12:02
ograbut probably even more12:02
ograi.e. beagle C4 vs XM12:02
persiaAnd the abstraction of omap_flash_kernel and dove_flash_kernel only breaks things.12:02
ogracpuinfo doesnt identify the difference12:03
persiadevicetype-detect doesn't.12:03
ograhmm, we should enhance it that way12:03
persia(actually, devicetype-detect only outputs strings like "netbook", "laptop", "desktop", "phone", etc. (even less detail))12:03
persiaNo.  The point of devicetype-detect is to add some flexibility to laptop-detect.12:04
ogradevice-name detect would be more intresting, yes12:04
persiadevicename-detect has all sorts of arch-specific hackery, but for armel, just uses machine from cpuinfo.12:04
persiadevicename-detect is mostly interesting because it has the equivalent collection for every architecture.12:05
persiaSo, again, that's no more information.12:05
ograit should have revision data12:05
persiacpuinfo has that.  Devicename-detect doesn't care.12:05
ograor at least a switch to show it12:05
persiaParsing cpuinfo is significantly more robust.12:05
ograbut exhausts what flash-kernel can do atm12:06
persiaHow do you mean?12:06
ogramachine=$(grep "^Hardware" /proc/cpuinfo | sed 's/Hardware\s*:\s*//')12:07
persiaRight.12:07
ograthats all that is matched against12:07
ograand not all boards ahve a revision in cpuinfo12:07
ograso you cant just blindly match against it12:07
persiaYou're saying that cpuinfo:Hardware doesn't have an identity relation to method-to-make-kernel-bootable?12:08
ogranot on all boards12:08
ograthats the prob12:09
ogra"OMAP3 Beagle Board"12:09
ograis returned for *all* beagles since revision A12:09
ograso you can have a 128M, 256M or 512M version with or without flash etc etc12:10
persiaIs this a kernel bug, or is there additional information available that lets us identify the specific requirements for boot?12:10
ograno, thats a design decision from the manufacturer12:10
hrwpersia: it is not a kernel bug12:10
hrwA3/B7/C3 are beagleboard. they just have different revision12:10
ograXM too12:11
hrwogra: never played with xM12:11
persiaSo, is there additional information available that lets us identify the specific requirements for boot?12:11
ograand you will see the same prob on panda12:11
ograthough here its even worse since the kernel string changed between revisions12:11
ograwould be intresting to know what the linaro kernel says on blaze or tablet12:12
ograor on the RIM tablet :)12:12
ograor the new LG phone ...12:12
persiaSo, is there additional information available that lets us identify the specific requirements for boot?12:12
ogranot on beagle, i think there is a sysfs file somewhere and u-boot should know it too by poking some HW info12:13
ograbut u-boot is gone at that point12:13
persiaDo we know which sysfs file?12:14
ograno, i dont atm12:14
persiaBecause we ought to be checking that to define machine in flash-kernel/flash-kernel-installer, rather than cpuinfo:hardware12:14
ograand dont have either board around to check12:14
persiahrw, Any ideas?12:14
ogra cpuinfo:hardware is ok for top level identification12:15
hrwcpuinfo:hardware + cpuinfo:revision are nearly always present on arm12:15
persiaNo, it's useless, if there isn't an identity relation between that and technique-for-making-device-bootable12:15
persiahrw, does that pair have an identity relation to technique-for-making-device-bootable?12:16
hrwpersia: sorry, I didn't followed whole discussion12:16
hrwpersia: even hw+rev will not tell you do you need uImage or zImage.12:16
persiaAh, so yeah, that's not complete.12:16
hrwbeagleboard can have u-boot or Qi or barebox or anyother bootloader12:16
persiaBasically, we need some way to know what method to use to make a device bootable.12:17
persiaOr rather, to be able to select from a set of recipes to convert a packaged kernel into whatever format/placement/etc. is required so that it is a bootable kernel.12:17
hrwif you stick to 'this machine is ubuntu stock config' then hw+rev should work for most I think12:18
persiaWhat do you mean by "ubuntu stock config"?12:19
hrwgranted that device runs known bootloader12:20
hrwotherwise you will end in hell of providing uImage + zImage + wtfImage + .... + yabImage12:21
lilstevierim tablet may not be so easy to get your own kernel executing on12:21
persiaI'm willing to pick a preferred bootloader on a per-device basis.12:22
persialilstevie, Why?12:22
lilsteviethe playbook devel images are starting to show RSA 4096bit signatures12:23
persiaOh, annoying bootloader.  I'm happy to ignore those devices.12:23
lilstevieheh12:24
lilsteviethe galaxy tab is starting to do my head in too12:24
persiaMost of the time someone figures out a way to work around them at some point, and only after that is anyone likely to run Ubuntu on them.12:24
lilsteviesomething really doesnt want to let X work on it12:25
lilstevieif it is anything like iDevices someone will need to write a replacement bootloader for it12:25
persiaogra, Do you know of a case where Hardware+Revision matches two different devices with different requirements for flash-kernel?12:25
lilstevieis there a way of getting greater detail on what is screwing with Xorg than -verbose 2012:26
persialilstevie, You might ask the folk in #ubuntu-x12:28
lilsteviepersia: ok thanks I asked over there12:31
persiaikepanhc, Hey.  Do you happen to know if there is a unique device entry in the sysfs tree, or if our best information is Hardware+Revision from cpuinfo?12:36
hrwdid someone stacked beagles with pandas?12:36
apacheloggerdo we have a tiwlan driver somewhere?12:37
ikepanhcpersia: you need the list of device within SoC?12:38
persiaikepanhc, Rather, when booting a retail device, I'm trying to have a unique identifier for what to do with a kernel post-install so it will boot.12:38
persiaSorry for the confusion around the word "device"12:39
persiaapachelogger, There's one in a PPA: https://launchpad.net/~tiomap-dev/+archive/release : probably needs some review if it is to be in-archive.12:40
ikepanhcpersia: so, I guess you need a way to identify the SoC because you want to use the same image on different platform?12:41
apacheloggerhm12:41
apacheloggerpersia: one gets to wonder if it works with omap3 :D12:41
persiaikepanhc, It's more than just SoC: for example, the Touchbook and the Beagle are both the same SoC, but different hardware.12:41
persiaapachelogger, Heh.  No idea.12:41
apacheloggerpersia: ok :)12:42
ikepanhcpersia: ok, then for SoC, cpuinfo maybe not perfect but as I know, its the only one12:42
ikepanhcpersia: but for other device outside the SoC, I believe we need to probe them one by one12:43
ograpersia, the PPA one will go away, it has been reimplemented in .3812:43
persiaikepanhc, Thanks for the confirmation.  Right now, we're using cpuinfo:Hardware, but we'll look at cpuinfo:Hardware+revision.  If that's not enough, we might request more from the kernels :)12:43
ograpersia, touchbook is such a case as you ask for above, it is identical to beagle in all aspects12:43
ikepanhcpersia: some hardware designer will try to use gpio pins or ROM for identifying hardwares12:43
ikepanhcpersia: but there is no standard rule for this12:44
persiaapachelogger, Try the .38 omap3 kernel from the linux source package, and see if the wlan just works.12:44
persiaikepanhc, Ah, OK.  That makes it extra tricky.  Thanks.12:44
ikepanhc:)12:44
apacheloggerwell, I don't have much to try yet :D12:44
apacheloggerthough12:44
apacheloggerI'll get an archos 101 it would seem12:45
hrwapachelogger: nice device12:45
hrwpersia: i2c:50 on beagleboard will give you ID of extension board for example12:46
apacheloggera notion ink adam would still be nicer ^^12:46
persiaogra, So, I'm wondering if it's hubris to assume we can guess how to make a kernel bootable.  I wonder if we wouldn't do well to catalog a set of post-install recipes, and then have the user select one (defaulting based on cpuinfo:Hardware)?12:47
ograhmm, i would prefer to automate it more12:47
persiaI'm thinking that we have some conffile that specifies the recipe to use, and just reuse it reliably post-install.12:48
persiaSo users would only encounter this on first install, when they are asked to confirm booting method: and it's just the confirmation for some devices, other devices would have to select an alternate method *OR* choose "none", and do it manually.12:49
ograhmm, yeah12:49
persiaSo, for the Touchbook/Beagle example, we default to Beagle, but someone with a Touchbook could select Touchbook.12:50
persiaMind you, if they happen to be installing a kernel that doesn't have the support for the Touchbook, they will be unhappy, but that's a separate issue.12:51
persiaAnd once there is richer devicetree support, we could consider doing an analysis between current hardware and supported hardware, and informing the user if we believe they are installing a poor kernel for their device.12:51
persiaBut that's not for Natty.12:51
ograyep12:51
persiaNCommander, So, the above massively impacts your generic-subarch stuff.12:52
persiaBasically, we're not convinced that there is a useful relationship between detected-subarchitecture and recipe-to-make-just-installed-kernel-boot.12:53
persiaNCommander, Do you think we can leverage the generic-subarch spec to do as described above, or do you think we need to do something differently?12:54
sveinsepersia, doesn't ARM linux have a machine ID mechanism which had to be setup in the bootloader?12:57
sveinsesee http://www.arm.linux.org.uk/developer/machines/12:58
hrwsveinse: but you can make kernel which boots on more then one machineID12:59
persiasveinse, I don't believe we can see that from userspace, I'mo not convinced there's an identity relationship between that machine ID and the method by which the kernel is made bootable, and I know of devices (e.g. Sharp Netwalker) that do not have a registered unique machineID (which has caused issues with upstreaming support for that device)13:00
persiaMind you, I'd be glad to be wrong :)13:00
persiaNCommander, Since you'll apparently encounter this in backscroll: the description of what I'd like to do starts at :4713:01
sveinsepersia, It's probably true, though. We had a long discussion internally whether to register a public machine ID or not, since it would reveal info about a upcoming product13:02
persiahrw, I think we would have cases where the same kernel would boot on multiple devices, using different recipes to make it bootable.13:02
persiasveinse, I can't emphasize enough that you really want to have one registered in order to ensure support for the device can eventually go upstream.  Use a funny codename, or something that otherwise is unidentifyable with any specifics.13:03
sveinseI do embrace the Machine ID idea in all cases, because as you've said, without it you can't know reliably which HW you're on13:04
persiaThings like "rhino" or "snowball" or "guppy" or "spitz" don't tend to be very informative.13:05
persiaEven with it, it's not easy to know, but yeah :)13:05
sveinseUSB has it, PCI has it, even mobles phone all have systems for tracking the HW its running on13:06
sveinseiirc PC has it as well via. the DMI13:06
persiaSo you suggest that we ought to try to expose the machineID to userspace, and then claim there is an identity between machineID and recipe-for-kernel-postinstall-mangling?  File bugs for devices without machineIDs?13:08
sveinseI would love that yes, but I fear many boards/bootloaders don't set this ID properly13:10
sveinseThe machine type codename ("rhino", "snowball" etc.) is irrelevant. It's the number which should uniquely identify the HW.13:11
sveinseAnd it would be nice if the machine id also could add a field for revision. Now I need to put in some custom mechanism for identifying the board revision to load the correct driver options, etc.13:13
persiadevicetree is better for that.13:13
persiaAnd in the absence of devicetree, a detection algorithm.13:14
sveinseI still need to determine which HW revision I'm on.13:14
sveinseI can probe, but that is implementation dependant. If I could get the revision along with the machine ID, it would be sufficient to inform the SW which HW its running on13:15
persiaI assert that you care which revision of each peripheral you have, rather than which revision of the board/retail device you have.13:15
persiaWhich is why I claim machineID isn't the right place for that.13:16
sveinsesorry, what do you mean? Machine ID identifies the HW, right? The HW revision number also follows the HW, so it's linked to the Machine ID13:18
sveinsepluggable peripherals are IMHO another ballgame and needs its separate scheme for identification (like USB VID/PID)13:19
persiaI believe that non-pluggable peripherals ought be treated the same, for the most part.13:19
persiaHelps reduce duplication of code or special-casing when the same components are used on multiple boards, etc.13:19
sveinseah, I see.13:20
sveinseThat would require that the SoC implementors agreed upon some scheme for device ID on peripherals...13:20
persiaYes.13:20
lilsteviegood luck with convincing them of that13:21
persiaWell, rather that the board implementor happened to select components, all of which had some scheme for device ID implemented.13:21
sveinseI second that, but doubt it will be easy to convince the mfgs13:21
persiaheh :)13:22
sveinseWhen you port linux to a new SoC, you need to make the platform driver's list13:23
sveinsewhat if you would have to put some pre-defined ID in here, a scheme like USB VID/PID?13:23
lilsteviemaybe once windows arm devices start being sold13:23
persiasveinse, Perhaps, but I'm thinking more about off-SoC peripherals.  I'd much rather only have to identify SoC+revision than board+revision and then go hunt up a lookup table.13:24
persialilstevie, Why would that be different?  The more so considering all the existing ARM devices that run various flavours of Windows?13:26
sveinsepersia, what kind of off-SoC peripherals are we talking about? this doesn't apply for USB at least13:27
lilsteviewell once windows8 arm gets released that will push for uniform identification methods13:27
persiasveinse, Being a software person, I probably have an incomplete picture: I've been presuming that the reason we care about per-machine stuff rather than just per-SoC stuff (with machineID) is that there exists some set of hardware that is on the board and not part of the SoC that is important for booting and initial bringup.  I've no idea about the specifics.13:28
sveinsepersia, SoC+revision only identifies, well, the SoC. board+revision gives you the ability to know e.g. which gpio is connected to what.13:29
sveinsepossibility, not ability per se13:29
persiaRight, and it's that bit which I'd hope to have some way to identify without tracking board revisions.13:30
sveinseI understand what you want, and I do agree, but I don't think the picture is that easy unfortunately13:31
persiaWhat complicates it?13:31
sveinseMany SoC is capable of booting without support from other devices except memory13:32
sveinseTake ethernet as one example: The phy may be external or internal to the phy, same applies to the MAC. You don't know that from a generic SW point of view while booting13:33
sveinseI ment external or internal to the SoC13:33
persiaAnd these different implementation choices require different hinting to the drivers, in a way that the drivers cannot handle through discoverability?13:35
persias/discoverability/discovery/13:36
sveinsepersia, essentially yes13:44
persiaI see.  I don't much like it, but I think the right answer is to handle that with devicetree rather than trying to engineer something else currently, for all that means waiting a bit more.13:46
sveinseiirc, the kernel uses the machine id to select which platform init to run. And the platform init (like arch/arm/mach-omap2/board-omap3beagle.c) sets up all the drivers and devices specific to the HW13:46
persiaThat makes sense.13:47
sveinseBTW: looking in the board-omap3beagle.c I find a function named omap3_beagle_init_rev() which actually probes some gpio pins for HW revision. -- Because the designers of the beagle board decided to place the HW revision scheme that way13:50
sveinseWhen I come to think about it, it wouldn't help to have the HW revision number along the machineID from the bootloader, beacuse its "just" software. Then the bootloader would have to do some HW probing anyways, and then you're back were we started13:52
sveinseoh how time flies...13:53
* sveinse *leaving*13:54
loolpersia: efikamx smarttop support on its way to linaro-image-tools https://code.launchpad.net/~lool/linaro-image-tools/efikamx/+merge/5015114:22
persialool, Cool.14:41
=== 16WAAHT8Q is now known as ian_brasil
persialool, I notice overo listed there as well.  Is that working cleanly with the linaro builds?14:43
loolpersia: It is, albeit there is a kernel issue which has a patch14:44
loolI think it's hdmi output or so14:44
persiaYour merge doesn't seem to have EfikamxConfig: that was already merged?14:44
loolLP #66081114:45
ubot2Launchpad bug 660811 in linux "Display is not working on Gumstix Overo" [Undecided,Fix released] https://launchpad.net/bugs/66081114:45
loolpersia: +class EfikamxConfig(Mx5Config):14:45
lool28+    uboot_name = 'efikamx'14:45
lool+class EfikamxConfig(Mx5Config):14:45
loolgah14:45
loolpersia: I see it14:45
persiaAm I reading 660811 correctly as fixed-in-maverick-open-in-natty?14:46
persiaRight.  That's just me not understanding linaro-image-tools.  Sorry.14:48
loolpersia: 660811 > yes14:51
loolalbeit I think the bug tasks are bogus14:51
persiaWhat's wrong with the bug tasks?14:53
loolit says linux14:55
persiaI thought that omap3 kernels were produced by the linux source package for both maverick and natty.14:55
ograright14:58
ograjust not for lucid14:58
loolYeah, but I think Andy is commenting for the Linaro kernel15:00
persiaAh, so maybe it needs some linux-linaro tasks as well?15:01
persiaBut we ought get that patch into linux anyway: regressions are bad.15:01
loolI've checked all trees and added missing tasks15:02
loolthe linux task is still needed15:02
ograhrw, just uploaded a little present for you ;)15:06
hrwogra: flash-kernel finally?15:12
ogra:)15:12
loolBah I've just noticed that Ubuntu's flash-kernel doesn't remove tmpfiles it creates and has some insecure constructs like usage of tempfile + suffix15:22
persiaAnd needs a merge with upstream :)15:22
ograupstream only adds unused arches15:24
ograelse i would have done it15:24
persiaThere's some code-safety and syntax improvements as well.15:25
loologra: what did you do of the check_subarch part in the end?15:25
ogralool, have you seen initramfs-tools upstreams comment on the bug i files about create vs update ? he claims that the kernel should ship the scripts that call update-initramfs and flash-kernel15:25
ogralool, nothing yet15:25
ograi need the right data first15:25
* ogra hasnt run .38 yet15:26
ogralool, and i have no real idea what to do about -omap vs -omap4 atm15:26
persiaCould we just allow *both* "omap" and "omap4" for omap4 hardware?15:27
ograits about the uname check15:27
persiaOr does this go back to the earlier discussion, and I should ignore it this time?15:27
ogranot sure15:28
ograits quick fix vs proper implementation i think15:28
ograthe latter is as you stated not natty15:28
persiaWhat?15:28
persiaI said that doing devicetree mapping of capabilities was not-natty.15:28
loolthere are three subarch concepts in Ubuntu's flash-kernel (and two in Debian's)15:28
ogralool, yes, the third one is NCommander's subarch detection15:29
persiaI don't see any reason not to do selectable-recipe for natty, as the generic-subarch spec is still pending, and I no longer believe that solves the actual problem it was intended to solve.15:29
ograwhich as i stated above in the discussion just a way of ignoring subarch detection and spilling a message on certain arches15:29
loolone is uname -r (running_subarch), Ubuntu-only, one is the sufix of the vmlinuz which we're about to install, and the third one is the subarch name which we use for the platform15:29
ograthen there are four, not three15:30
persiaWhat?  Where is the fourth?15:30
loolmy personal preference would be to never use uname, and to change flash-kernel to create a flash-kernel.conf on install or upgrades which documents the kernel which one prefers to run15:30
sveinseWhere are the logs for this channel located?15:31
ograpersia, two debian ones, plus ubuntus vmlinuz plus ignoring arch check completely on dove, omap and omap415:31
persiaI'd also like to add selectable-flash-recipe to that conffile, and get away from the tight integration of machine and flash-recipe.15:31
loolsveinse: usually irclogs.ubuntu.com is the place for ubuntu chans15:32
persiaogra, No.  $running_subarch is the one that is used to ignore things.  It's not a fourth one.15:32
ogralool, agreed15:32
loolpersia: Yeah; I'm not sure how much should be configurable, but I think there should be a recipe or "method" concept for installign the kernel, e.g. NAND vs MMC15:33
loolpersia: I've actually started work on cleaning up flash-kernel upstream; I'm not at the method part yet, but I made good progress on the rest15:33
persiaIn the earlier discussion, we use the Touchbook vs. the Beagle as an example, where someone might want to have different install recipes for the same reported hardware.15:34
persiaObviously, we should default to the sensible recipe for the detected hardware, but in cases where it's uncertain, or cases where there are choices, or cases where the hardware is unknown at release time (but the user knows a supplied recipe works), the user can still do something useful.15:35
loolYeah15:36
loolflash-kernel basically needs extension and configuration points; it's just hard to get these right and not end up with a very painful to maintain system15:37
loolor risking to break systems15:37
* ogra is eager to see functions and hw database separated as a first step15:37
loolthat's what I'm working on ATM15:38
loolit's really a lot of work though15:38
ogracool !15:38
ograyeah15:38
janimolool, still in bash ?15:38
loolwell, in POSIX shell15:38
ograhopefully15:38
looljanimo: I don't really mind  :-)15:38
loolthere are some painful points I admit15:38
* ogra prefers shell 15:39
loolbut I always liked shell, I'm a bit of a masochist15:39
janimowell it i s great for the seemless integration with the OS and running commands, but it is not a sane programming language15:39
janimopart of the reason why flash-kernel is spaghetti15:39
loolI tend to disagree15:39
loolDebian's flash-kernel is actually readable, just has a lot of code duplication15:39
looland I would hope my reworked code is even more readable15:40
ograubuntu isnt so much15:40
ograthats the issue ... we added on top of debians and not always in the most appropriate way15:40
looljanimo: Another quite sad choice is to intend everything with a tab; it makes it really hard to read when code gets nested a bit  :-/15:43
NCommanderlool: just adjust your tabstop to 2 or something; its why I prefer tabs to spaces15:55
persiaNCommander, So, about generic subarch and the lack of apparent relationship between SoC and flashing-recipe.  What's your opinion?15:56
NCommanderpersia: I'm not quite sure I follow15:57
persiaSo, based on the set of devices seen, there seems to be no useful relationship between the SoC and the recipe required to ensure that the available kernel is used for the next boot.15:58
ograNCommander, did you read backlog of the last hours ?15:59
persiaAnd you're working on this generic-subarch spec, which seems to focus on providing a good installation experience regardless of whether the device is one that happens to be certified in some way.15:59
ogra(if not, i would suggest to do so)15:59
NCommanderogra: I didn, but still confused15:59
NCommanderpersia: I disagree, the install scripts should be smart enough to detect what's present and properly install based on that16:00
persiaWhat sort of detection do you imagine?16:01
persiaSpecifically, I don't see how we can determine the bootloader configuration in a safe or repeatable manner, especially for devices where we aren't installing the bootloader.16:03
NCommanderpersia: on devices we support, we assume the bootloader is uboot, and its installed to the SD card or NAND16:03
NCommanderits straightforward to check if the bootloader is there, and if so, write boot files16:04
persiaSo, why does ogra claim this breaks some devices?16:04
ograit breaks the blaze16:04
NCommanderogra: ?, for blaze we simply write to SD card, same as panda16:05
ogradoesnt work with emmc16:05
ograthe device names are different16:05
ograyou have assigned the bug, read it16:05
NCommanderogra: we don't support using the eMMC, nor have we ever. The block device is written out by flash-kernel-installer into a confiugration file16:06
* ogra sighs16:06
NCommanderogra: am I wrong about supportng the eMMC for booting?16:08
ograit should not break at least,. please read the bug16:08
NCommanderogra: care to provide a link?16:08
ograit think it was discussed teher since maverick16:08
* GrueMaster looks16:11
NCommanderogra: and my work mostly beeon of dove until this cycle, and then on panda; I don't even have a blaze; I have to borrow GrueMaster's16:11
GrueMasterI think it is Bug #62674916:12
ubot2Launchpad bug 626749 in flash-kernel "flash-kernel tries to use MTD devices on OMAP4 when no flash-kernel.conf exists" [Medium,Confirmed] https://launchpad.net/bugs/62674916:12
persiaSo, specifics aside, can we not imagine a device that should just work that doesn't have an identical recipe to make a kernel boot?16:12
* NCommander can't16:13
persiaWhat about Touchbook & Beagle, discussed earlier.16:13
persiaApparently they have the same cpuinfo16:14
GrueMasterpersia: The hard part about this is platform availability.16:14
persiaGrueMaster, Why?16:14
GrueMasterIf you don't have one, makes it hard to support.16:14
NCommanderpersia: already handled by existing code. If the bootloader is on an SD card already, flash-kernel writes to the SD card, else it tries to write to NAND16:14
NCommanderthe bug GrueMaster references is simply the code tries to write to NAND unconditionally if theres no configuration info16:15
NCommanderwhich is a bug16:15
GrueMasterNCommander: That assumes /etc/flash-kernel.conf.16:15
NCommanderGrueMaster: which exists if somene installed with one of our images16:15
persiaGrueMaster, Why?  The point of a flexible architecture is that it allows one to support anything that doesn't work (and accept fixes to tune that).  An inflexible model only supports that which was tested and verified.16:15
GrueMasterpersia: I was referring to the current code, which is not flexible.16:16
persiaWell, it's worse than that: parts of it are inflexible, and other parts simply assume a recipe works because it's "dove" or "omap" or "omap4"16:17
ograpersia, beagle C vs XM16:18
persiaogra, What's the difference in recipe for those?16:18
ograstop using the touchbook example ;)16:18
ograNAND vs SD boot16:18
GrueMasterpersia: Beagle C has nand, XM doesn't.16:18
ograidentical cpuinfo16:18
GrueMasterPhysically.16:18
hrwogra: same rev too?16:18
persiaBetter example.16:18
NCommanderogra: GrueMaster: so you detect for NAND and use it if its available if something isn't set in flash-kernel.conf16:19
hrwNCommander: how you check for nand?16:19
hrwNCommander: /proc/mtd?16:19
GrueMasterEven our current images are broken wrt beagle C.  If the Beagle has had Lucid installed (or anything else that used nand), our current images will fail as they are set to boot from sd only.16:20
NCommanderhrw: yeah and the device in /dev/*16:20
hrwNCommander: "modprobe mtdram" and your test will fail16:20
persiaIndeed.16:20
persiaAlternately, modprobe nandsim16:21
GrueMasterWill that work in the case of Tegra?16:22
persiaTegra will hit the hardcoded path16:22
GrueMasterOr other systems where the user may not want to kill nand?16:22
NCommanderpersia: so you think then generic subarch should die and shelf it as a spec?16:23
persiaWell, I'm not sure about that.16:24
persiaThe more I think about available devices, the more I think that the set of recipes doesn't map well to the set of subarchitectures.16:24
NCommanderpersia: you've just made a very convincing case that its not going to have a wide swatch of support16:24
NCommanderpersia: right16:24
persiaAnd so while I'm hugely in favour of the goal of making it just work on arbitrary devices, I wonder if splitting by subarch is the right way to do that.16:25
ograNCommander, it shouldnt die but needs more detailed testing for devices16:25
persiaSo I guess I wonder if you'd be interested in doing some sort of recipe-mapping model rather than a subarch-mapping model in your work for natty.16:25
NCommanderpI dropped out of Mileage Plus years ago after flying 300,00 revenue miles as a 1k or at the mid tier level over 5 years ago.Moved all my business to AA/ One World where I am far happier with fairness on redemption.16:26
NCommanderI would like to go back to UA so I am monitoring the situation but stll feel UA is too stingy with seats to justify switching back.But if the Starnet blocking scenario is over they may have lifted the largest issue off the platform16:26
NCommanderI will be monitoring the situation .Thanks for the heads up all16:26
NCommanderargh16:26
NCommanderI really need to hack Xorg.conf and remove this stupid pasting behavior16:26
ogra??16:26
NCommanderpersia: a lot of boards can't be easily told apart, Beagle and BeagleXM both identify themselves as Beageboard in /proc/cpuinfo16:27
ograheh, yeah, you should16:27
persiaNCommander, Right, and I've come to believe that this is even more widely true in retail devices based on various platforms.16:27
ograNCommander, right, so we need to find a better solution on top of the cpuinfo16:27
ogracpuinfo is good but not enough16:27
persiaSo, because we can't tell them apart, we should provide a menu of recipes, and default best we can.16:28
persiaAnd leave the rest for documentation.16:28
NCommanderpersia: ugh, that's fugly, and adds a lot of complexity to user installs16:28
persiaFor most users, it should be pressing enter once for confirmation.16:28
NCommanderpersia: for most users, they won't know the difference16:29
persiaFor a few users, it may be more complicated, but the alternative is to force them to hack things together manually.16:29
GrueMasterMaybe using a separate conf file would be better.  That way, it can be more easily updated without package rebuilding.16:29
NCommanderIf we can't do it automatically, then I rather not do it16:29
ograi would prefer better automation before we resort to interaction16:29
ograbut its a good last resort16:29
persiaAnd we already have too many complaints about stuff that we know is broken because someone didn't perform a regular install.16:29
GrueMasterBy conf file, I mean a file with a list of supported platforms that can be easily updated.16:29
persiaI'm happy with something like debconf-priority-low: adjustable, but not shown by default.16:30
hrwlooks like you will end with database keeping lot of scripts which will check which exactly hardware it is run on16:32
hrwlike "if cpuinfo=beagleboard and amount-of-ram=256M then Cx elseif amount-of-ram=512M and lsusb |grep ID-OF-SMSC then beaglexm else ax/bx"16:33
persiaWhy?16:33
persiaI imagine having install-to-NAND, install-to-SD, etc.  Just a few recipes.  Then, some routine that picks a reasonable recipe.16:34
GrueMasterThe biggest problem is system identification.  cpuinfo just isn't always enough.16:34
ograit is enough as a base but not for details16:35
sveinselet me get this right: The problem is how to write the kernel image into NAND or MMC (FAT partition) or similar, right?16:36
persiaKinda.16:36
GrueMasterMore of how to detect which to use.16:36
persiaThere's a script (flash-kernel) that gets called when a new kernel is installed.  This script needs to do something to convert the unpacked kernel .deb into something that is being booted on the device.16:37
sveinseinteresting and challenging. I've made a manual post-kernel-install script to move it to the FAT partition (use mmc boot) which surely isn't an elegant solution16:39
* sveinse wish the HW bootloader in the SoC could read sector 0 from NAND or MMC and behave like a PC bootloader. Maybe.16:41
persiasveinse, Take a look at the flash-kernel package.  Both flash-kernel and debian/flash-kernel-installer-postinst are interesting.16:42
* sveinse is reinventing the wheel...16:44
persiaCan't have that :)16:45
ogramore wheels !!!16:47
rcn-ee_at_workhrw, amount-of-ram might not be the best, there's "white label" c4 boards with 512Mb. ;)16:47
hrw~/cr16:47
hrwrcn-ee_at_work: nice16:47
sveinseI'm a little curious about bug 705689. Does anyone knows if this will result in a patch & update for armel-cross 4.5 ?16:49
ubot2Launchpad bug 705689 in gcc-4.5 "QT applications crash with segfault error on armel when QT is built with gcc 4.5 on natty" [High,Confirmed] https://launchpad.net/bugs/70568916:49
loolsveinse: It's relatively close to what happens, problem is that every SoC needs a different first piece of code to run, to setup the DDR for instance16:49
rcn-ee_at_workhrw, you can get it from dmesg, since the gpio detect is printed out..16:49
rcn-ee_at_workhrw, dmesg | grep "Beagle Rev:"16:50
hrwrcn-ee_at_work: how you check dmesg on machine which works for 2 months and have /var/log/dmesg removed?16:50
sveinselool, the FAT load from MMC is a HW bootloader implementation in OMAP, iirc16:51
rcn-ee_at_workhrw, not easy..  userspace progam to read all 3 gpio pins?16:51
rcn-ee_at_workhrw, if you know your on a beagle... looks at "cat /proc/cpuinfo" the xM is "CPU variant: 0x3" the Bx/Cx should be "CPU variant: 0x1"16:53
loolsveinse: That's correct, but DDR isn't setup at this point; it's setup by this piece loaded from MMC ("MLO"); the ROM could technically set it up if it was padded in some special ways, but that's a different config block from SoC to SoC16:53
loolsveinse: So concretely, you have different constraints on the data / location from different SoCs16:53
loolYou could arrange for writing the first sectors on a lot of SoCs though16:53
GrueMasterlool: WOuld it make sense for MLO to setup an area in memory that could be read by userspace similar to dmidecode?16:54
rcn-ee_at_workhrw, yeap it is.. http://pastebin.com/5WP3TSiK (comparsion of c4/xM)16:55
persiaSomething like dmidecode would be nice.  I wish all architectures had it.16:57
ograthats easy16:57
ograjust add a BIOS to all arches :)16:58
sveinsewell, the dmi info is actually in concept the same as the machine id we talked about earlier16:58
loolGrueMaster: what kind of data do you intend to provide?16:58
loolI think UEFI has provisions to pass various data16:58
ogralool, device lists ?16:58
hrwrcn-ee_at_work: thx16:58
loolWell, concerning tables of devices, we're leaning towards device tree16:59
TheUni_rsalveti: around?16:59
ogralool, i think devicetree will solve that anyway16:59
GrueMasterBasic hardware info, similar to what dmidecode provides.  Like what busses are available, what the system is, etc.16:59
GrueMasterIf/when it appears.16:59
hrwogra: I have x86 which does not use efi and can be booted even without bios16:59
persialool, Will I be able to get stuff like Manufacturer, Product Name, etc. from devicetree?16:59
GrueMasterI have been hearing about devicetree since 2009.16:59
ograhrw, pfft, prototypes16:59
ograhrw, btw, my booking is finally confirmed i'll arrive on sunday evening17:00
hrwogra: no, on-the-shelf hardware17:00
hrwogra: with coreboot17:00
loolpersia: I'm not sure about these specific things; it's mainly to describe the hardware layout, but I'm pretty sure it would be easy to have the information17:00
ograhrw, how do you remove the BIOS from that ?17:01
sveinseIn all cases, having dmiinfo or devicetree, will imply that the MLO or bootloader must setup the information uniquely for each HW and revision.17:01
GrueMasterhrw: The difference there is all x86 cpu's fetch from the same location for booting.  Not so with arm.17:01
loolsveinse: Correct, or the firmware17:01
hrwogra: coreboot ;D17:01
loolGrueMaster: ah but you define booting as after the BIOS17:02
persialool, OK.  That's the information I wanted from dmidecode, but I don't really care where I get it.17:02
hrwogra: coreboot can load filo or grub as payload without any bios legacy stuff17:02
ograhrw, i know coreboot, i worked with it in the past17:02
GrueMasterlool: No I don't.  I define booting as after the cpu is initialized ant goes external to fetch code.17:02
ograhrw, still there is a BIOS coming up on the boards i used it17:02
ograunless you remove the eprom probably17:03
sveinseyes, so in that respect, this bootloader or firmware which prepares the machine for kernel boot, is a BIOS per definition. It could provide the information needed for flash-kernel17:03
persiaOr flash coreboot into the eeprom17:03
persiasveinse, The complicated thing is that the ARM community doesn't tend to favour two-stage bootloaders, but wants an all-in-one solution, including both full init *AND* kernel load.17:04
persiaSome devices support OpenFirmware, and some second-stage bootloaders were ported in the past, but nothing recent has separated stages.17:04
sveinsepersia, I have yet too see a SoC device booting directly into linux kernel. All I've encountered so far have two stage boots17:05
sveinseAs lool said, the DDR needs to be setup and the kernel command line, and so on by the bootloader17:06
hrwsveinse: iirc on omap3 you can add header to kernel image which will setup ddr etc (which xloader does normally) and boot17:07
hrwsveinse: kernel cmdline needs to be hardcoded in kernel17:07
ograonly on 3530, not ?17:07
sveinseit is? hmm. I need to check my sources...17:07
persiasveinse, I heard of some demos about it, but you mean "two-stage" to be bootloader/kernel.  When I talk about "two-stage" bootloaders, I'm talking about the sort of thing we see for x86, powerpc, sparc, etc. where one uses one codebase to init, launches to another codebase for kernel selection, and then loads the kernel.17:08
sveinseah, then I agree17:08
hrwbios -> grub -> kernel or chiprom -> xloader -> uboot -> kernel...17:09
persiaSo, EFI/grub or OF/yaboot, etc.  (although I think we'll switch to OF/grub for natty powerpc, but I may be mistaken)17:09
GrueMasterpersia: On x86 images, we currently have 3 stages:  bios, bootloader (lilo, grub, etc), kernel.17:09
GrueMasterIt is possible for x86 to have one:  Linux-bios.17:09
hrwanyway it is time for me17:09
sveinseIn fact when doing OMAP MMC boot its 3 stages as well:  MLO -> Uboot -> Kernel17:09
hrwsveinse: mlo is read by inchip code17:10
GrueMasterOn SOC's, most fetch from an internal rom on the SOC, then fetch from there.17:10
sveinsehrw, do you know anything about the 4.5 gcc bug in respect of Qt?17:10
persiasveinse, Indeed.  OMAP is the closest we have to sanity, but it's still not quite there: lots of messiness in MLO, and Uboot could be doing a lot more than it does in that context.17:10
hrwsveinse: no17:10
* hrw -> out17:10
hrwhave a nice rest of day people17:10
GrueMasterActually omap/omap4 is 4 stage by that logic:  SoC ROM, MLO, u-boot, kernel.17:11
persiaThe SoC ROM is stage-0, by my nomenclature.17:12
persiax86 BIOS would be stage-117:12
GrueMasterOk, in binary you are correct.17:12
persiasilo would be stage-217:12
GrueMaster:p17:12
sveinseWe are (for boottime reasons) considering to skip the MLO -> uboot part of the boot. I.e. let the MLO image load the kernel itself with a small init function for setting up the magic things like DDR & co17:12
GrueMasterX86 always fetches from CS:IP F000:FFF017:12
GrueMasterOr the end of 1M.17:13
sveinseuboot is not efficient if you are waiting for it :D17:13
sveinseGrueMaster: If ARM always fetched from the same addr, would that help us in any way?17:16
GrueMasterMight.17:16
GrueMasterI don't know much about arm architecture, but I believe it may already.  Just most SoC vendors put rom code there on die.17:17
GrueMasterWhich can't be changed.17:17
sveinseBecause the BIOS or whatever you name it, will always contain the board specific initialization which is the same that we do in our bootloaders17:18
GrueMasterWith x86, it is the flash-rom chip on most systems.17:18
sveinseSo the question is more to agree upon some dmi-like struct that needs to be setup prior to kerel boot17:18
GrueMasterhttp://en.wikipedia.org/wiki/Booting has some interesting details on this.17:18
GrueMastersveinse: right.  That would need to be done by MLO/u-boot.17:19
sveinseyes,17:19
GrueMasterOr the kernel if it is used directly (which may happen in the future).17:19
sveinseIn concept, arm has one (1) dmi-like information: MachineID. Period17:19
GrueMasterAs I said, I am new to the architecture, but on x86, the bios loads and probes the platform for "extra" devices that aren't hardcoded into the bios already.17:21
GrueMasterThings like pci devices, drives, memory boards, etc.17:21
sveinseOut of interest: How is that done? (I dont mean PCI and USB devices, because they have well defined ID's attached to them)17:22
GrueMasterEach vendor uses core bios code from one of the bios vendors (ami, phoenix, etc) and adds board specific information to it.17:23
GrueMasterSo in the case of arm, MLO would be board specific.  u-boot & kernel not so much as they should get the info they need from MLO.17:24
sveinseand how is this any different from arm's machineid ?17:24
GrueMasterI'd have to look, but the machine ID is very limited in what it contains.17:25
GrueMasterDoes it change between Beagle C4 and other devices using the same CPU?17:25
sveinseYes, that I agree. You'd need some database to provide the extra information, like how to update the kernel17:26
persiasveinse, In the x86 world, one encodes the map of devices and layout in code, following one of three known formats (mostly concurrrently two with modern devices).17:26
sveinseAnd it does not support extra information, like revision number. I would love to see that feature added. And call it dmi info17:26
persiaPersonally, I prefer the OF model, where one has board-specific code that loads, which loads a datafile from a known location, and uses that to determine what to do (and can pass the data to the kernel).  The ARM devicetree stuff mirrors that, except it doesn't mandate OF (unfortunately)17:27
sveinseOF? Do you have any references to that?17:28
persiaOpenFirmware17:28
persiaYou can look at the openhackware package for an example implementation: that one targets qemu's powerpc.17:28
GrueMasterI just checked /proc/cpuinfo on my Motorola Droid and it is almost identical to Beagle C4.  The only difference is the Hardware and Revision lines.17:29
persiaThat's expected: Hardware and Revision are the lines that are checked for all device-specific stuff.17:30
GrueMasterOh, and bogomips.  (for some reason my droid is running at 249 - odd).17:30
sveinseI think we're talking about the same. A datafile at some specific location could provide a dmi-info like structure with a devicetree or similar. I would shurely like to have such a featureset added17:31
persiaI don't know the complete set, but there was once a port of OF for Marvell's MMP (PXA688-based) as prior work on ARM.17:31
persiaNote that as much as I like the model, I can't recommend OF for use on ARM: I simply have never used OF on ARM, nor have I heard stories about anyone working on a port to new hardware.17:31
persiaGrueMaster, bogomips are intentionally bogus: ignore those.17:32
GrueMasterpersia: Checking Hardware and Revision isn't enough.  In the example of Beagle C4 & BeagleXM, they are the same.17:32
GrueMasterok17:32
rcn-ee_at_workGrueMaster, the droid has pm scaling working, hence the low bogomips..17:32
sveinsethe revision in /proc/cpuinfo only gives the SoC revision not the board's, iirc17:32
rcn-ee_at_worksveinse, it's a single case, on the "beagle" you can use /proc/cpuinfo to determine weither it's a Bx/Cx series or xM...17:33
persiaGrueMaster, Right, which is why I 1) want to separate flash-kernel recipe from machine type (cpuinfo:Hardware), and 2) was asking about Manufacturer and Product strings from devicetree17:34
rcn-ee_at_workGrueMaster, you need to check the "varient' and "revision" to differentiate the beagle's... http://pastebin.com/5WP3TSiK17:37
GrueMasterYes, I know.17:38
GrueMasterrcn-ee_at_work: That is for the cpu only, right?  The Hardare lines are board specific?17:39
rcn-ee_at_workyeap, cpu only... the hardware line comes from the board-omap3beagle.c file..17:39
sveinsegpio pin probed, right?17:40
rcn-ee_at_workno, the cat /proc/cpuinfo is pure processor..  the gpio pin probed is just dumped to dmesg on bootup..17:41
prpplagueanyone know if andy green is on irc?17:41
GrueMasterrcn-ee_at_work: So there is no way for software to detect hardware differences then?17:44
rcn-ee_at_workGrueMaster, well we can detect an xM board vs a bx/cx board.. but to seperate a C1/2/3 vs a C4 we need to read the gpio pins..17:46
rcn-ee_at_work(like what is already done in the board-omap3beagle.c ..)17:47
rcn-ee_at_worki don't know if it would be excepted, but could we modify the "hardware" line in /proc/cpuinfo based on gpio pin setup we have?17:49
loolprpplague: He is agreen on IRC an hangs on #linaro from time to time, but not all the time17:51
loolprpplague: He is on ATM17:51
prpplaguelool: thanks found him17:51
GrueMasterrcn-ee_at_work: My ideal goal would be to have an arch specific kernel (armv7) that could detect what it was on and move forward without having to be specificly compiled for beagle?Panda/Blaze/Dove/imx51/etc.17:53
GrueMasterHaving MLO with the proper info could allow that.17:53
persiaGrueMaster, linaro is working on such a beast.17:53
GrueMasterCool.17:54
rcn-ee_at_workGrueMaster, actually right now you can boot the same kernel on all the mailine omap3/4 boards...  so either mlo/u-boot would have to hint on omap vs imx51..17:55
GrueMasterThe next step would be to have some way for userspace to get more info on the platform, similar to dmidecode.17:58
persiadevicetree17:58
persiaAnd I think linux-linaro-omap already has the necessary bits to boot on all omap3/4 devices.17:59
GrueMasterok, then all that needs to happen is for it to fall in my lap for rigorous testing.  :P17:59
persiaWell, you can grab linux-linaro-omap today, and see if that works.18:00
persiaThe devicetree stuff seems to still be future.18:00
persia(but getting *very* close)18:00
rcn-ee_at_worksince both the imx51 and omap are pretty well supported in mainline, if you can get both to atleast build in one uImage.. it might work..18:01
GrueMasterIf I get bored, I might see if I can fire up my babbage with a more recent kernel/image.  if...18:02
GrueMaster:P18:02
rcn-ee_at_workfor kicks.. what's the best supported imx51 target in mainline right now?18:04
GrueMasterI think it is the Efika Netbook.  Apparently linaro got a bunch.  I missed out.  :(18:05
* GrueMaster never gets cool hardware, only semi-functional development systems18:06
persiaThey are available retail.18:09
* persia has purchased any number of retail ARM devices now18:09
persiaNot even that expensive, as laptops go, although you should probably only get one if you plan to actually use it for something other than idle speculation.18:09
persiarcn-ee, mainline, best supported is still the Babbage for imx51.18:10
sveinseWhat is the relationship between the ubuntu native (and armel-cross) compiler and the one provided by linaro?18:53
ograthey are the same18:53
ogralinaro maintains the arm toolchain in ubuntu18:53
sveinseah, ok. thanks18:54
sveinseI see both 4.4 and 4.5 is available from armel-cross. Which to use. I.e. why would I consider using 4.4 over the 4.5?18:56
loolsveinse: Ubuntu gcc-4.x includes the Linaro patchset + Ubuntu patches; cross compilers are built from the exact same sources, but less frequently18:57
sveinseWe're having some issues with compiling Qt (QWS not X11), and it seems surprisingly similar to bug 705689. So my question is what do I lose by downgrading the (cross)compiler to 4.418:59
ubot2Launchpad bug 705689 in gcc-4.5 "QT applications crash with segfault error on armel when QT is built with gcc 4.5 on natty" [High,Confirmed] https://launchpad.net/bugs/70568918:59
loolsveinse: sometimes we have multiple versions because the new one is not stable enough, or because we still need the old one for some time18:59
loolsveinse: well we're not developping 4.4 any further in Linaro18:59
loolsveinse: and it will eventually go away18:59
martynIs there a wiki page describing how the OMAP4 server image is meant to be installed?18:59
sveinseah, that's an answer, thanks18:59
martynHey there lool19:00
persiaGrueMaster, I discovered why the kernel recommends "grub" when the kernel fails to install: it's a string in debian.master/rules.d/armel.mk : turns out it doesn't mean anything.  Dunno if it's worth fixing.19:01
loolhey martyn19:01
persiamartyn, So, there's two answers to that.  1) there's work on a minimal jasper-based image, which you don't really "install", as such.  2) someone could work on debian-installer and add more omap4 support for some into-real-target install.19:03
persiaErr, rather, *if* there existed a wiki page about it, it would have two answers ...19:03
* persia believes such a page doesn't currently exist19:03
martyni.e. "don't bother, not even ready for alpha"19:03
martyn"use rootstock"19:03
persiaUm, no.19:03
persiaThe main issue is that nobody is working on it.  If you want to do it, it's not that hard to get working.19:04
martynI know, but right this second, I'm teaching someone how to get a system image up .. more about expediency19:04
persiaThe big obstacle is that most folk with OMAP4 have pandas, and pandas don't have flash: they just boot off the SD card.  As a result, there's no useful answer to how one should "flash" a kernel and boot configuration.19:05
persiaIf you just want a system image, just write an SD card, boot it, and maybe trim the installed packages.  That's the expedient way.19:05
persiaPost-boot, migrate /var and /srv to some real storage device, and reboot.19:06
martynHeh.. I'm trying for Versatile Express19:06
martynso the image has nothing bootable for me19:06
GrueMasterinteresting.19:06
persiamartyn, If you want to use non-archive kernels, rootstock is your best option.  When are you uploading a kernel to the archive?19:06
martynnot just a versatile express either .. but one that's been chopped up and reformed into a Calxeda system19:06
martynpersia: Not for a while yet .. probably not till .3919:07
persiaSo, natty+1?19:07
martynbetter answer would be 'once we have silicon in house'19:07
persiaheh.19:07
martynbecause before then, it's all based on simulation, fpga, hard engineering, and good intentions19:07
persiaI've heard some murmurs about folk doing armel servers, so there's a chance that it's just a matter of uploading the kernel and making a few patches.  If nobody does one, you may have to tweak a few more things.19:08
=== ian_brasil__ is now known as ian_brasil
=== TheUni_ is now known as TheUni
persiaapachelogger, thumb2 support is presumed for every Ubuntu armel device21:53
apacheloggerpersia: ok21:58
apacheloggerNCommander: I get segfaults for every kde app all within Qt, ScottK suggests that you said it is a gcc bug?21:58
apacheloggeron the n900 that is21:58
NCommanderapachelogger: no, thats NEON built into Qt by accident. Will be fixed when 4.7.2 is uploaded21:59
apacheloggerNCommander: the n900 cpu supports neon though?22:00
NCommanderapachelogger: oh ... hrm ... it does, doesn't it22:00
apacheloggerit did with maverick ^^22:00
* apachelogger installs libqt4-dbg22:01
GrueMasterapachelogger: it may be related to the recent precompiled header bug we found.22:01
ScottKThat's the one I was referring to I think.22:01
robclarkhey ogra (or anyone).. what secret magic is done to make the boot partition on an sd card not automatically mount under /media?  And is it possible to reverse this?22:02
persiarobclark, I believe it's just a hidden partition.22:04
persiaWhy do you want it mounted?22:04
robclarkhow does one make a partition hidden/unhidden?22:04
ograrobclark, /sbin/mkdosfs -n "SERVICEV001" -F 32 ${ROOTDEV}122:04
persiafdisk :)22:04
ograjust rename ti22:04
ogra*it22:04
robclarkok, so just based on the partition name22:04
ograyep22:04
robclarkit is more convenient to copy over new kernels when I'm mucking with stuff it it mounts itself ;-)22:05
ogranote that you will have it permanently on your desktop once renamed22:05
robclarkno prob22:05
robclarkthat is what I want22:05
ograk22:05
robclarkthx :-)22:05
persiaogra, It's not a hidden partition?  Why not?22:05
ograpersia, the naming hides it22:05
ograudev ignores it completely that way22:05
ograwe dont want to hide it from mount but prevent automounting22:06
persiaIt seems to me that you're using a hack that accidentally works rather than using the partition table as it was designed.22:06
apacheloggerGrueMaster: what bug is that?22:08
GrueMasterpersia: Actually, this is a predefined use case in udev.  It is mainly to hide pre-installed partitions.22:08
persiaGrueMaster, Doesn't make me like it any more, but yeah, it's because of a common naming scheme for certain OEM restore partitions.22:09
GrueMasterapachelogger: Bug 70568922:10
ubot2Launchpad bug 705689 in gcc-4.5 "QT applications crash with segfault error on armel when QT is built with gcc 4.5 on natty" [High,Confirmed] https://launchpad.net/bugs/70568922:10
apacheloggerGrueMaster: 4:4.7.1-0ubuntu9 ought to be built agianst 4.4 though22:10
apacheloggeroh22:10
apacheloggernevermind me, apparently I have ubuntu7 :O22:11
GrueMasterheh22:11
GrueMasterYou had me doing a double-take.  Had to check my panda.22:12
ogralool, does: check_subarch "imx51" look ok for the efika stuff ?22:46
loologra: Dunno23:45
loologra: I don't know Ubuntu's flash-kernel23:46
apacheloggerGrueMaster: ubuntu9 does not seem to fix the issue though :S23:47
persiaapachelogger, Everything linked against qt4-x11 is still segfaulting apparently randomly?23:52
apacheloggerI wouldn't say random... it *always* segfaults23:52
apacheloggergdb says it is in kdeui though ... getting rid of that and trying again now23:52
ogralool, well, you complained at the bug23:54
apacheloggerrighto23:56
apacheloggerpersia: something is fishy with current qt combined with kdelibs23:56
persiaFrom what I could tell from the bug before, it seemed that the segfault happened just about anywhere it could, because of being caused by an inline macro definition.  What I'm wondering is if everything linked against qt4-x11 that built during the time it was built with gcc-4.5 needs to be rebuilt.23:56
apacheloggerpersia: a rebuild could indeed fix this, as some kdelibs stuff is sort of used as plugin for Qt (e.g. fileopen dialogs)23:57
apacheloggerwithout kdelibs unity-2d starts without segfault23:57
loologra: well I complained because I saw a commented out line, and suggested either fixing it to be consistent (no idea which value it should have though), or removing it entirely23:58
lool+                #check_subarch $running_subarch23:58
persiaWas unity-2d rebuilt against ubuntu9?23:58
apacheloggeryep23:59
loologra: does that make sense now?23:59
apacheloggerpersia: ubuntu9 was uploaded feb 7, unity-2d feb 1523:59
loologra: I just looked at the diff, I don't know how running_subarch should be handled23:59
persiaWell, that's annoying.  On the bright side, most of the base of KDE FTBFS anyway currently, so it needs to be rebuilt.23:59
apacheloggerhmm23:59

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!