diff mbox

[OpenWrt-Devel,3/5] brcm63xx: lzma-loader: add BCM3380 support

Message ID 1444422589-5260-4-git-send-email-noltari@gmail.com
State Accepted
Delegated to: Jonas Gorski
Headers show

Commit Message

Álvaro Fernández Rojas Oct. 9, 2015, 8:29 p.m. UTC
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
 target/linux/brcm63xx/image/lzma-loader/src/board.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Florian Fainelli Oct. 9, 2015, 8:38 p.m. UTC | #1
On 09/10/15 13:29, Álvaro Fernández Rojas wrote:
> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

That is a first step, but there are additional kernel changes required
to boot on 3380, are you also going to submit these?

> ---
>  target/linux/brcm63xx/image/lzma-loader/src/board.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/target/linux/brcm63xx/image/lzma-loader/src/board.c b/target/linux/brcm63xx/image/lzma-loader/src/board.c
> index 46af525..28b9c53 100644
> --- a/target/linux/brcm63xx/image/lzma-loader/src/board.c
> +++ b/target/linux/brcm63xx/image/lzma-loader/src/board.c
> @@ -70,6 +70,8 @@ void board_init(void)
>  	case PRID_IMP_BMIPS43XX:
>  		if ((prid & 0xff) == 0x04)
>  			chipid_reg = 0xfff8c000;
> +		else if ((prid & 0xff) == 0x70)
> +			chipid_reg = 0xb4e00000;
>  		else if ((prid & 0xff) >= 0x30)
>  			chipid_reg = 0xb0000000;
>  		else
> @@ -95,6 +97,9 @@ void board_init(void)
>  	case 0x6326:
>  		uart_base = chipid_reg + 0x180;
>  		break;
> +	case 0x3380:
> +		uart_base = chipid_reg + 0x200;
> +		break;
>  	case 0x6338:
>  	case 0x6345:
>  	case 0x6348:
>
Álvaro Fernández Rojas Oct. 9, 2015, 8:52 p.m. UTC | #2
Not yet, also my patches for the kernel are based on yours, so maybe you 
should submit them, since you were the first one to implement the support.
BTW, I boot tested bmips on BCM3380 with the following changes:
https://github.com/openwrt-es/openwrt/commit/3c72e4dc2b2bf21f3b1a7ef412fdb60753febae1
https://github.com/openwrt-es/openwrt/commits/bmips-4.1
But I have to say it's painfully slow, because it takes like 150s to 
fully boot on 1 CPU and 400+ on 2CPU :/.

And about bmips target, Jonas wants to add it as a brcm63xx subtarget in 
the future.

Regards,
Álvaro.

El 09/10/2015 a las 22:38, Florian Fainelli escribió:
> On 09/10/15 13:29, Álvaro Fernández Rojas wrote:
>> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
> That is a first step, but there are additional kernel changes required
> to boot on 3380, are you also going to submit these?
>
>> ---
>>   target/linux/brcm63xx/image/lzma-loader/src/board.c | 5 +++++
>>   1 file changed, 5 insertions(+)
>>
>> diff --git a/target/linux/brcm63xx/image/lzma-loader/src/board.c b/target/linux/brcm63xx/image/lzma-loader/src/board.c
>> index 46af525..28b9c53 100644
>> --- a/target/linux/brcm63xx/image/lzma-loader/src/board.c
>> +++ b/target/linux/brcm63xx/image/lzma-loader/src/board.c
>> @@ -70,6 +70,8 @@ void board_init(void)
>>   	case PRID_IMP_BMIPS43XX:
>>   		if ((prid & 0xff) == 0x04)
>>   			chipid_reg = 0xfff8c000;
>> +		else if ((prid & 0xff) == 0x70)
>> +			chipid_reg = 0xb4e00000;
>>   		else if ((prid & 0xff) >= 0x30)
>>   			chipid_reg = 0xb0000000;
>>   		else
>> @@ -95,6 +97,9 @@ void board_init(void)
>>   	case 0x6326:
>>   		uart_base = chipid_reg + 0x180;
>>   		break;
>> +	case 0x3380:
>> +		uart_base = chipid_reg + 0x200;
>> +		break;
>>   	case 0x6338:
>>   	case 0x6345:
>>   	case 0x6348:
>>
José Vázquez Fernández Oct. 13, 2015, 11:10 a.m. UTC | #3
2015-10-09 22:52 GMT+02:00, Álvaro Fernández Rojas <noltari@gmail.com>:
> Not yet, also my patches for the kernel are based on yours, so maybe you
> should submit them, since you were the first one to implement the support.
> BTW, I boot tested bmips on BCM3380 with the following changes:
> https://github.com/openwrt-es/openwrt/commit/3c72e4dc2b2bf21f3b1a7ef412fdb60753febae1
> https://github.com/openwrt-es/openwrt/commits/bmips-4.1
> But I have to say it's painfully slow, because it takes like 150s to
> fully boot on 1 CPU and 400+ on 2CPU :/.
>
> And about bmips target, Jonas wants to add it as a brcm63xx subtarget in
> the future.
>
> Regards,
> Álvaro.
>
According to the CG3100 source code the BCM3380 uses only spi flash
and does not have hsspi but legacy spi like 6368, 6358 and others, but
with a max speed of 25MHz, which is not defined in .
This is a piece of code found in spiflash.c:

#if defined(CONFIG_BCM93380)
    spi_flash_busnum = LEG_SPI_BUS_NUM;
    spi_flash_clock = 25000000;
#endif
#if defined(CONFIG_BCM93383)
    spi_flash_busnum = HS_SPI_BUS_NUM;
#endif

IMHO bcm63xx patches #345 and #411 are related with the slow boot
speed you are experiencing. I have no idea if BCM3380 supports other
spi clocks.

Regards:

Pepe
diff mbox

Patch

diff --git a/target/linux/brcm63xx/image/lzma-loader/src/board.c b/target/linux/brcm63xx/image/lzma-loader/src/board.c
index 46af525..28b9c53 100644
--- a/target/linux/brcm63xx/image/lzma-loader/src/board.c
+++ b/target/linux/brcm63xx/image/lzma-loader/src/board.c
@@ -70,6 +70,8 @@  void board_init(void)
 	case PRID_IMP_BMIPS43XX:
 		if ((prid & 0xff) == 0x04)
 			chipid_reg = 0xfff8c000;
+		else if ((prid & 0xff) == 0x70)
+			chipid_reg = 0xb4e00000;
 		else if ((prid & 0xff) >= 0x30)
 			chipid_reg = 0xb0000000;
 		else
@@ -95,6 +97,9 @@  void board_init(void)
 	case 0x6326:
 		uart_base = chipid_reg + 0x180;
 		break;
+	case 0x3380:
+		uart_base = chipid_reg + 0x200;
+		break;
 	case 0x6338:
 	case 0x6345:
 	case 0x6348: