Page 1 of 1

Using AESB / AES Automatic Bridge with QSPI in Linux on A5D27

Posted: Tue May 12, 2020 10:34 pm
by mdeneen

I have been struggling to use AESB with qspi0 in Linux (5.6.x). Here is what I've done so far:

* Configured the AESB peripheral (AESB_MR = 0xE0410C) and enabled the peripheral clock in at91bootstrap
* Device tree node for qspi0 is set to

Code: Select all

                        qspi0: spi@f0020000 {
                                reg = <0xf0020000 0x100>, <0x90000000 0x08000000>;
                                reg-names = "qspi_base", "qspi_mmap";
                                clocks = <&pmc PMC_TYPE_PERIPHERAL 52>, <&pmc PMC_TYPE_PERIPHERAL 10>;
                                clock-names = "qspi0_clk", "aesb_clk";
                                status = "okay";
(note the qspi_mmap address -- it is pointing to the AESB QSPI0 memory region)

* Added code to atmel-quadspi.c to enable aesb_clk so that the Linux kernel does not disable the clock, thinking that it is unused.

At bootup, I see the following:

Code: Select all

spi-nand: probe of spi1.0 failed with error -110
atmel_qspi f0024000.spi: AESB clock not used                                                   
spi-nor spi2.0: sst26vf064b (8192 Kbytes)                                                      
5 fixed-partitions partitions found on MTD device spi2  
Creating 5 MTD partitions on "spi2":
0x000000000000-0x000000009000 : "at91bootstrap"
0x000000009000-0x000000029000 : "device tree"                                                  
0x000000029000-0x000000040000 : "settings"
0x000000040000-0x000000500000 : "kernel"
0x000000500000-0x000000800000 : "recovery"
the "AESB clock not used" message is present because I am not using AESB for qspi1 and the clock should not be enabled for that peripheral. It is not present in the dt node for qspi1.

Errno 110 is ETIMEDOUT, and I am actively looking for where this return code originates in the Kernel.

qspi0 is connected to a winbond W25M02GV and functions properly when not trying to use AESB.

Have I missed something?