arm atag retrieval problem
gedare at rtems.org
Mon Jul 13 15:40:42 UTC 2015
On Sat, Jul 11, 2015 at 11:29 AM, QIAO YANG <yangqiao0505 at me.com> wrote:
> I tried to retrieve atag command lines but I've got wired problems:
> I ran a quick scan for atags, start from 0x100, and I've got an output like
> [ATAG_CORE] flags: 0, pagesize: 0, rootdev: 0
> [ATAG_MEM] size: 8000000, start: 0
> [ATAG_CMDLINE] found:
> dma.dmachans=0x7f35 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416
> bcm2708.boardrev=0xf bcm2708.serial=0x8247b4bb smsc95xx.macaddr=B8s
> start addr:12C
> size : 2E616D64
> didn't find [ATAG_NONE]
> which told me that:
> 1. The start address of atag cmdline is 0x12C
> 2. The size of this tag is 0x2E616D64
> The size of the tag is abnormal.
> From the output, it seems that I only retrieved part of the cmdline.
Perhaps you have messed up the field layout or somehow gotten the
wrong field offsets?
> I've also tried to use the mailbox interface to get the cmdline. what I've
> got is exactly the same part of string without error reponse. Even if I
> tried to print the following characters, they are all empty.
> I think that the atags area maybe rewritten in some way but I didn't managed
> to figure out. What bothers me most is the length of the tag, because the
> tag id is correct, part of the value is readable, there's no reason that the
> data between them is incorrect. The atag area should be written by
> videocore, who load the cmdline.txt where we can add additional lines.
> Besides I've also got a question that how can I get the value of r2 that
> passed by bootloader to kernel image? It should store the value of start
> address of ATAG or the magic of device tree. What I've found in linux is
> that there is a function like init( *param), which is called when loading
> the kernel, and the function get the value of r2 as the parameter passed to
> it. I wonder how can I get this value, though by default the atag starts
> from 0x100.
Check in the BSP boot-up code (usually in the bsp subdirectory, start.S file).
> If it takes too long to implement the feature (atag, device tree ....), I've
> got other ways to detect if a hdmi device is present and then disable/enable
> the graphic console. If I'm allowed to pass the atag/device tree
Can you clarify this statement? What "other ways" do you mean?
> Best wishes.
More information about the devel