Struggling to get kernel to preserve framebuffer memory when booting
Hi all, I'm struggling to solve a problem which in theory should be quite straight forward. This email is a bit of a brain dump so apologies for being all over the place. I'm working on an embedded device where u-boot displays a logo which I want the kernel to preserve. However I find the display gets blanked as soon as the kernel starts executing. As I understand it, the first step is to get the kernel to reserve the frame-buffer memory (and hand it to the FB driver later on). So I added the following device tree entry: reserved-memory { #address-cells = <1>; #size-cells = <1>; ranges; display_reserved: fb@0 { no-map; reg = <0x3ffa5000 0x0005b000>; }; }; The memory area reflects the FB memory allocated by u-boot. This is an atmel SAMA5D2 based board with 512M RAM in the 0x20000000-0x40000000 range. However, I find the display is blanked even before the FB driver starts. I have confirmed that the device tree entry is processed by placing printks in drivers/of/of_reserved_mem.c (http://elixir.free-electrons.com/linux/latest/source/drivers/of/of_reserved_...). I also added the following line at the same spot to see if that area is at least accessible: *(unsigned int*)0x3ffa5000 = 0xffffffff And I observed the following result: 1. The kernel hangs 2. The display is not yet blanked at this point Writing to the same location from within the u-boot shell places a white pixel on the display. Could anyone suggest what areas I need to look at to solve this problem? Any tips and suggestions will be greatly appreciated. Thank you Dushara
participants (1)
-
Dushara Jayasinghe