RE: [U-Boot-Users] U-Boot Memory Allocation for Framebuffer?

Himba-
I had actually noticed the that size from size = lcd_setmem wasn't getting used, and adjusted my own code to deal with that, it's just that I decided to paste from CVS instead of my own code for some reason.
#ifdef CONFIG_LCD /* * reserve memory for LCD display (always full pages) */ /* bss_end is defined in the board-specific linker script */ addr = (_bss_end + (PAGE_SIZE - 1)) & ~(PAGE_SIZE - 1); addr = lcd_setmem (addr); gd->fb_base = addr; #endif /* CONFIG_LCD */
...is what I actually was using, which matched lib_ppc/board.c...
/* round down to next 4 kB limit */ addr &= ~(4096 - 1);
#ifdef CONFIG_LCD /* reserve memory for LCD display (always full pages) */ addr = lcd_setmem (addr); gd->fb_base = addr; #endif /* CONFIG_LCD */
In any case, I will give things a try with using the framebuffer at 0x110a2000.
-Michael Bendzick
-----Original Message----- From: himba [mailto:himba@siol.net] Sent: Tuesday, July 27, 2004 2:09 PM To: Michael Bendzick Cc: U-Boot-Users (E-mail) Subject: Re: [U-Boot-Users] U-Boot Memory Allocation for Framebuffer?
Michael Bendzick wrote:
I'm doing some development on a LCD framebuffer for the OMAP 1510
Innovator
board (ARM925T CPU), and am encountering some difficulties with code
flying
off to strange places.
I'm theorizing that the code flies off because memory is not properly allocated for the framebuffer. I'm basing all of my new U-Boot related
code
on cpu/mpc8xx/lcd.c, and adding LCD code from the OMAP kernel to get a
final
product.
I make use of this code from lib_arm/board.c:
#ifdef CONFIG_LCD /* * reserve memory for LCD display (always full pages) */ /* bss_end is defined in the board-specific linker script */ addr = (_bss_end + (PAGE_SIZE - 1)) & ~(PAGE_SIZE - 1); size = lcd_setmem (addr); gd->fb_base = addr; #endif /* CONFIG_LCD */
I have a lcd_setmem function that works fine, but I don't think the memory map gets properly initialized once it knows how much framebuffer memory is needed.
If you look at the lcd_setmem() function in cpu/pxa/pxafb.c you can see that it does nothing worth calling it - maybe just for information that we are "reserving" FB mem. It just calculates the size, prints it out and does nothing else on that chunk. Also note that returned value by lcd_setmem() is not being used anywhere, for that matter. For my pxa255 arm target board I commented out call to lcd_setmem().
HTH, himba

Michael Bendzick wrote:
#ifdef CONFIG_LCD /* reserve memory for LCD display (always full pages) */ addr = lcd_setmem (addr); gd->fb_base = addr; #endif /* CONFIG_LCD */
I tried taht too, till I started reading the source in more detail, as this particular tweak hanged my board, since fb that was allocated overwrote u-boot code that is there as you pointed out in your first mail.
In any case, I will give things a try with using the framebuffer at 0x110a2000.
I'm affraid that's the only viable option you have ;)
regards, himba
participants (2)
-
himba
-
Michael Bendzick