Message ID | BN8PR11MB36197FC73E5B4CD6198CB6378E530@BN8PR11MB3619.namprd11.prod.outlook.com |
---|---|
State | Accepted |
Delegated to: | Bin Meng |
Headers | show |
Series | x86: serial: Use NS16550_DYNAMIC in Slim Bootloader | expand |
Hi Aiden, On Wed, Dec 18, 2019 at 1:56 PM Park, Aiden <aiden.park@intel.com> wrote: > > Slim Bootloader provides serial port info in its HOB to support > both IO or MMIO serial ports, but it's controlled by SYS_NS16550_MEM32 > or SYS_NS16550_PORT_MAPPED in U-Boot. > To support both serial port configurations dynamically at runtime, > Slim Bootloader serial driver leverages NS16550_DYNAMIC. > > Signed-off-by: Aiden Park <aiden.park@intel.com> > --- > arch/x86/cpu/slimbootloader/serial.c | 5 +++++ > include/configs/slimbootloader.h | 13 ------------- > 2 files changed, 5 insertions(+), 13 deletions(-) > > diff --git a/arch/x86/cpu/slimbootloader/serial.c b/arch/x86/cpu/slimbootloader/serial.c > index 7b44a59bff..0f45b3ba72 100644 > --- a/arch/x86/cpu/slimbootloader/serial.c > +++ b/arch/x86/cpu/slimbootloader/serial.c > @@ -45,7 +45,12 @@ static int slimbootloader_serial_ofdata_to_platdata(struct udevice *dev) > plat->base = data->base; > /* ns16550 uses reg_shift, then covert stride to shift */ > plat->reg_shift = data->stride >> 1; > + plat->reg_width = data->stride; > plat->clock = data->clk; > + plat->fcr = UART_FCR_DEFVAL; > + plat->flags = 0; > + if (data->type == 1) > + plat->flags |= NS16550_FLAG_IO; nits: the following comments in this function should be removed: /* * The data->type provides port io or mmio access type info, * but the access type will be controlled by * CONFIG_SYS_NS16550_PORT_MAPPED or CONFIG_SYS_NS16550_MEM32. * * TBD: ns16550 access type configuration in runtime. * ex) plat->access_type = data->type */ > > return 0; > } > diff --git a/include/configs/slimbootloader.h b/include/configs/slimbootloader.h > index e0011ed446..b8169072cc 100644 > --- a/include/configs/slimbootloader.h > +++ b/include/configs/slimbootloader.h > @@ -8,19 +8,6 @@ > > #include <configs/x86-common.h> > > -/* > - * By default, CONFIG_SYS_NS16550_PORT_MAPPED is enabled for port io serial. > - * To use mmio base serial, enable CONFIG_SYS_NS16550_MEM32 and disable > - * CONFIG_SYS_NS16550_PORT_MAPPED until ns16550 driver supports serial port > - * configuration in run-time. > - * > - * #define CONFIG_SYS_NS16550_MEM32 > - * #undef CONFIG_SYS_NS16550_PORT_MAPPED > - */ > -#ifdef CONFIG_SYS_NS16550_MEM32 > -#undef CONFIG_SYS_NS16550_PORT_MAPPED > -#endif > - > #define CONFIG_STD_DEVICES_SETTINGS \ > "stdin=serial,i8042-kbd,usbkbd\0" \ > "stdout=serial\0" \ > -- Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Regards, Bin
On Mon, Feb 3, 2020 at 10:43 AM Bin Meng <bmeng.cn@gmail.com> wrote: > > Hi Aiden, > > On Wed, Dec 18, 2019 at 1:56 PM Park, Aiden <aiden.park@intel.com> wrote: > > > > Slim Bootloader provides serial port info in its HOB to support > > both IO or MMIO serial ports, but it's controlled by SYS_NS16550_MEM32 > > or SYS_NS16550_PORT_MAPPED in U-Boot. > > To support both serial port configurations dynamically at runtime, > > Slim Bootloader serial driver leverages NS16550_DYNAMIC. > > > > Signed-off-by: Aiden Park <aiden.park@intel.com> > > --- > > arch/x86/cpu/slimbootloader/serial.c | 5 +++++ > > include/configs/slimbootloader.h | 13 ------------- > > 2 files changed, 5 insertions(+), 13 deletions(-) > > > > diff --git a/arch/x86/cpu/slimbootloader/serial.c b/arch/x86/cpu/slimbootloader/serial.c > > index 7b44a59bff..0f45b3ba72 100644 > > --- a/arch/x86/cpu/slimbootloader/serial.c > > +++ b/arch/x86/cpu/slimbootloader/serial.c > > @@ -45,7 +45,12 @@ static int slimbootloader_serial_ofdata_to_platdata(struct udevice *dev) > > plat->base = data->base; > > /* ns16550 uses reg_shift, then covert stride to shift */ > > plat->reg_shift = data->stride >> 1; > > + plat->reg_width = data->stride; > > plat->clock = data->clk; > > + plat->fcr = UART_FCR_DEFVAL; > > + plat->flags = 0; > > + if (data->type == 1) > > + plat->flags |= NS16550_FLAG_IO; > > nits: the following comments in this function should be removed: > > /* > * The data->type provides port io or mmio access type info, > * but the access type will be controlled by > * CONFIG_SYS_NS16550_PORT_MAPPED or CONFIG_SYS_NS16550_MEM32. > * > * TBD: ns16550 access type configuration in runtime. > * ex) plat->access_type = data->type > */ > Removed these obsolete comments, and > > > > return 0; > > } > > diff --git a/include/configs/slimbootloader.h b/include/configs/slimbootloader.h > > index e0011ed446..b8169072cc 100644 > > --- a/include/configs/slimbootloader.h > > +++ b/include/configs/slimbootloader.h > > @@ -8,19 +8,6 @@ > > > > #include <configs/x86-common.h> > > > > -/* > > - * By default, CONFIG_SYS_NS16550_PORT_MAPPED is enabled for port io serial. > > - * To use mmio base serial, enable CONFIG_SYS_NS16550_MEM32 and disable > > - * CONFIG_SYS_NS16550_PORT_MAPPED until ns16550 driver supports serial port > > - * configuration in run-time. > > - * > > - * #define CONFIG_SYS_NS16550_MEM32 > > - * #undef CONFIG_SYS_NS16550_PORT_MAPPED > > - */ > > -#ifdef CONFIG_SYS_NS16550_MEM32 > > -#undef CONFIG_SYS_NS16550_PORT_MAPPED > > -#endif > > - > > #define CONFIG_STD_DEVICES_SETTINGS \ > > "stdin=serial,i8042-kbd,usbkbd\0" \ > > "stdout=serial\0" \ > > -- > > Reviewed-by: Bin Meng <bmeng.cn@gmail.com> applied to u-boot-x86, thanks!
diff --git a/arch/x86/cpu/slimbootloader/serial.c b/arch/x86/cpu/slimbootloader/serial.c index 7b44a59bff..0f45b3ba72 100644 --- a/arch/x86/cpu/slimbootloader/serial.c +++ b/arch/x86/cpu/slimbootloader/serial.c @@ -45,7 +45,12 @@ static int slimbootloader_serial_ofdata_to_platdata(struct udevice *dev) plat->base = data->base; /* ns16550 uses reg_shift, then covert stride to shift */ plat->reg_shift = data->stride >> 1; + plat->reg_width = data->stride; plat->clock = data->clk; + plat->fcr = UART_FCR_DEFVAL; + plat->flags = 0; + if (data->type == 1) + plat->flags |= NS16550_FLAG_IO; return 0; } diff --git a/include/configs/slimbootloader.h b/include/configs/slimbootloader.h index e0011ed446..b8169072cc 100644 --- a/include/configs/slimbootloader.h +++ b/include/configs/slimbootloader.h @@ -8,19 +8,6 @@ #include <configs/x86-common.h> -/* - * By default, CONFIG_SYS_NS16550_PORT_MAPPED is enabled for port io serial. - * To use mmio base serial, enable CONFIG_SYS_NS16550_MEM32 and disable - * CONFIG_SYS_NS16550_PORT_MAPPED until ns16550 driver supports serial port - * configuration in run-time. - * - * #define CONFIG_SYS_NS16550_MEM32 - * #undef CONFIG_SYS_NS16550_PORT_MAPPED - */ -#ifdef CONFIG_SYS_NS16550_MEM32 -#undef CONFIG_SYS_NS16550_PORT_MAPPED -#endif - #define CONFIG_STD_DEVICES_SETTINGS \ "stdin=serial,i8042-kbd,usbkbd\0" \ "stdout=serial\0" \
Slim Bootloader provides serial port info in its HOB to support both IO or MMIO serial ports, but it's controlled by SYS_NS16550_MEM32 or SYS_NS16550_PORT_MAPPED in U-Boot. To support both serial port configurations dynamically at runtime, Slim Bootloader serial driver leverages NS16550_DYNAMIC. Signed-off-by: Aiden Park <aiden.park@intel.com> --- arch/x86/cpu/slimbootloader/serial.c | 5 +++++ include/configs/slimbootloader.h | 13 ------------- 2 files changed, 5 insertions(+), 13 deletions(-)