* [U-Boot] [Question] DM SPI FLASH
@ 2015-01-07 3:06 Peng Fan
2015-01-07 5:33 ` Simon Glass
0 siblings, 1 reply; 5+ messages in thread
From: Peng Fan @ 2015-01-07 3:06 UTC (permalink / raw)
To: u-boot
Hi Simon,
I am hacking DTB and DM SPI FLASH support for i.MX 6SoloX. I have a
question about `sf probe`. In original way, `sf probe` or `sf probe 0:0`
can detect qspi flashes on my platform. But after using DM, I should use
`sf probe 35536896:0` to probe flashes. 35536896 is the address of QSPI
controller's reg base 0x021e4000 in hex format. Does I miss something in
my driver? It seems dev->seq is not valid so should pass req_seq which
is the address of qspi controller in dts file.
Any ideas?
The log using `sf probe 0:0`. Fail to probe flash
=> sf probe 0:0
uclass_find_device_by_seq: 0 0
- 35536896 35536896
- not found
spi_find_bus_and_cs: No bus 0
uclass_find_device_by_seq: 0 0
- 35536896 35536896
- not found
uclass_find_device_by_seq: 1 0
- 35536896 35536896
- not found
Invalid bus 0 (err=-19)
Failed to initialize SPI flash at 0:0 (error -19)
The log using `sf probe 35536896:0`. Success to probe flash.
=> sf probe 35536896:0
uclass_find_device_by_seq: 0 35536896
- 35536896 -1
- not found
spi_find_bus_and_cs: No bus 35536896
uclass_find_device_by_seq: 0 35536896
- 35536896 -1
- not found
uclass_find_device_by_seq: 1 35536896
- 35536896 -1
- found
uclass_find_device_by_seq: 0 -1
uclass_find_device_by_seq: 0 0
- -1 -1
- 33554432 -1
- 33554432 -1
- 34373632 -1
- -1 -1
- 34603008 -1
- 35651584 -1
- 35913728 -1
- -1 -1
- not found
uclass_find_device_by_seq: 0 34603008
- -1 0
- 33554432 -1
- 33554432 -1
- 34373632 -1
- -1 -1
- 34603008 -1
- 35651584 -1
- 35913728 -1
- -1 -1
- not found
uclass_find_device_by_seq: 0 35536896
- 35536896 -1
- not found
fdtdec_get_int_array: reg
get_prop_check_min_len: reg
fdtdec_get_int: spi-max-frequency: (not found)
fsl_qspi_ofdata_to_platdata: reg_base=0x21e4000 amba_base=0x70000000
max-frequency=500000
fdtdec_get_int: spi-max-frequency: (not found)
spi_get_bus_and_cs: Binding new device '35536896:0', busnum=35536896,
cs=0, driver=spi_flash_std
fdtdec_get_int: reg: (not found)
Bound device 35536896:0 to qspi at 021e4000
fdtdec_get_int: reg: (not found)
fdtdec_get_int: spi-max-frequency: (not found)
fdtdec_get_bool: spi-cpol
fdtdec_get_bool: spi-cpha
fdtdec_get_bool: spi-cs-high
fdtdec_get_bool: spi-half-duplex
uclass_find_device_by_seq: 0 -1
uclass_find_device_by_seq: 0 0
- -1 -1
- not found
spi_flash_std_probe: slave=bfc5b208, cs=0
fsl_qspi_set_speed: hz=100000
fsl_qspi_set_mode: mode=0
SF: Got idcodes
00000000: 20 ba 19 10 00 ....
SF: Detected N25Q256 with page size 256 Bytes, erase size 4 KiB, total
32 MiB
SF: Warning - Only lower 16MiB accessible, Full access #define
CONFIG_SPI_FLASH_BAR
fsl_qspi_set_speed: hz=1000000
fsl_qspi_set_mode: mode=3
spi_get_bus_and_cs: bus=bfc53308, slave=bfc5b208
Thanks,
Peng.
^ permalink raw reply [flat|nested] 5+ messages in thread* [U-Boot] [Question] DM SPI FLASH 2015-01-07 3:06 [U-Boot] [Question] DM SPI FLASH Peng Fan @ 2015-01-07 5:33 ` Simon Glass [not found] ` <BN1PR0301MB0673D78DC3D1681E9423234182460@BN1PR0301MB0673.namprd03.prod.outlook.com> 2015-01-07 10:22 ` Masahiro Yamada 0 siblings, 2 replies; 5+ messages in thread From: Simon Glass @ 2015-01-07 5:33 UTC (permalink / raw) To: u-boot Hi Peng, On 6 January 2015 at 20:06, Peng Fan <B51431@freescale.com> wrote: > Hi Simon, > > I am hacking DTB and DM SPI FLASH support for i.MX 6SoloX. I have a question > about `sf probe`. In original way, `sf probe` or `sf probe 0:0` can detect > qspi flashes on my platform. But after using DM, I should use `sf probe > 35536896:0` to probe flashes. 35536896 is the address of QSPI controller's > reg base 0x021e4000 in hex format. Does I miss something in my driver? It > seems dev->seq is not valid so should pass req_seq which is the address of > qspi controller in dts file. > > Any ideas? You can use: aliases { spi0 = "/spi at xxxx"; } to correct the sequence number. It would be better if we had a way to indicate a bus where reg provides the sequence number, so we know when it doesn't. I haven't come up with a good idea on that yet. > > The log using `sf probe 0:0`. Fail to probe flash > => sf probe 0:0 > uclass_find_device_by_seq: 0 0 > - 35536896 35536896 > - not found > spi_find_bus_and_cs: No bus 0 > uclass_find_device_by_seq: 0 0 > - 35536896 35536896 > - not found > uclass_find_device_by_seq: 1 0 > - 35536896 35536896 > - not found > Invalid bus 0 (err=-19) > Failed to initialize SPI flash at 0:0 (error -19) > > The log using `sf probe 35536896:0`. Success to probe flash. > => sf probe 35536896:0 > uclass_find_device_by_seq: 0 35536896 > - 35536896 -1 > - not found > spi_find_bus_and_cs: No bus 35536896 > uclass_find_device_by_seq: 0 35536896 > - 35536896 -1 > - not found > uclass_find_device_by_seq: 1 35536896 > - 35536896 -1 > - found > uclass_find_device_by_seq: 0 -1 > uclass_find_device_by_seq: 0 0 > - -1 -1 > - 33554432 -1 > - 33554432 -1 > - 34373632 -1 > - -1 -1 > - 34603008 -1 > - 35651584 -1 > - 35913728 -1 > - -1 -1 > - not found > uclass_find_device_by_seq: 0 34603008 > - -1 0 > - 33554432 -1 > - 33554432 -1 > - 34373632 -1 > - -1 -1 > - 34603008 -1 > - 35651584 -1 > - 35913728 -1 > - -1 -1 > - not found > uclass_find_device_by_seq: 0 35536896 > - 35536896 -1 > - not found > fdtdec_get_int_array: reg > get_prop_check_min_len: reg > fdtdec_get_int: spi-max-frequency: (not found) > fsl_qspi_ofdata_to_platdata: reg_base=0x21e4000 amba_base=0x70000000 > max-frequency=500000 > fdtdec_get_int: spi-max-frequency: (not found) > spi_get_bus_and_cs: Binding new device '35536896:0', busnum=35536896, cs=0, > driver=spi_flash_std > fdtdec_get_int: reg: (not found) > Bound device 35536896:0 to qspi at 021e4000 > fdtdec_get_int: reg: (not found) > fdtdec_get_int: spi-max-frequency: (not found) > fdtdec_get_bool: spi-cpol > fdtdec_get_bool: spi-cpha > fdtdec_get_bool: spi-cs-high > fdtdec_get_bool: spi-half-duplex > uclass_find_device_by_seq: 0 -1 > uclass_find_device_by_seq: 0 0 > - -1 -1 > - not found > spi_flash_std_probe: slave=bfc5b208, cs=0 > fsl_qspi_set_speed: hz=100000 > fsl_qspi_set_mode: mode=0 > SF: Got idcodes > 00000000: 20 ba 19 10 00 .... > SF: Detected N25Q256 with page size 256 Bytes, erase size 4 KiB, total 32 > MiB > SF: Warning - Only lower 16MiB accessible, Full access #define > CONFIG_SPI_FLASH_BAR > fsl_qspi_set_speed: hz=1000000 > fsl_qspi_set_mode: mode=3 > spi_get_bus_and_cs: bus=bfc53308, slave=bfc5b208 Regards, Simon ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <BN1PR0301MB0673D78DC3D1681E9423234182460@BN1PR0301MB0673.namprd03.prod.outlook.com>]
* [U-Boot] [Question] DM SPI FLASH [not found] ` <BN1PR0301MB0673D78DC3D1681E9423234182460@BN1PR0301MB0673.namprd03.prod.outlook.com> @ 2015-01-07 9:15 ` Jagan Teki 0 siblings, 0 replies; 5+ messages in thread From: Jagan Teki @ 2015-01-07 9:15 UTC (permalink / raw) To: u-boot On 7 January 2015 at 14:32, Peng.Fan at freescale.com <Peng.Fan@freescale.com> wrote: > Hi, Simon, > > It works for me using aliases. This aliases node reassigns req_seq number to dev, so it works. > > Another question, spi device driver can not get cs value? > `sf probe 0:0`. Bus is 0, and cs is 0. I want to use cs value to configure qspi controller, but i did not find way to do this. `0:0` is a new created device whose parent is spi controller device. But spi driver works at bus level. I am not sure whether this is correct, just want one way to get cs to configure qspi controller. Yes, dm-spi not quite well this run-time cs change as of now. We discussed the same while implementing, may be you can add cs attribute number for that particular bus or add support in dm-spi itself to support runtime configurable using sf probe [[bus:]cs]] > > Thanks, > Peng. > > -----Original Message----- > From: sjg at google.com [mailto:sjg at google.com] On Behalf Of Simon Glass > Sent: Wednesday, January 07, 2015 1:33 PM > To: Fan Peng-B51431 > Cc: Jagan Teki; u-Boot Mailing List > Subject: Re: [Question] DM SPI FLASH > > Hi Peng, > > On 6 January 2015 at 20:06, Peng Fan <B51431@freescale.com> wrote: >> Hi Simon, >> >> I am hacking DTB and DM SPI FLASH support for i.MX 6SoloX. I have a >> question about `sf probe`. In original way, `sf probe` or `sf probe >> 0:0` can detect qspi flashes on my platform. But after using DM, I >> should use `sf probe 35536896:0` to probe flashes. 35536896 is the >> address of QSPI controller's reg base 0x021e4000 in hex format. Does I >> miss something in my driver? It seems dev->seq is not valid so should >> pass req_seq which is the address of qspi controller in dts file. >> >> Any ideas? > > You can use: > > aliases { > spi0 = "/spi at xxxx"; > } > > to correct the sequence number. > > It would be better if we had a way to indicate a bus where reg provides the sequence number, so we know when it doesn't. I haven't come up with a good idea on that yet. > >> >> The log using `sf probe 0:0`. Fail to probe flash => sf probe 0:0 >> uclass_find_device_by_seq: 0 0 >> - 35536896 35536896 >> - not found >> spi_find_bus_and_cs: No bus 0 >> uclass_find_device_by_seq: 0 0 >> - 35536896 35536896 >> - not found >> uclass_find_device_by_seq: 1 0 >> - 35536896 35536896 >> - not found >> Invalid bus 0 (err=-19) >> Failed to initialize SPI flash at 0:0 (error -19) >> >> The log using `sf probe 35536896:0`. Success to probe flash. >> => sf probe 35536896:0 >> uclass_find_device_by_seq: 0 35536896 >> - 35536896 -1 >> - not found >> spi_find_bus_and_cs: No bus 35536896 >> uclass_find_device_by_seq: 0 35536896 >> - 35536896 -1 >> - not found >> uclass_find_device_by_seq: 1 35536896 >> - 35536896 -1 >> - found >> uclass_find_device_by_seq: 0 -1 >> uclass_find_device_by_seq: 0 0 >> - -1 -1 >> - 33554432 -1 >> - 33554432 -1 >> - 34373632 -1 >> - -1 -1 >> - 34603008 -1 >> - 35651584 -1 >> - 35913728 -1 >> - -1 -1 >> - not found >> uclass_find_device_by_seq: 0 34603008 >> - -1 0 >> - 33554432 -1 >> - 33554432 -1 >> - 34373632 -1 >> - -1 -1 >> - 34603008 -1 >> - 35651584 -1 >> - 35913728 -1 >> - -1 -1 >> - not found >> uclass_find_device_by_seq: 0 35536896 >> - 35536896 -1 >> - not found >> fdtdec_get_int_array: reg >> get_prop_check_min_len: reg >> fdtdec_get_int: spi-max-frequency: (not found) >> fsl_qspi_ofdata_to_platdata: reg_base=0x21e4000 amba_base=0x70000000 >> max-frequency=500000 >> fdtdec_get_int: spi-max-frequency: (not found) >> spi_get_bus_and_cs: Binding new device '35536896:0', busnum=35536896, >> cs=0, driver=spi_flash_std >> fdtdec_get_int: reg: (not found) >> Bound device 35536896:0 to qspi at 021e4000 >> fdtdec_get_int: reg: (not found) >> fdtdec_get_int: spi-max-frequency: (not found) >> fdtdec_get_bool: spi-cpol >> fdtdec_get_bool: spi-cpha >> fdtdec_get_bool: spi-cs-high >> fdtdec_get_bool: spi-half-duplex >> uclass_find_device_by_seq: 0 -1 >> uclass_find_device_by_seq: 0 0 >> - -1 -1 >> - not found >> spi_flash_std_probe: slave=bfc5b208, cs=0 >> fsl_qspi_set_speed: hz=100000 >> fsl_qspi_set_mode: mode=0 >> SF: Got idcodes >> 00000000: 20 ba 19 10 00 .... >> SF: Detected N25Q256 with page size 256 Bytes, erase size 4 KiB, total >> 32 MiB >> SF: Warning - Only lower 16MiB accessible, Full access #define >> CONFIG_SPI_FLASH_BAR >> fsl_qspi_set_speed: hz=1000000 >> fsl_qspi_set_mode: mode=3 >> spi_get_bus_and_cs: bus=bfc53308, slave=bfc5b208 thanks! -- Jagan. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [Question] DM SPI FLASH 2015-01-07 5:33 ` Simon Glass [not found] ` <BN1PR0301MB0673D78DC3D1681E9423234182460@BN1PR0301MB0673.namprd03.prod.outlook.com> @ 2015-01-07 10:22 ` Masahiro Yamada 2015-01-13 1:48 ` Simon Glass 1 sibling, 1 reply; 5+ messages in thread From: Masahiro Yamada @ 2015-01-07 10:22 UTC (permalink / raw) To: u-boot On Tue, 6 Jan 2015 22:33:02 -0700 Simon Glass <sjg@chromium.org> wrote: > Hi Peng, > > On 6 January 2015 at 20:06, Peng Fan <B51431@freescale.com> wrote: > > Hi Simon, > > > > I am hacking DTB and DM SPI FLASH support for i.MX 6SoloX. I have a question > > about `sf probe`. In original way, `sf probe` or `sf probe 0:0` can detect > > qspi flashes on my platform. But after using DM, I should use `sf probe > > 35536896:0` to probe flashes. 35536896 is the address of QSPI controller's > > reg base 0x021e4000 in hex format. Does I miss something in my driver? It > > seems dev->seq is not valid so should pass req_seq which is the address of > > qspi controller in dts file. > > > > Any ideas? > > You can use: > > aliases { > spi0 = "/spi at xxxx"; > } > > to correct the sequence number. > > It would be better if we had a way to indicate a bus where reg > provides the sequence number, so we know when it doesn't. I haven't > come up with a good idea on that yet. My device tree source is growing its aliases node... arch/arm/dts/uniphier-ph1-pro4-ref.dts aliases { serial0 = &uart0; serial1 = &uart1; serial2 = &uart2; serial3 = &uart3; i2c0 = &i2c0; i2c1 = &i2c1; i2c2 = &i2c2; i2c3 = &i2c3; i2c5 = &i2c5; i2c6 = &i2c6; }; Best Regards Masahiro Yamada ^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [Question] DM SPI FLASH 2015-01-07 10:22 ` Masahiro Yamada @ 2015-01-13 1:48 ` Simon Glass 0 siblings, 0 replies; 5+ messages in thread From: Simon Glass @ 2015-01-13 1:48 UTC (permalink / raw) To: u-boot Hi, On 7 January 2015 at 02:22, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote: > > On Tue, 6 Jan 2015 22:33:02 -0700 > Simon Glass <sjg@chromium.org> wrote: > >> Hi Peng, >> >> On 6 January 2015 at 20:06, Peng Fan <B51431@freescale.com> wrote: >> > Hi Simon, >> > >> > I am hacking DTB and DM SPI FLASH support for i.MX 6SoloX. I have a question >> > about `sf probe`. In original way, `sf probe` or `sf probe 0:0` can detect >> > qspi flashes on my platform. But after using DM, I should use `sf probe >> > 35536896:0` to probe flashes. 35536896 is the address of QSPI controller's >> > reg base 0x021e4000 in hex format. Does I miss something in my driver? It >> > seems dev->seq is not valid so should pass req_seq which is the address of >> > qspi controller in dts file. >> > >> > Any ideas? >> >> You can use: >> >> aliases { >> spi0 = "/spi at xxxx"; >> } >> >> to correct the sequence number. >> >> It would be better if we had a way to indicate a bus where reg >> provides the sequence number, so we know when it doesn't. I haven't >> come up with a good idea on that yet. > > > > My device tree source is growing its aliases node... > > > arch/arm/dts/uniphier-ph1-pro4-ref.dts > > > aliases { > serial0 = &uart0; > serial1 = &uart1; > serial2 = &uart2; > serial3 = &uart3; > i2c0 = &i2c0; > i2c1 = &i2c1; > i2c2 = &i2c2; > i2c3 = &i2c3; > i2c5 = &i2c5; > i2c6 = &i2c6; > }; > This is good. It makes it very clear in one place which port is which. But I am going to propose dropping the 'reg' support for sequence numbers in driver model. With I2C and SPI doing there own thing, we don't use it. And it just creates problems - e.g. if reg is actually an address we end up with a very strange sequence number on various devices. Regards, Simon ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-01-13 1:48 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-07 3:06 [U-Boot] [Question] DM SPI FLASH Peng Fan
2015-01-07 5:33 ` Simon Glass
[not found] ` <BN1PR0301MB0673D78DC3D1681E9423234182460@BN1PR0301MB0673.namprd03.prod.outlook.com>
2015-01-07 9:15 ` Jagan Teki
2015-01-07 10:22 ` Masahiro Yamada
2015-01-13 1:48 ` Simon Glass
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.