[00:35:09] *** Quits: liar (~liar@clnet-p09-185.ikbnet.co.at) (Ping timeout: 260 seconds) [01:41:18] *** Quits: n1s (~n1s@rockbox/developer/n1s) (Quit: Ex-Chat) [02:00:18] *** Joins: clustur (~logger@c-98-249-104-118.hsd1.tn.comcast.net) [02:00:19] *** Quits: clustur (~logger@c-98-249-104-118.hsd1.tn.comcast.net) (Read error: Connection reset by peer) [03:38:19] *** Quits: alberthrocks (~alberthro@unaffiliated/alberthrocks) (Ping timeout: 246 seconds) [03:50:31] *** Joins: alberthrocks (~alberthro@pool-108-22-225-119.bltmmd.east.verizon.net) [03:50:32] *** Quits: alberthrocks (~alberthro@pool-108-22-225-119.bltmmd.east.verizon.net) (Changing host) [03:50:32] *** Joins: alberthrocks (~alberthro@unaffiliated/alberthrocks) [04:05:36] *** Joins: ShapeShifter499 (Lance@95.211.165.246) [04:05:36] *** Quits: ShapeShifter499 (Lance@95.211.165.246) (Excess Flood) [04:42:22] *** Joins: ShapeShifter499 (Lance@95.211.165.246) [04:46:55] *** Quits: [Saint] (~Saint]@unaffiliated/saint/x-8516940) (Ping timeout: 246 seconds) [04:59:44] *** Joins: [Saint] (~Saint]@unaffiliated/saint/x-8516940) [05:05:03] *** Joins: user485763 (~aoeu@112.166.15.141) [05:11:50] *** Quits: TheSeven (~quassel@rockbox/developer/TheSeven) (Disconnected by services) [05:11:56] *** Joins: [7] (~quassel@rockbox/developer/TheSeven) [07:35:42] *** Joins: Keripo (~Keripo@c-24-17-219-152.hsd1.wa.comcast.net) [07:40:24] *** Quits: Keripo (~Keripo@c-24-17-219-152.hsd1.wa.comcast.net) (Ping timeout: 260 seconds) [07:46:17] *** Joins: Keripo (~Keripo@c-24-17-219-152.hsd1.wa.comcast.net) [08:00:17] *** Joins: clustur (~logger@c-98-249-104-118.hsd1.tn.comcast.net) [08:00:17] *** Quits: clustur (~logger@c-98-249-104-118.hsd1.tn.comcast.net) (Read error: Connection reset by peer) [08:20:08] *** Quits: ShapeShifter499 (Lance@95.211.165.246) (Excess Flood) [08:22:06] *** Quits: Keripo (~Keripo@c-24-17-219-152.hsd1.wa.comcast.net) (Ping timeout: 245 seconds) [08:26:55] *** Joins: [Saint_] (~Saint]@unaffiliated/saint/x-8516940) [08:32:46] *** Joins: ShapeShifter499 (Lance@95.211.165.246) [08:33:12] *** Quits: ShapeShifter499 (Lance@95.211.165.246) (Excess Flood) [09:11:22] *** Quits: [Saint_] (~Saint]@unaffiliated/saint/x-8516940) (Remote host closed the connection) [09:48:20] *** Quits: alberthrocks (~alberthro@unaffiliated/alberthrocks) (Ping timeout: 248 seconds) [09:50:22] *** Joins: ShapeShifter499 (Lance@95.211.165.246) [10:02:19] *** Joins: alberthrocks (~alberthro@pool-108-22-225-119.bltmmd.east.verizon.net) [10:02:20] *** Quits: alberthrocks (~alberthro@pool-108-22-225-119.bltmmd.east.verizon.net) (Changing host) [10:02:20] *** Joins: alberthrocks (~alberthro@unaffiliated/alberthrocks) [10:08:10] *** Quits: ShapeShifter499 (Lance@95.211.165.246) (Excess Flood) [10:17:22] *** Joins: ShapeShifter499 (Lance@95.211.165.246) [10:17:22] *** Quits: ShapeShifter499 (Lance@95.211.165.246) (Excess Flood) [10:31:28] *** Joins: n1s (~n1s@nl118-168-30.student.uu.se) [10:31:28] *** Quits: n1s (~n1s@nl118-168-30.student.uu.se) (Changing host) [10:31:28] *** Joins: n1s (~n1s@rockbox/developer/n1s) [11:57:52] *** Joins: ShapeShifter499 (Lance@95.211.165.246) [11:57:52] *** Quits: ShapeShifter499 (Lance@95.211.165.246) (Excess Flood) [12:43:52] *** Joins: ShapeShifter499 (Lance@95.211.165.246) [12:47:43] *** Joins: [Saint_] (~Saint]@unaffiliated/saint/x-8516940) [13:33:03] *** Quits: user485763 (~aoeu@112.166.15.141) (Quit: Leaving.) [13:34:08] *** Joins: user485763 (~aoeu@112.166.15.141) [13:35:28] *** Quits: user485763 (~aoeu@112.166.15.141) (Read error: Connection reset by peer) [13:35:35] *** Joins: user485763 (~aoeu@112.166.15.141) [14:00:18] *** Joins: clustur (~logger@c-98-249-104-118.hsd1.tn.comcast.net) [14:00:18] *** Quits: clustur (~logger@c-98-249-104-118.hsd1.tn.comcast.net) (Remote host closed the connection) [15:13:52] *** Joins: liar (~liar@clnet-p09-185.ikbnet.co.at) [15:43:44] *** Quits: user485763 (~aoeu@112.166.15.141) (Read error: No route to host) [15:44:37] *** Joins: user485763 (~aoeu@112.166.15.141) [16:18:33] *** Joins: nieuwbie (~user@ip5452ef7d.adsl-surfen.hetnet.nl) [16:19:09] Hello, how to execute assembly code on iPod? Through emcore.py? [16:19:24] <[7]> first of all, which ipod generation? [16:19:40] <[7]> second, why assembly code? [16:19:41] 6th. [16:19:45] <[7]> third, what is it supposed to do? [16:19:55] I just want to understand the internals very well. [16:20:07] just execute. [16:20:15] <[7]> I'd strongly recommend starting with C as an emcore app and then dig your way downwards from there [16:20:48] I'll do that, but first want to see, if I can do something in assembly. [16:20:55] <[7]> sure you can [16:21:11] <[7]> but you'll have no means of output/feedback from the device if you run on the bare metal [16:21:22] <[7]> which makes debugging things really really hard [16:21:48] <[7]> so I'd first develop some means of output (LCD, USB, whatever) with the help of emcore, and once this works, switch over to assembly [16:21:55] <[7]> it's still hard enough :) [16:22:33] <[7]> easiest way to launch bare metal code is emcore's runfirmware command [16:22:59] *** Quits: nieuwbie (~user@ip5452ef7d.adsl-surfen.hetnet.nl) (Read error: Connection reset by peer) [16:23:56] *** Joins: nieuwbie (~user@ip5452ef7d.adsl-surfen.hetnet.nl) [16:24:28] Why I won't get any output/feedback from the device? [16:24:55] <[7]> how would you get it? [16:25:34] hmm, I though if I will write "hello world" in assembly [16:25:42] I'll get an output? [16:25:47] <[7]> write that to where? [16:26:11] i see that I don't understand the problem here. [16:26:21] Would you be so kind and enlighten me? [16:26:25] <[7]> well, where do you want to write that "hello world" text? [16:26:27] <[7]> on the display? [16:26:31] Yes. [16:26:34] <[7]> in that case you first need an LCD driver and a text renderer [16:26:42] <[7]> which is a couple thousand lines of assembly code [16:26:55] <[7]> and if there is a single bug anywhere in that stuff, it will probably just do nothing [16:26:58] <[7]> have fun debugging that :P [16:26:58] I see. [16:27:17] I just want to play around with assembly [16:27:22] <[7]> that's why I advise against starting with the bare metal hardware, and utilizing the help of an operating system, e.g. emcore [16:27:27] Not that I want to write all in it. [16:27:47] Well the thing is that I wanted to have linux on my ipod. [16:27:56] But since 2009 the ipodlinux is dead. [16:28:06] <[7]> you can of course do inline assembly from within emcore apps, or just compile assembly code as an emcore app [16:28:21] <[7]> which means you can access emcore's api using certain system calls [16:28:47] I tryied to understand emcore internals [16:29:42] but it's very confusing for me so I though maybe I'll learn something about assembly and try to port linux-2.4.31 to ipod 6g [16:29:56] <[7]> why deal with 2.4.x? [16:30:12] <[7]> any particular reason to not use the most recent vanilla kernel? [16:30:16] 3.x will be better choice? [16:30:21] <[7]> I'm not sure [16:30:27] I'm newbie. [16:30:34] Was just a guess. [16:30:39] <[7]> but 3.x series has builtin support for no-mmu devices [16:30:47] I see. [16:30:52] <[7]> but that mostly affects the nano2g [16:31:08] But is 6th do not possess MMU? [16:31:25] <[7]> the classic does have an MMU, but I though you maybe wanted to keep it compatible with the nano2g as well [16:31:34] <[7]> thought* [16:31:48] hmm [16:31:56] Ok. from the begining. [16:32:03] <[7]> sure, the newer kernels are a bit bigger, and you don't have all that much RAM [16:32:08] <[7]> so an old kernel *might* be better [16:32:19] I possess 6th g ipod [16:32:26] and I would like to use it as PDA. [16:32:41] Plug the keyboard via firewire. [16:32:56] That's my first and foremost goal. [16:33:01] <[7]> I don't think the classics have firewire at all [16:33:12] <[7]> you'll probably have to resort to USB for that [16:33:18] sorry, dock connector-usb [16:34:16] I even bought a coupler for it. [16:34:38] USB A female to USB A female. [16:34:58] <[7]> you'll probably have to inject power at that adapter [16:36:18] <[7]> first thing you should probably do is getting the emcore build environment set up [16:36:31] <[7]> so you can compile the emcore kernel and apps for it [16:36:42] <[7]> then play around with apps a bit so you get a feel for emcore's API [16:37:01] <[7]> then try to get some basic inline assembly code inside an emcore app to work [16:37:16] <[7]> next step: issue syscalls directly from assembly [16:37:38] <[7]> get used to ARM assembly in general, then try directly talking to some pieces of hardware [16:37:43] <[7]> such as the piezo buzzer or something [16:38:00] <[7]> (which you can probably do from C as well, no real need for assembly here) [16:43:52] ok, is that really the simpliest way to make the standard kbd work on ipod? [16:44:12] via emcore? [16:50:47] <[7]> emcore is the only way to avoid having to implement everything from scratch [16:51:13] <[7]> and tbh I'd think that the easiest way to make a usb keyboard work will require porting liux first [16:51:16] <[7]> linux* [16:51:50] <[7]> alternatively try to implement true USB OTG in emcore, which will probably be a PITA [16:52:14] Tried that, didn't get so far. [16:52:14] <[7]> right now emcore only has USB device support, no host support yet [16:52:29] * [Saint_] damn near chokes [16:52:45] <[Saint_]> Reimplement Linux, blind, in ASM?!? [16:52:54] <[Saint_]> ...someone is very keen. [16:53:09] <[7]> porting linux the regular way is keen enough [16:53:16] <[Saint_]> Amen. [16:53:16] hehe, that was just a blind shot. [16:53:48] <[7]> you do realize this is going to take you several months, if not years, to finish that project, if you'll ever finish it at all? [16:54:14] Well, the thing is [16:54:50] that I'm interesting in it for several years, and haven't acomplished anything. [16:54:58] <[7]> if you do this for your own education it's fine (even though you could probably get away much better with a real development board) [16:55:21] Well, yes. it's for my education. [16:55:32] I'm really interested in OS programming. [16:55:46] <[Saint_]> Then get a proper dev board. [16:55:57] Like? [16:56:14] <[7]> anything from arduino to a panda, whatever you like [16:56:31] <[Saint_]> Beagle-board, Pandaboard, etc. [16:56:45] <[7]> if you want a rather powerful and cheap board, go for the STM32F4DISCOVERY [16:57:11] <[7]> (nowhere as powerful as a beagle, but also much less complex, and much more powerful than this avr-based crap) [16:57:20] The thing is, I'm broke [16:57:32] <[7]> well that board is like $15 [16:57:34] So anything I can use right now is my workstation and iPod. [16:57:58] [7]: Trust me, I'm do aware of that. [16:58:09] *I'm aware of that. [16:58:35] <[Saint_]> Yeah, its just that an iPod is about the least suited target for this next to, say, a washing machine :) [16:58:49] <[Saint_]> ...or a toaster. [16:58:56] haha [16:59:09] * [7] admits that the ipod (nano2g) was the first ARM device he worked on [16:59:21] <[7]> even before I had ever seen an arduino :P [16:59:21] You could sell the ipod and buy a proper devboard with what you get for it :) [16:59:23] I think toaster is much better understood than iPod classic. [16:59:46] <[Saint_]> gevaerts: heh :) [17:00:29] <[7]> if you like wrestling with undocumented hardware though, go for the ipod [17:00:31] but what's actually the problem with iPods? [17:00:35] firmware? [17:00:57] [7]: I think I have no other choice. [17:01:03] <[7]> nieuwbie: hardware isn't documented at all, everything needs to be reverse engineered, no easy means of output (like a LED) [17:01:23] <[7]> and no debugger interface [17:01:42] Sounds like fun. :D [17:02:17] <[7]> and the only way to boot code on it in the first place is through a buffer overflow exploit [17:02:47] which's a PITA? [17:02:56] <[7]> well that one is well understood at least [17:03:27] What about writing another firmware and replace it? [17:03:54] <[7]> but even after I was aware of the underlying bug and had a proof of concept exploit it still took me weeks of reverse engineering apple code to figure out what was really going on and to craft the exploit that we use today [17:04:14] <[7]> nieuwbie: isn't that what we're doing? [17:04:51] [7]: I guess so, but why to base emcore on rockbox? [17:06:35] <[7]> nieuwbie: it isn't based on rockbox [17:06:48] <[7]> except for some code that we cherry picked, like their FAT driver [17:07:06] <[7]> (there really way no point in reimplementing that) [17:07:08] <[7]> was* [17:07:49] Sure there was. We need a more robust FAT driver in rockbox, so if you had reinmplemented it we could reuse the emcore one in rockbox :) [17:08:09] <[7]> i doubt my one would have been more robust :P [17:08:28] <[7]> the bugs that I found during the process are fixed and backported to rockbox by now [17:08:48] <[7]> and I also switched it to dynamic memory allocation [17:08:57] <[7]> (using emcore's kernel tlsf allocator) [17:09:49] <[7]> oh, speaking of tlsf, did I ever tell the rockbox people that I have written an offline TLSF heap analyzer at some point? [17:10:01] you see, the thing is that I have no idea what the hell are you saying. ^^ [17:10:32] <[7]> http://websvn.freemyipod.org/filedetails.php?repname=freemyipod&path=%2Femcore%2Ftrunk%2Ftools%2Ftlsfanalyze.py [17:11:00] I don't think I ever saw that [17:12:29] Timing library format? [17:12:29] <[7]> that tool was already quite useful [17:12:41] <[7]> it already nailed down a rather nasty race condition in TLSF [17:12:46] nieuwbie: memory allocator [17:13:22] gevaerts: thanks [17:15:11] <[7]> it's a bit emcore specific (expects a 32bit "owner" field at the end of each allocation), but could probably still be helpful one day if there's a TLSF issue in rockbox [17:15:24] * gevaerts nods [17:31:39] anyway if I try to upload new firmware I get the PANIC error. [17:32:01] <[7]> what exactly did you do? [17:32:45] emcore.py runfirmware 08000000 emcore.bin [17:33:21] <[7]> where did you get that emcore.bin from? is it the correct version for that device? [17:33:28] <[7]> what's the exact panic message? [17:34:06] yes, downloaded it from builds.freemyipod.org [17:34:11] r868 [17:34:18] *PANIC* [17:34:27] Data abort at 22001610 [17:34:46] FSR:00000005 (domain 0, fault 50 [17:35:00] <[7]> hm, interesting [17:35:00] Address: 007A1200 [17:35:11] It's not the first time. [17:35:34] I tried it at least three times with other builds. [17:35:59] I started when I upgraded it to r859. [17:36:40] <[7]> oh, spotted it :) [17:36:50] <[7]> that's supposed to be 0x08000000, not 08000000 [17:37:01] typo? :) [17:37:10] <[7]> yes, on your command line [17:37:37] <[7]> unlike ibugger.py, emcore.py does *not* assume hex for these values automatically [17:37:56] haha, your right. [17:37:59] It works. [17:42:39] ok, need to get some sleep, but will be back/ ^^ [17:42:43] *** Quits: nieuwbie (~user@ip5452ef7d.adsl-surfen.hetnet.nl) (Quit: ERC Version 5.3 (IRC client for Emacs)) [17:43:01] <[7]> who said emacs was an editor? [17:43:05] <[7]> i think it just prove otherwise... [17:46:13] <[Saint_]> [7]: its not an editor, its a universal binary with an editor plugin :) [17:46:50] <[Saint_]> Irc for emacs made me shudder a bit, though, I'll admit ;) [17:49:54] Emacs is a decent OS. Pity it doesn't come with a good editor :) [17:51:19] <[Saint_]> Does that make Linux a bootloader? :-) [17:51:43] It might! [17:52:39] <[7]> I think it would make linux a hypervisor :) [17:52:54] Good point [17:53:00] <[Saint_]> Ah, yes :) [17:53:23] <[7]> so emacs on linux on kvm on vbox would be 3 cascaded hypervisors :) [17:53:56] <[Saint_]> ...but still faster than Windows. [18:04:46] <[7]> imagine emacs on windows on vmware! [18:20:03] *** Quits: user485763 (~aoeu@112.166.15.141) (Ping timeout: 252 seconds) [20:00:19] *** Joins: clustur (~logger@c-98-249-104-118.hsd1.tn.comcast.net) [20:00:19] *** Quits: clustur (~logger@c-98-249-104-118.hsd1.tn.comcast.net) (Read error: Connection reset by peer) [21:13:55] *** Quits: [Saint_] (~Saint]@unaffiliated/saint/x-8516940) (Ping timeout: 246 seconds) [21:38:00] *** Quits: liar (~liar@clnet-p09-185.ikbnet.co.at) (Quit: huiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii) [22:47:44] *** Joins: benedikt93 (~benedikt9@unaffiliated/benedikt93) [23:16:55] *** Joins: [Saint_] (~Saint]@unaffiliated/saint/x-8516940) [23:43:54] *** Quits: ShapeShifter499 (Lance@95.211.165.246) (Excess Flood)