Re: arm atag retrieval problem
On Mon, Jul 13, 2015 at 12:17 PM, 桥 杨 wrote: > > >> 在 2015年7月13日,17:40,Gedare Bloom 写道: >> >>> On Sat, Jul 11, 2015 at 11:29 AM, QIAO YANG wrote: >>> Hi, >>> >>> 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: 800, 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 verified that. > > >> >>> >>> 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). > > I've found it. It use the default startup code. Is there a possibility that > the default arm start.S messed up something? This might also explain why it > bugged when using uboot to load it? > The default may not preserve the r2 register? >> >>> >>> 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 >>> implementation. >> Can you clarify this statement? What "other ways" do you mean? >> > > If no display is connected , when we query the display size , vc will return > 656*416. I'm not sure if it's acceptable to be used as a probe. > If the return value without a display is a constant value, then this should be ok to use temporarily at least. But you should continue to work on getting the atag/dt working correctly, while you can work on other parts of your project in parallel (Porting the graphics toolkit to RSB). > >>> >>> Best wishes. >>> >>> ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: arm atag retrieval problem
> 在 2015年7月13日,17:40,Gedare Bloom 写道: > >> On Sat, Jul 11, 2015 at 11:29 AM, QIAO YANG wrote: >> Hi, >> >> 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: 800, 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 verified that. > >> >> 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). I've found it. It use the default startup code. Is there a possibility that the default arm start.S messed up something? This might also explain why it bugged when using uboot to load it? > >> >> 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 >> implementation. > Can you clarify this statement? What "other ways" do you mean? > If no display is connected , when we query the display size , vc will return 656*416. I'm not sure if it's acceptable to be used as a probe. >> >> Best wishes. >> >> ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: arm atag retrieval problem
On Sat, Jul 11, 2015 at 11:29 AM, QIAO YANG wrote: > Hi, > > 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: 800, 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 > implementation. > Can you clarify this statement? What "other ways" do you mean? > > Best wishes. > > ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
arm atag retrieval problem
Hi, 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: 800, 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. 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. 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 implementation. Best wishes. ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel