* [U-Boot] [PATCH] at91sam9x5ek: Pass serial and revision tags to Linux
@ 2013-04-25 5:59 Julius Hemanth P
2013-04-25 15:47 ` Tom Rini
2013-04-26 1:50 ` Bo Shen
0 siblings, 2 replies; 4+ messages in thread
From: Julius Hemanth P @ 2013-04-25 5:59 UTC (permalink / raw)
To: u-boot
This code is small snippet from patch
ftp://ftp.linux4sam.org/pub/uboot/u-boot-v2010.06/u-boot-5series_1.0.patch
Bug:-
For board at91sam9x5ek, U-boot doesn't pass serial and revision tags
to Linux kernel, hence kernel fails to identify correct revision and assumes
as rev-A, resulting in failing to detect NAND device.
This patch enables u-boot to pass serial and revision tags to Linux
kernel, which helps Linux to detect NAND device.
Signed-off-by: Julius Hemanth <juliushemanth@gmail.com>
---
board/atmel/at91sam9x5ek/at91sam9x5ek.c | 28 ++++++++++++++++++++++++++++
include/configs/at91sam9x5ek.h | 7 +++++++
2 files changed, 35 insertions(+)
diff --git a/board/atmel/at91sam9x5ek/at91sam9x5ek.c
b/board/atmel/at91sam9x5ek/at91sam9x5ek.c
index 8773e6f..43a55e4 100644
--- a/board/atmel/at91sam9x5ek/at91sam9x5ek.c
+++ b/board/atmel/at91sam9x5ek/at91sam9x5ek.c
@@ -50,6 +50,30 @@ DECLARE_GLOBAL_DATA_PTR;
/*
* Miscelaneous platform dependent initialisations
*/
+
+#ifdef CONFIG_LOAD_ONE_WIRE_INFO
+static u32 system_rev;
+static u32 system_serial_low;
+
+u32 get_board_rev(void)
+{
+ return system_rev;
+}
+
+void get_board_serial(struct tag_serialnr *serialnr)
+{
+ serialnr->high = 0; /* Not used */
+ serialnr->low = system_serial_low;
+}
+
+void load_1wire_info(void)
+{
+ /* serial is in GPBR #2 and revision is in GPBR #3 */
+ system_serial_low = readl(ATMEL_BASE_GPBR + 4 * 2);
+ system_rev = readl(ATMEL_BASE_GPBR + 4 * 3);
+}
+#endif
+
#ifdef CONFIG_CMD_NAND
static void at91sam9x5ek_nand_hw_init(void)
{
@@ -282,6 +306,10 @@ int board_init(void)
/* adress of boot parameters */
gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
+#ifdef CONFIG_LOAD_ONE_WIRE_INFO
+ load_1wire_info();
+#endif
+
#ifdef CONFIG_CMD_NAND
at91sam9x5ek_nand_hw_init();
#endif
diff --git a/include/configs/at91sam9x5ek.h b/include/configs/at91sam9x5ek.h
index ee6e3fc..b6236b8 100644
--- a/include/configs/at91sam9x5ek.h
+++ b/include/configs/at91sam9x5ek.h
@@ -38,6 +38,13 @@
#define CONFIG_CMDLINE_TAG /* enable passing of ATAGs */
#define CONFIG_SETUP_MEMORY_TAGS
#define CONFIG_INITRD_TAG
+
+#define CONFIG_LOAD_ONE_WIRE_INFO 1
+#ifdef CONFIG_LOAD_ONE_WIRE_INFO
+#define CONFIG_REVISION_TAG 1
+#define CONFIG_SERIAL_TAG 1
+#endif
+
#define CONFIG_SKIP_LOWLEVEL_INIT
#define CONFIG_BOARD_EARLY_INIT_F
#define CONFIG_DISPLAY_CPUINFO
--
1.7.9.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH] at91sam9x5ek: Pass serial and revision tags to Linux
2013-04-25 5:59 [U-Boot] [PATCH] at91sam9x5ek: Pass serial and revision tags to Linux Julius Hemanth P
@ 2013-04-25 15:47 ` Tom Rini
2013-04-26 1:50 ` Bo Shen
1 sibling, 0 replies; 4+ messages in thread
From: Tom Rini @ 2013-04-25 15:47 UTC (permalink / raw)
To: u-boot
On Thu, Apr 25, 2013 at 01:59:37PM +0800, Julius Hemanth P wrote:
> This code is small snippet from patch
> ftp://ftp.linux4sam.org/pub/uboot/u-boot-v2010.06/u-boot-5series_1.0.patch
>
> Bug:-
> For board at91sam9x5ek, U-boot doesn't pass serial and revision tags
> to Linux kernel, hence kernel fails to identify correct revision and assumes
> as rev-A, resulting in failing to detect NAND device.
>
> This patch enables u-boot to pass serial and revision tags to Linux
> kernel, which helps Linux to detect NAND device.
>
> Signed-off-by: Julius Hemanth <juliushemanth@gmail.com>
[snip]
> +#define CONFIG_LOAD_ONE_WIRE_INFO 1
> +#ifdef CONFIG_LOAD_ONE_WIRE_INFO
> +#define CONFIG_REVISION_TAG 1
> +#define CONFIG_SERIAL_TAG 1
> +#endif
No trailing '1' and you don't need the ifdef right after you set it in
this case. Thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130425/5005d1f7/attachment.pgp>
^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH] at91sam9x5ek: Pass serial and revision tags to Linux
2013-04-25 5:59 [U-Boot] [PATCH] at91sam9x5ek: Pass serial and revision tags to Linux Julius Hemanth P
2013-04-25 15:47 ` Tom Rini
@ 2013-04-26 1:50 ` Bo Shen
2013-04-26 8:33 ` Julius Hemanth P
1 sibling, 1 reply; 4+ messages in thread
From: Bo Shen @ 2013-04-26 1:50 UTC (permalink / raw)
To: u-boot
Hi Julius,
On 4/25/2013 13:59, Julius Hemanth P wrote:
> This code is small snippet from patch
> ftp://ftp.linux4sam.org/pub/uboot/u-boot-v2010.06/u-boot-5series_1.0.patch
>
> Bug:-
> For board at91sam9x5ek, U-boot doesn't pass serial and revision tags
> to Linux kernel, hence kernel fails to identify correct revision and assumes
> as rev-A, resulting in failing to detect NAND device.
It won't have issue work with mainline Linux kernel for at91sam9x5.
Actually, this only occur when mainline u-boot work with the Linux
kernel we released based on 2.6.39 (This is almost two years old). So,
for customer we suggest them upgrade the Linux kernel.
For compatible issue, add this won't hurt. Temporary, we can accept it.
if the GPBR will use for other function in future, this will be removed.
> This patch enables u-boot to pass serial and revision tags to Linux
> kernel, which helps Linux to detect NAND device.
>
> Signed-off-by: Julius Hemanth <juliushemanth@gmail.com>
> ---
> board/atmel/at91sam9x5ek/at91sam9x5ek.c | 28 ++++++++++++++++++++++++++++
> include/configs/at91sam9x5ek.h | 7 +++++++
> 2 files changed, 35 insertions(+)
>
> diff --git a/board/atmel/at91sam9x5ek/at91sam9x5ek.c
> b/board/atmel/at91sam9x5ek/at91sam9x5ek.c
> index 8773e6f..43a55e4 100644
> --- a/board/atmel/at91sam9x5ek/at91sam9x5ek.c
> +++ b/board/atmel/at91sam9x5ek/at91sam9x5ek.c
> @@ -50,6 +50,30 @@ DECLARE_GLOBAL_DATA_PTR;
> /*
> * Miscelaneous platform dependent initialisations
> */
s/Miscelaneous/Miscellaneous
s/initialisations/initializations
> +
> +#ifdef CONFIG_LOAD_ONE_WIRE_INFO
> +static u32 system_rev;
> +static u32 system_serial_low;
> +
> +u32 get_board_rev(void)
> +{
> + return system_rev;
> +}
> +
> +void get_board_serial(struct tag_serialnr *serialnr)
> +{
> + serialnr->high = 0; /* Not used */
> + serialnr->low = system_serial_low;
> +}
> +
> +void load_1wire_info(void)
> +{
> + /* serial is in GPBR #2 and revision is in GPBR #3 */
> + system_serial_low = readl(ATMEL_BASE_GPBR + 4 * 2);
> + system_rev = readl(ATMEL_BASE_GPBR + 4 * 3);
Please use c structure to access it.
> +}
> +#endif
> +
> #ifdef CONFIG_CMD_NAND
> static void at91sam9x5ek_nand_hw_init(void)
> {
> @@ -282,6 +306,10 @@ int board_init(void)
> /* adress of boot parameters */
> gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
>
> +#ifdef CONFIG_LOAD_ONE_WIRE_INFO
> + load_1wire_info();
> +#endif
> +
> #ifdef CONFIG_CMD_NAND
> at91sam9x5ek_nand_hw_init();
> #endif
> diff --git a/include/configs/at91sam9x5ek.h b/include/configs/at91sam9x5ek.h
> index ee6e3fc..b6236b8 100644
> --- a/include/configs/at91sam9x5ek.h
> +++ b/include/configs/at91sam9x5ek.h
> @@ -38,6 +38,13 @@
> #define CONFIG_CMDLINE_TAG /* enable passing of ATAGs */
> #define CONFIG_SETUP_MEMORY_TAGS
> #define CONFIG_INITRD_TAG
> +
> +#define CONFIG_LOAD_ONE_WIRE_INFO 1
> +#ifdef CONFIG_LOAD_ONE_WIRE_INFO
> +#define CONFIG_REVISION_TAG 1
> +#define CONFIG_SERIAL_TAG 1
> +#endif
Address Tom Rini's comments.
> +
> #define CONFIG_SKIP_LOWLEVEL_INIT
> #define CONFIG_BOARD_EARLY_INIT_F
> #define CONFIG_DISPLAY_CPUINFO
> --
> 1.7.9.5
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>
Best Regards,
Bo Shen
^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH] at91sam9x5ek: Pass serial and revision tags to Linux
2013-04-26 1:50 ` Bo Shen
@ 2013-04-26 8:33 ` Julius Hemanth P
0 siblings, 0 replies; 4+ messages in thread
From: Julius Hemanth P @ 2013-04-26 8:33 UTC (permalink / raw)
To: u-boot
Thanks Bo and Tom.
I shall modify patch as suggested and will send it again.
On Fri, Apr 26, 2013 at 7:20 AM, Bo Shen <voice.shen@atmel.com> wrote:
> Hi Julius,
>
>
> On 4/25/2013 13:59, Julius Hemanth P wrote:
>>
>> This code is small snippet from patch
>> ftp://ftp.linux4sam.org/pub/uboot/u-boot-v2010.06/u-boot-5series_1.0.patch
>>
>> Bug:-
>> For board at91sam9x5ek, U-boot doesn't pass serial and revision tags
>> to Linux kernel, hence kernel fails to identify correct revision and
>> assumes
>> as rev-A, resulting in failing to detect NAND device.
>
>
> It won't have issue work with mainline Linux kernel for at91sam9x5.
>
> Actually, this only occur when mainline u-boot work with the Linux kernel we
> released based on 2.6.39 (This is almost two years old). So, for customer we
> suggest them upgrade the Linux kernel.
>
> For compatible issue, add this won't hurt. Temporary, we can accept it. if
> the GPBR will use for other function in future, this will be removed.
>
>
>> This patch enables u-boot to pass serial and revision tags to Linux
>> kernel, which helps Linux to detect NAND device.
>>
>> Signed-off-by: Julius Hemanth <juliushemanth@gmail.com>
>> ---
>> board/atmel/at91sam9x5ek/at91sam9x5ek.c | 28
>> ++++++++++++++++++++++++++++
>> include/configs/at91sam9x5ek.h | 7 +++++++
>> 2 files changed, 35 insertions(+)
>>
>> diff --git a/board/atmel/at91sam9x5ek/at91sam9x5ek.c
>> b/board/atmel/at91sam9x5ek/at91sam9x5ek.c
>> index 8773e6f..43a55e4 100644
>> --- a/board/atmel/at91sam9x5ek/at91sam9x5ek.c
>> +++ b/board/atmel/at91sam9x5ek/at91sam9x5ek.c
>> @@ -50,6 +50,30 @@ DECLARE_GLOBAL_DATA_PTR;
>> /*
>> * Miscelaneous platform dependent initialisations
>> */
>
>
> s/Miscelaneous/Miscellaneous
> s/initialisations/initializations
>
>
>> +
>> +#ifdef CONFIG_LOAD_ONE_WIRE_INFO
>> +static u32 system_rev;
>> +static u32 system_serial_low;
>> +
>> +u32 get_board_rev(void)
>> +{
>> + return system_rev;
>> +}
>> +
>> +void get_board_serial(struct tag_serialnr *serialnr)
>> +{
>> + serialnr->high = 0; /* Not used */
>> + serialnr->low = system_serial_low;
>> +}
>> +
>> +void load_1wire_info(void)
>> +{
>> + /* serial is in GPBR #2 and revision is in GPBR #3 */
>> + system_serial_low = readl(ATMEL_BASE_GPBR + 4 * 2);
>> + system_rev = readl(ATMEL_BASE_GPBR + 4 * 3);
>
>
> Please use c structure to access it.
>
>
>> +}
>> +#endif
>> +
>> #ifdef CONFIG_CMD_NAND
>> static void at91sam9x5ek_nand_hw_init(void)
>> {
>> @@ -282,6 +306,10 @@ int board_init(void)
>> /* adress of boot parameters */
>> gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
>>
>> +#ifdef CONFIG_LOAD_ONE_WIRE_INFO
>> + load_1wire_info();
>> +#endif
>> +
>> #ifdef CONFIG_CMD_NAND
>> at91sam9x5ek_nand_hw_init();
>> #endif
>> diff --git a/include/configs/at91sam9x5ek.h
>> b/include/configs/at91sam9x5ek.h
>> index ee6e3fc..b6236b8 100644
>> --- a/include/configs/at91sam9x5ek.h
>> +++ b/include/configs/at91sam9x5ek.h
>> @@ -38,6 +38,13 @@
>> #define CONFIG_CMDLINE_TAG /* enable passing of ATAGs */
>> #define CONFIG_SETUP_MEMORY_TAGS
>> #define CONFIG_INITRD_TAG
>> +
>> +#define CONFIG_LOAD_ONE_WIRE_INFO 1
>> +#ifdef CONFIG_LOAD_ONE_WIRE_INFO
>> +#define CONFIG_REVISION_TAG 1
>> +#define CONFIG_SERIAL_TAG 1
>> +#endif
>
>
> Address Tom Rini's comments.
>
>> +
>> #define CONFIG_SKIP_LOWLEVEL_INIT
>> #define CONFIG_BOARD_EARLY_INIT_F
>> #define CONFIG_DISPLAY_CPUINFO
>> --
>> 1.7.9.5
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot at lists.denx.de
>> http://lists.denx.de/mailman/listinfo/u-boot
>>
>
> Best Regards,
> Bo Shen
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-04-26 8:33 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-25 5:59 [U-Boot] [PATCH] at91sam9x5ek: Pass serial and revision tags to Linux Julius Hemanth P
2013-04-25 15:47 ` Tom Rini
2013-04-26 1:50 ` Bo Shen
2013-04-26 8:33 ` Julius Hemanth P
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox