Log in

Going Deeper Underground
[Most Recent Entries] [Calendar View] [Friends]

Below are the 20 most recent journal entries recorded in Lucas C. Villa Real's LiveJournal:

Tuesday, March 2nd, 2010
1:02 am
Dude! It's been a while since I last shown signals that I'm alive!
Obviously so many things have happened in my life since my last post that there's just no way to summarize all important stuff at this point! :-)
I'll see if I can find a way to have Twitter feed LiveJournal.. but not right now :-)

Current Mood: weird
Monday, March 26th, 2007
1:13 am
One image says it all!

Roger Waters - São Paulo/Brazil - March 24, 2007.

Current Mood: relaxed
Thursday, February 15th, 2007
12:19 am
Tickets to Roger Waters' concert bought!
Today I got my tickets to Roger Waters' concert, which is going to happen in March, 24 here in São Paulo, Brazil. This is the second time I'll see his show, and it has everything to be an excellent one -- again. Many friends are going together to see the Dark Side of The Moon tour, some of them coming from Porto Alegre, in the south. Now we just need to wait for the great day!

Current Mood: peaceful
Thursday, January 4th, 2007
3:07 pm
Which libc to choose?
A few weeks ago I started to look into some specific bits of the glibc for the ARM, when I decided to take a look at how other libc projects were dealing with them. At that time I got impressed by the number of active projects working with similar aims:

- Glibc: this one you already know;
- uClibc: suited for embedded, has a large number of users out there;
- NewLib: used on the embedded, is sometimes used on 'bare metal' targets where a single app exists;
- DietLibc: also focused on embedded, is optimized for small size;
- KLibc: a small C library for usage on initramfs;
- EGlibc: based on Glibc, aims to slim it down to target the embedded.

The interesting bit on this is that I've seen some contributions coming from a given developer for at least two of these projects, such as adding NPTL support for both uClibc and NewLib. Curious..

Current Mood: relaxed
1:24 pm
I've just returned from my 2-week vacations. Priscilla and I had some good times in Florianópolis/SC -- I was needing that!

Current Mood: relaxed
Sunday, August 13th, 2006
1:24 am
Feeling fine
It seems like I forgot to keep my LJ in sync with stuff happening here. Just wanted to post some news here so that you friends can stay aware of what's going on with the "device boy" :-)

Today I spent my day with Priscilla visiting São Paulo's Art Museum, where a Degas' exposition was being shown. I must say that I was quite impressed by his work, mainly on his ballet dancers' sculptures. However, a set of drawings by Picasso took my entire attention and smiles!

Picasso's drawings were showing Degas in various situations inside brothels. Actually, he represented Degas as a timid viewer, silently watching -- and resisting! -- to the prostitutes' temptations. The most impressive thing on that collection was that mostly all drawings were related to the same scene, thus different techniques and views of the same persons were made. Preeeety cool! :-)

For those curious, a small preview of Degas' exposition can be seen here.

Current Mood: artistic
Tuesday, April 18th, 2006
11:32 am
ping localhost
I'm staying alive and fine, thanks! ;-)

Yesterday I passed the day talking with Jim Gettys from the X.org foundation and with Chris Blizzard from Redhat (the guy behind Mozilla). The subject was the U$100 laptop project, which I'm involved in too. I got some nice ideas from our talk, and they're starting to become code right now ;-)

I'm going to meet them again in Porto Alegre this week, on the 7th International Forum on Free Software. I'll be there tomorrow in the morning, and will be in the south until the next monday. Priscilla is going together and will join me there on the friday. I'm going to show her some nice places in Rio Grande do Sul and my house. It's going to be a nice travel this time!

For those who are not very closed to my routine, a few updates follow. I've been working on the last weeks on the development of Bootstrap, an application which is capable of creating a GoboLinux distribution from scratch to another architecture. It relies a lot on the Compile infrastructure and on Hisham's ChrootCompile tool. It's nice to see our pieces getting integrated together!

That's it, see you later!
Monday, August 8th, 2005
12:28 am
Weeeeeeeeeee! :-)

I got my new ARM board on this week, but didn't have time to post the good new until now. The board is commercially called SiriuStar, and is developed by two guys, Marcelo Miranda and Marcelo Fonseca at Tecnequip. I'd like to thanks them a lot for their help on this project, and also for Ciro de Melo, which promptly presented Marcelo(s) to me.

The SiriuStar is driven by an Intel XSCale processor which runs up to 400 Mhz. It features UART, I2C, IRDA, SSP (Synchronous Serial Port), NSSP (Network Synchronous Serial Port), BlueTooth, USB, among several devices available on the bus: MMC/SD, PCMCIA/Compact Flash, LCD, 2 AC97 codecs, Stereo Audio Input/Output and a Touch Screen controller. An external battery keeps the RTC alive between power-offs. The SiriuStar offers up to 64 Mbytes of FLASH memory and up to 256 Mbytes on the SDRAM, which works at 100 Mhz. My board still has 64 Mbytes, but is going to be upgraded soon.

So, this board is going to be used to make my ARM-based laptop. I've started to port GoboLinux to it, and I've just registered it at the ARM Linux database, in order to get SiriuStar patches integrated into mainline. The SiriuStar got number 819 at the ARM Linux Machine Database.

I'm very excited to put all the bleeding edge development ideas into this distribution. I'll be doing this port synchronized with Hisham's job, which is going to port GoboLinux to his new PPC. I'm pretty sure a lot of interesting things will arise from these ports. In a month I expect to be releasing its first public version with a full graphical desktop environment.

This week I've managed to fix my serial cable for the GP32, too, which got broken while it was in my knapsack. Today I've worked a few on it, by adding new entries into the Kconfig, this time with a new entry specific to S3C2400 based machines.

I'm also waiting for my new book to arrive at home, the ARM Architecture Reference Manual (also known as the ARM ARM). The delivery is expected to happen this week. Well, these are the news for now. More stuff coming soon.

Current Mood: sleepy
Thursday, July 21st, 2005
2:45 pm
The ARM-based laptop
Yes, that's it! I'm going to make my own laptop, based on an ARM CPU! This is a dream I'm living within from a long date, and now it's starting to become true :-)

I've made contact with an ARM hardware manufacturer here in São Paulo on the last week - their development team is composed by only 2 guys -- 2 impressive ones, of course ;-)

I talked to them about my ideas, told them about some hardware requirements I had and shown a little wishlist. They're currently working with a platform based on an ARM PXA CPU, and they have a board pretty interesting: there's a "base" board which offers IDE and flash support, among others, and there's also a pluggable board which has the CPU itself and a lot of connectors to peripherals related to this CPU. This pluggable board gets connected on the main board, and voilà, the machine gets composed!

Given that their solution aims the industrial market, there are some minor issues when going to merge it inside a laptop. Their original board has a big height due to this pluggable architecture, and also suffers from the same problem when the subject are device connectors. My wishlist also had some new hardware requirements, as having two video devices (one being for the touchpad -- I'm going to have a LCD touchscreen instead, haaaaa!), and also for a laptop battery connection, USB master connector and the RF module.

Well, today I was contacted by these guys again, with very good news: they had contacted people at Intel and other manufacturers which provide pieces for their boards, they've talked to them about my idea and voilà! I'm getting their pieces for free, plus some cool days and weekends of hardware hacking together to get the laptop done :-)

What they've asked me to do? Write some PXA device drivers, and doing a GoboLinux port for their board. I could do that for free, man! :-)

So, that's it! These are my hot news. I hope to get access to the hardware on the next weeks. Don't worry, I'll provide pictures this time! ;-)


Current Mood: *very, actually*
2:05 pm
Hotter than July
It has been some time since I last written here, so there's a lot of cool things to say.

First, let me talk a bit about "my precious" -- yes, it's the GP32. I've been working on the bootloader almost every night, enhancing it, learning some little details about the architecture and so on. I've fixed "the bug" in the UART initialization, made a nice splash screen and enhanced the interface by allowing the user to select the clock speed at boot time. I'll provide a video as soon as I get a camera, don't worry ;-)
The source code and binary image is available at http://cscience.org/~lucasvr/gp32, for those interested on hacking on it or going to install the bootloader on their GP32's (the bootloader also works for 2.4).

The Linux 2.6.13-rc2 port status is: the zImage is successfully moved to main memory, uncompressed into another segment of memory, the watchdog gets installed, some uncompression messages are printed and UART gets crazy again. I suspected it could be wrong register configuration - it behaved differently when UART FIFO was enabled and disabled, but it looks like everything is allright. So, the problem may be wrong SDRAM timings. To fix that I have 2 options: configure SDRAM timings by hand, or just call the BIOS SWI call (a system call) to select clock speed. I'm more interested on the first one, of course :-)

Ok, now I have some *very good* news. It's so cool, so cool, so cool, that I'm going to write it as another journal entry ;-)

Current Mood: excited
Thursday, June 9th, 2005
11:52 am
Staying alive
I'm finally in my own apartment here in São Paulo! It has a huge space, with 2 bed rooms and a huge living room. I've already bough one refrigerator, a washing machine, a stove with an oven, an iron to pass clothes and a mixer. This saturday I'm going to populate my kitchen, which needs a table, some chairs, and the dining room, which needs a comfortable sofa and some puffs around the corners.

On the last week I went to Porto Alegre, where I could see my parents and some friends. I also enjoyed the 6th International Forum on Free Software. I got really impressed by the Sun guys which were presenting Solaris 10 and the Open Solaris project. I could also met new people interested and involved on embedded development, such as the Sega Genesis. The GoboLinux talk was very nice, too. Andre and I talked about how one can modify the GoboLinux LiveCD. We have presented the whole development environment, and a few people got interested by the process to make their own distro based on our hierarchy.

The good thing: I've returned from Porto Alegre to São Paulo by car, with my father. It was a nice and beauty trip, which took 16 hours. We stopped on the 8th hour to sleep. This was in Florianópolis/SC, where a huge part of our family lives. My father returned to Porto Alegre by plane, and now I'm more independent in this city, as having a car makes a big big difference here.

The GP32 thing is leaving the freeze state again. I talked to Ben Dooks this week, and we're going to synchronize our patches to merge them mainline. I made more work on the bootloader, which can now send some data through the serial line. The hardware watchdog is also working fine, as it can be configured at machine initialization time (in the Linux kernel) and reboot the console after a few seconds of inactivity. I'm only needing an internet connection (and a phone line!) at home, so that I can speed up the development process.

Current Mood: happy
Tuesday, April 19th, 2005
10:15 am
Living for the City
This is my first post from my new town, São Paulo. All I have to say is that it's an amazing city! There's a lot of things to do -- the city just doesn't stop. São Paulo has many cultural programs, jazz pubs and public spaces to relax at weekends, such as the Ibirapuera park.

I met very interesting people here, too. The guys at the project are awesome, and very open to talks and to share ideas. The USP University is also incredibly big! I'm going to buy a digital camera on the next month and will post some pictures of my new life somewhere :-)

I'm staying at Marcelo's appartment here. Marcelo (snap) is a friend from IRC, also from Rio Grande do Sul (RS). There are other friends from RS here, such as Floyd, and h2so4. And with these guys I met other people, such as Augusto and Cleber, among others.

Fortunately, I could bring my computer to Marcelo's appartment. I don't have an internet connection there, but I'm able to keep playing on it. So, keeping my promise of not stopping GP32 development, I've finished this week the new version of the Linux bootloader for it.

The new bootloader increases the information passed to the Linux kernel. It now handles the atag list, which basically passes the physical memory addresses range, the initrd address and the cmdline string. Conforming to the ARM Linux bootloader requirements, it's now disabling IRQs/FIQs, the MMU and the instruction/data caches. After all, it jumps to the kernel code, passing the machine type and the atag address to the kernel.

The bootloader is working fine -- I've tested it against the working kernel image, 2.4.13. I've also finished another patch, adding s3c2400 cpu information at s3c24xx initialization, but it wasn't sufficient enough to make 2.6.12-rc2 to send data through the serial line.

So, the "base" set is done, and now it's time to catch bugs and debug it. I hope to post some good news on the next days.

The bootloader code is available at http://cscience.org/~lucasvr/gp32, as usual.
Wednesday, April 6th, 2005
8:33 pm
GP32 base patchset finished

Finally, the GP32 base patchset is finished. The patches basically improve the s3c2410 architecture to include support for the GP32 board. For now, I've completed the following things:

- clock, dma, irq, gpio, uart, sleep code, uncompress code, spi, i2s and i2c for the s3c2400;
- gp32 machine support, based on the s3c2400 cpu.

What's missing:

- mmc controller, usb device, lcd driver, power management;
- proper modification of the gp32 linux bootloader.

The LCD driver is on the way; I have mine here, ported from 2.4, but there's a guy involved with HP's H1940 port that's going to submit a new one, probably with PM support as well. USB, MMC and PM aren't really necessary at the moment, so they will need to wait.

Now, all we need to do is get it to boot. The bootloader used by the 2.4 is very poor, since it only copies the zImage to a memory location and jumps there. It lacks to pass information needed by the kernel, such as passing the atag array, which is mandatory for new bootloaders. I've started to enhance it, but I won't be able to finish it for the next 2 weeks.

Maybe it's also going to be needed to move some pieces of asm code from 2.4's arch/arm/boot/compressed/head-gp32.S to C code, inside the init_machine function at mach-gp32.c

Well, that's it. The code was uploaded to http://cscience.org/~lucasvr/patches/linux/2.6.12-rc, as usual. I'll try go get in touch with the code for the next week, but I think it's going to be a bit complicated. Anyway, Linus is leaving BitKeeper usage (http://lkml.org/lkml/2005/4/6/121), so the kernel is in freeze state again.

Tuesday, April 5th, 2005
3:36 pm
Cool news!
I've some news, this time unrelated to the GP32.

I'm going to move on the next week to São Paulo/SP, and will be there till december. I'll be working at USP, on the brazillian's Digital TV project. We'll be defining the architecture that will be used by the so called "terminal access", which is the little box that stays near the television. Having defined the architecture, we'll be choosing a kernel to port that architecture, given that it will be a specialized board.

Of course the first kernel that cames to mind is Linux, and I realize that it might be one of the best solutions. But we'll have some time to research other alternatives, and it's always good to have a better understanding of other kernels internals.

I'll be going to keep my machine turned on at my house this first month, as I'll be staying in a friend's house. I hope to keep doing GoboLinux and GP32 development this month through SSH access, as I just can't stop doing that. There are no excuses! ;-)

BTW, some GP32 news: it's almost there! I've finished adapting the sleep code, among SPI, uncompress code, I2C and IIS. I've also created a direct link to the patches at http://cscience.org/~lucasvr/gp32, as there's no way for guys to guess the path to access them ;-)

So, that's it! Hope to post news soon!
Tuesday, March 29th, 2005
4:59 pm
GP32 Reloaded
Woohaaaa, some updates!

Well, I'm still doing a full time work on the GP32 Linux port. And I'm becoming more and more attracted by these ARM embedded boards: it's just an incredible design, having everything on a single chip, with an excellent documentation. How can I not spend my whole time playing with such pretty devices? :)

Since the last time I posted here I've merged some patches to make it easy for s3c2400 (gp32 board) and s3c2410/s3c2440 code live together. And of course, when you stay tuned with the code you end up finding some small bugs. I could send some clock patches (the UPLL was not being initialized for the s3c2410) and GPIO ones.

The sad thing is that we must wait a little bit to send more patches: 2.6 is feature freeze now (bug fixes only). For the time being, the pending patches include adding Clock support for the s3c2400, DMA, IRQ and GPIO, the latter having being finished yesterday.

Today I'll be starting to work on the I2C, IIC and on the assembly macros which sends power-down commands to the DRAM. I still need to find whether this is possible or not on the s3c2400, since it has less features than s3c2410.

Another interesting note: today a guy told on the Linux forum at gp32x.com that his GP32 BLU+ had a problem after booting the 2.4 Linux image: a white line appears on the screen and never goes away. After asking some guys, I was told that GamePark decided to switch the LCD controller vendor from Samsung to a Taiwanese one.

"So what?" Well, the new LCD controller uses different timings than the Samsung one, so games and applications which aren't aware of that are suffering from this kind of problem. Fortunately we can workaround this problem after checking the firmware version on the GP32, which will tell us what kind of LCD is present on the hardware.

Ok then. I think this is enough for today. I still need to clean the swimming pool and go to gym before getting my hands on the code again. After all, I'm still a human :-)
4:29 pm

Before anything else, I'd like to create a little poll here. I'd like to know whether *you* are able to read brazillian portuguese or not.

I'm doing this just because I think that the only travellers here are my friends from Brazil, and so I question myself: "why on earth am I writing in english?"

Please take a little time to reply to this poll. If there are no "I am not able to read portuguese", this is how the next journal entry will be.

Thursday, March 10th, 2005
1:03 pm
GP32 adventures
So, there are some news on the port of GP32 to Linux 2.6.

This week I've registered GamePark's s3c2400 at http://www.arm.linux.org.uk/developer/machines, so that it could receive an official machine number. Now we have CONFIG_ARCH_S3C2410, CONFIG_CPU_S3C2400 and CONFIG_MACH_GP32.

I've been trying also to figure out the weird I/O mappings shipped on Samsung's 2.4.13 port of the s3c2400. There were 2 kind of flash memories (AMD and Intel) being mapped to the first 2 chip selects, nGCS0 and nGCS1. I was pretty sure that we didn't have such chips on the GP32, so I needed to open my own console for the first time to figure out where these pins were going to.

So, nGCS0 was in fact connected to the AT49BV040 chip, which is the BOOT-ROM. The nGCS1 is connected to nowhere, so there's just one mapping which needs to be done. And of course I'll rename that nonsense "Intel Flash" to reflect the real chip name.

Still going on into the ARM stuff, I've submitted a patch today which renames S3C2410_{VA,SZ} defines to S3C24XX_{VA,SZ} ones. This will make it better to share defines among different CPUs without mixing their names. The same patch also incorporated S3C2400 physical address mappings, so it's now time to start commiting the whole GP32 patches into mainline! ;-)
Monday, February 28th, 2005
1:07 am
GoboLinux news
Ok, so I decided not to stay more than 7 hours by day on this weekend and on the last week playing with the GP32. GoboLinux was claiming for some special attention, too :-)

This week I've put a lot of work on the new ISO, 012. It's definitely looking very fine! The new BootScripts work like a charm, and I'm spending more time now playing with this release on QEMU than on my own 011-based installation :-)

There were a lot of small fixes, cleanups and modifications, but probably the more visible changes to final users are those related to the packages updated and added to the ISO:
- Updated: Udev 053, Sudo 1.6.8p7, MesaLib 6.2, Shadow 4.0.7
- Added: Hotplug 2004_03_29, SysFSUtils 1.2.0, DosFSTools 2.10, Device-Mapper 1.00.21, Multipath-Tools 0.4.2, Pcmcia-CS 3.2.9, Wireless-Tools 27, Lsof 4.75

I've taken Kudzu off the ISO, also. We're now relying on Hotplug for loading device drivers, and it's working *very* fine. It was tested on QEMU, VMWare and on a real Athlon cpu. I just want to add now an optional 'Use Autofs' option to the installer (need to talk to the guys about this yet) and to finish passing updated information about the hardware to the installer.

I hope to be finishing this work by tuesday. More posts coming this week.. ;-)
12:35 am
GP32 News
I've finally managed to get my serial cable for the PC <-> GP32 link. The problem was that the GP32 wasn't being able to send data to the PC. I've found out that when I pressed my finger at a certain pins of the board, some random data could be successfully sent through a terminal emulator.

So, I tryied looking at MAX3225 datasheets with more attention. There are 2 important pins that I was missing on the game: FORCEON and FORCEOFF. In order to supply current and disable the AutoShutdown resource from the chip, both pins must be assigned to the Vcc pin. So, this is what I was doing when I pressed my finger on the board.

After soldering those pins again and trying to communicate again through minicom, another problem appeared: data was being sent from the GP32, but only some random bytes were being received.

The trick made was to ignore the RTS and CTS signals coming from the GP32 EXT port. It was made a loop, soldering RTS with CTS. Ok, I'm not able to rely on hardware flow control anymore, but hey, it's working! ;-)

I'd like to thanks Moises for taking his time to debug the MAX3225 with me. Thanks man! When you decide to enter Orkut I'll be sure to add you as my idol ;-)
Friday, February 18th, 2005
12:39 pm
First entry
Hi there,

This is my first post here. I'm a bit busy at the time, so I'm just leaving this 'hello' message to test this journal system.
My Website   About LiveJournal.com