Debugging VoCore2 ROM Startup
Mauro Condarelli
mc5686 at mclink.it
Wed Jan 15 10:04:04 CET 2020
HI Stefan,
On 1/15/20 8:25 AM, Stefan Roese wrote:
> Hi Mauro,
>
> On 15.01.20 00:55, Mauro Condarelli wrote:
>> I found *one* of the bugs in startup:
>> To enable UART2 pinmux setting:
>> void __iomem *gpio_mode;
>> gpio_mode = ioremap_nocache(MT76XX_GPIO1_MODE, 0x100);
>> clrbits_le32(gpio_mode, GENMASK(27, 26));
>> is not enough; you need also:
>> setbits_le32(gpio_mode, GENMASK(3, 2));
>> I actually use the more explicit, but hopefully equivalent:
>> #define MT76XX_GPIO1_MODE 0x10000060
>> #define MIPS_KSEG1_START 0xA0000000
>>
>> uint32_t v, *a;
>> a = (uint32_t *)(MIPS_KSEG1_START + MT76XX_GPIO1_MODE);
>> v = *a;
>> v &= 0xF3FFFFFF;
>> v |= 0x0000000C;
>> *a = v;
>>
>> It is unclear to me how Linkit port could work.
>
> I double checked on LiniIt and it works without this bit 2/3
> setting:
>
> => md b0000060 1
> b0000060: 50050404 ...P
>
> You can check this on your VoCore2 board by setting this value
> from the prompt. If this works, then its not strictly needed.
>
This seems to be strictly needed on my board:
U-Boot 1.1.3 (Apr 23 2017 - 14:59:01)
VoCore2 > md b0000060 1
b0000060: 5505040c ...U
VoCore2 > mm b0000060
b0000060: 5505040c ? 55050404
<DEAD>
This is with the original "paleolithic" u-boot, of course, but it
should be a HW-related feature, should I try also with "current"
(RAM based)?
I am surprised though as all I could find on differences between
MT7628 and MT7688 are is a reference on Mediatek site:
https://docs.labs.mediatek.com/resource/linkit-smart-7688/en/faq
Q: What’s MT7628 and how is it different from MT7688AN?
The MT7628 series are pin-to-pin compatible with the MT7688 series.
However, MT7628 comes with a 2T2R antenna, while MT7688 only supports
1T1R antenna.
(Incomplete!) comparison of the two datasheets did not show
relevant differences.
>> Anyways now my "secondary from ROM" approach now
>> works without the long delay described below.
>>
>> Unfortunately this does not seem to be the whole story because
>> flashing u-boot linked directly in the "right palace":
>>
>> SYS_TEXT_BASE = 0x9c000000
>>
>> still refuses to display anything on serial; I assume some other
>> initialization is missing, but that will be another fight.
>>
>> Any insight welcome.
>
> Did my new image from yesterday produce any output on your board?
No.
Your image was as silent as mine.
Not a single char in serial line.
> BTW: How do you flash the image into SPI NOR? From the new mainline
> U-Boot loaded into RAM or from the ancient 1.1.3 version? Perhaps
> something is going wrong in the flashing process?
I will try to read back after flashing, but I somewhat doubt that's the
problem.
I am using the new, RAM-based U-Boot to flash.
Actual sequence is:
usb reset; fatload usb 0 80010000 u-boot-ram.bin; go 80010000
usb start; sf probe;
load usb 0:1 85000000 u-boot-rom.bin; sf update ${fileaddr} u-boot
${filesize}
reset
where:
=> mtd list
List of MTD devices:
* nor0
- type: NOR flash
- block size: 0x1000 bytes
- min I/O: 0x1 bytes
- 0x000000000000-0x000001000000 : "nor0"
- 0x000000000000-0x00000007e000 : "u-boot"
- 0x00000007e000-0x00000007f000 : "env"
- 0x00000007f000-0x000000080000 : "factory"
- 0x000000080000-0x000000320000 : "kernel"
- 0x000000320000-0x000001000000 : "filesystem"
Equivalent sequences work correctly to flash kernel and (recovery)
filesystem.
> Thanks,
> Stefan
Many thanks for Your patience...
Mauro
More information about the U-Boot
mailing list